The esp8266 is an amazing chip. On my poi the Master* poi creates a wireless access point which the Slave* poi connects to – and Android app connects as well, in order to transmit images. No router needed, just switch on poi, 2nd poi connect automatically, connect phone and start sending pictures.
*I have designated these names, for descriptive purposes.
There are limits, however. The ESP chips have a limitation of 4 connected devices per access point device. If you want more devices talking to each other you need a Router to handle the traffic.
This is fairly simple using arduino examples but it brings up configuration issues. I wanted my poi to be able to be used in standalone as well as Master-Slave-Android configuration, and now Router-Multiple-Poi-Android as well. A few settings are in order.
The first option, standalone poi without wireless, I configured directly in the loop() of code. If no wifi signal has been received within the last 5 seconds the poi switch to backup images. Great, if my phone’s battery dies the show still goes on.
The second alternative (Router) is a bit harder to organize. First, there is a limitation where the chip has to be told if it’s in Access Point mode or not on boot. Ok so that’s a setting. Then we need to know what the static ip address is (hard coded but configurable via web interface) so that we don’t conflict with other poi. Also, once you are in Router mode, what if there is no router?
Right now, my poi check a web configurable EEProm switch on boot first, for Router mode on/off. If Router mode is on, the poi enter connect mode. If, after a certain amount of time, the router is not found, the poi restart in Access Point (master-slave-android) mode. However, upon rebooting again they revert back to Router check, so one has to manually set back to Access Point only mode if required.
I need a diagram here to really show what’s happening.
The problem came in if the router wasn’t configured correctly, or was simply not available, the poi needed a reliable way to get configured. My poi get configured by web interface (local network, no cloud) so AP mode was needed by default in case things went wrong.
Here is the note from my code:
//to activate in browser: http://192.168.1.78/router?router=1
//to deactivate: router=0
So I just type it in the browser on my connected Android or PC and the poi are set. I will assign this to a button on the app at some point.
Currently the only option for multi-poi is to send the same image to all poi simultaneously (only 3 pairs, that’s all I have). This looks great, but there is much more to do obviously. Just a matter of code
Time to go play a bit with the toys…