My goal:
To be able to control multiple lanterns at the same time in
order to create a coordinated display.
The Reality:
The MQTT client library I use for Arduinos (pubsubclient) is ‘blocking’ in that if your connectivity to the server is not reliable, then the display sometimes stutters and possibly stops. I’ve tried some non-blocking workarounds, but it’s not 100% reliable.
In addition, although I can control these lanterns in a lab environment, the message often doesn’t make it through to one of the 10 Arduinos I’m testing with and has to be resent. Therefore, a command for them to simultaneously reboot works maybe 1 in 5 attempts across those 10 lanterns.
As a result, I think that while controlling lanterns via wifi
and MQTT is pretty good, controlling them for coordinated displays is not that
reliable.