Due to drier conditions caused in part by climate change, wildfires have become far more prevalent, especially along the western half of the United States and in Australia's Outback region. Whether they are started by a lightning strike, downed power lines, or by accident, early detection and constant monitoring are key to controlling their rapid spread amongst dry vegetation. Traditional warning systems tend to rely heavily on manual evaluations or satellite imagery that can take several hours to generate an alert, which is why the winner of this year's Arm's DevSummit Developer Competition, Pratyush Mallick, wanted to create a smarter way to tackle the issue.
Rather than using a centralized system that relies on just a few measurement devices or sending raw sensor values offsite for further processing, Mallick wanted to incorporate machine learning at the edge into a device that can make its own inferences before sending a message offsite. By doing so, the power consumption can be greatly reduced. His eventual device, called the Jewel Beetle, is an all-in-one solution that runs off of solar energy with a battery backup for when sunlight is unavailable. When its onboard sensors detect a possible fire, it sends an immediate alert to a dashboard for further analysis.
The processor selected for this task was the EV-COG-4050LZ from Analog Devices, as its powerful Arm Cortex-M4F CPU contains the necessary power management and floating-point peripherals for running edge machine learning models. Sensing when a fire is nearby was accomplished by using the Bosch BME688 environmental sensor module. It houses sensors for detecting temperature, pressure, humidity, and CO2/VoCs, all while consuming a minimal amount of power. Finally, a Nano Power Timer from Sparkfun and a Xidas Energy Harvesting Development Kit work together to switch the microcontroller on or off at a set interval and also store solar power in a battery for later use.
Mallick created a machine learning model by collecting his own measurements of the data points mentioned above in various states and seeing how they change. For example, a normal state would be the baseline reading, whereas smoke could increase the amount of VoCs in the air and fire would cause the temperature to rise. Once he had enough stored data, he made a new Edge Impulse project and trained a model that was around 97% accurate at inferring when there is a fire. From there, he exported it as an Mbed library and incorporated it into his code.
As with any battery-powered solution, ensuring that the battery maintains an adequate charge is one of the top priorities, since losing a device in a critical role is not desirable. To reduce the amount of current consumed, the Nano Power Timer turns on the microcontroller for a total of ten seconds, at which point the processor takes a few sensor readings, feeds it through the machine learning model to get a result, and potentially broadcasts an alert wirelessly if there is a suspected fire.
The result of these power-saving features means the Jewel Beetle only uses an average of 35nA while sleeping and a short peak of 260mA when transmitting a message. From here, Mallick plans on integrating a LoRaWAN module to give his device a theoretical range of up to 20km. You can read about his project in more detail here in this blog post.