To start, this is more of an architecture question rather than a technical one. I’m at the beginning of the concept phase for the electronics portion of a renewable energy project, and am looking for advice on exposing data from several tens to several hundreds of devices (Photons or Electrons) to the Cloud.
As a little background, this project focuses on the implementation of a kinetic energy harvesting flooring system which converts the wasted kinetic energy from pedestrian and vehicular traffic into usable electricity. The aim is to tap human motion in high traffic environments as a viable renewable energy source. Applications include proximity lighting, signage and way-finding, street lighting, mobile charging, security, etc. Currently, the flooring system takes the form of individual tiles which, when stepped on and depressed a few millimeters, drive an axial flux generator to generate electricity (renderings below).
The assembled tile. For scale: 12" x 12" x 2.5"
Axial flux generator. For scale: 5" x 1.5"
At the moment, the components for the energy harvesting mechanism, generator, and tile housing are being machined, so I’m focusing on the electronics. Ideally I’d like to have a Photon/Electron/P0 in each of the tiles, continuously monitoring power output of the generator, along with taking readings from an accelerometer to count footsteps/impacts. My concern is that, in order to get near real-time data, the microcontrollers would need to be POSTing very frequently. Given that several tens to several hundreds of tiles could be in close proximity, does anyone have advice/suggestions on getting data from each of the tiles to the Cloud? I am considering doing batch POSTs where one device polls the data of adjacent tiles every few seconds, notifies a server that there’s new data, and then the server GETs the aggregated data from the single device. However, that creates very large payloads which would require multiple requests.
I apologize for the long post; I wanted to give as much background as necessary to understand the problem. Again this is more of an architecture question for future scalability. Any thoughts/advice will be greatly appreciated.