Main Content

Interface and Application Programming

Connecting your embedded devices to the internet can have some real benefits. One thing that always remains a nuisance is to find your device on the world wide web of connected computers by determining it’s IP address. To obtain the IP address, a user must often resort to having a display or opening up another communication channel to your device, typically a serial connection.

I have this problem quite often when students have to connect a large number of devices simultaneously in a classroom setting. This made me start looking for an answer to the following question:

How can I communicate a device’s IP address or other unique identifier to an end-user?

The solution should be:

- cheap
- easy to use
- without access to the connected router’s DHCP table
- speed isn’t an issue for now.

Ways to do this would be:

send the address to a known external server
which would have security and reliability issues
print the identifier
When it’s static this would work. For large amounts of devices this would mean a lot of work.
a display
Which would defeat the purpose of having a small IoT device
bluetooth
which is a bit of a hassle, with pairing and everything. Also, not all wifi-capable devices also have bluetooth.
another radio protocol
Which would need specialized hardware on receiving side
a special LED Matrix “QR-code”
Would be nice, quite cheap but make your devices rather bulky
Eventually I chose to explore whether it would be possible to encode data in the flashing pattern of an RGB LED

Link to article