Raspberry Pis are great. They’re cheap, Wi-Fi enabled, and can be used in endless ways. But if you’re running one without a monitor, you’re bound to have trouble connecting to it at some point. Maybe it’s got a dynamic IP address and that changed. Maybe it’s not even connecting to the WiFi network.
HereIAm (GitHub) is a Python script and accompanying React web app (with a Node.js backend) I made that provides an easy way to check whether a headless device is connected to WiFi and to see its IP address. The Python script is simply placed on the headless device and configured to run periodically (e.g. when connecting to a network, or every x minutes). It then reports the device’s network information to the Node.js server, which stores the information in a MongoDB database for persistence (in hindsight, Redis would’ve also worked). This information is then viewable with the web app.
I originally created it to be used in the Olin College of Engineering Robotics Lab, since many Raspberry Pis and ODROIDs were used and networking was always an issue. The goal was to provide an easy place for lab members to check which devices were online and how to connect to them.