Author: Paolo Veronesi, software engineer at Paradox Engineering
In an increasingly complex and interconnected world, Machine Learning is proving to be highly beneficial for Smart Cities and any IoT application where large and high-dimensional volumes of data need to be processed, correlated, and actioned.
At Paradox Engineering we are piloting neural networks in specific use cases such as municipal solid waste collection or patient monitoring in hospital and clinics, both requiring medium to high computational powers. Neural networks are generally applied when it is possible to exploit large computing resources (like workstations or servers), but we are now exploring how to use these technologies in a diametrically opposed occurrence – thus with extremely limited resources (such as few hundreds KB of ram, and standard 32-bit processors with less than a hundred MHz).
Leveraging neural networks on embedded IoT devices is a new, emerging application. Our goal is to process data locally, on the embedded device, without sending information over the network: this allows the devices to work properly even in case of network failures, improves the scalability of the system and its overall security, as sensitive data are processed at local level.
The use case we are focusing is Smart Lighting. In a typical urban outdoor installation, streetlights are connected to a mesh network and managed by gateways, operating as border routers, network coordinators, and data concentrators. A central management software enables the remote management and control of the network, as well as of single or grouped devices.
Streetlights are expected to run smoothly even when the connectivity to the nearest gateway or the CMS is not available. To allow this, devices are configured to execute their routines based on current date and time, assuming the gateway provides this information. This is vital for streetlights to derive the ephemeris and calculate daily sunrise and sunset – according to this data, lamps can switch on/off and dim according to programmed schedules.
What happens if a node is isolated and cannot connect to a gateway, for example because of adverse environmental conditions or network topology? Or if the gateway is not installed at all? In such occurrences, the device should find a new way to calculate the current time. We decided to leverage data analysis and Machine Learning capabilities to let streetlights derive exact daytime from data collected from integrated environmental sensors.
Estimating time from parameters such brightness, temperature, or pressure, isn’t a simple task. Environmental conditions vary a lot from day to day, from season to season, with a level of complexity that it would not be possible to solve with a traditional programming approach.
Neural networks can efficiently manage time series and, if trained with an adequate quantity and variety of data, can provide an accurate answer to our question. In our experiment, we trained the system using data generated by a set of environmental sensors over the course of one year.
Results were really promising: isolated streetlights were able to process data locally and estimate the right daytime with an average accuracy of about 16 minutes – and perfectly execute their schedules. Without Machine Learning, this operational continuity would not have been possible.