Consumer IoT (Internet of Things) devices provide convenience and the consequences of a failure are minimal. But industrial IoT (IIoT) devices monitor complex and expensive machinery. When that machinery fails, it can cost serious money. For that reason, it is important that technicians get alerts as soon as an abnormality in operation occurs. That’s why Tomasz Szydlo at AGH University of Science and Technology in Poland researched IIoT anomaly detection techniques for low-cost microcontrollers.
When you only have a single sensor value to monitor, it is easy to detect an anomaly. For example, it is easy for your car to identify when engine temperature exceeds an acceptable range and then turn on a warning light. But this becomes a serious challenge when a complex machine has many sensors with values that vary depending on conditions and jobs — like a car engine becoming hot because of hard acceleration or high ambient temperatures, as opposed to a cooling problem.
In complex scenarios, it is difficult to hard code acceptable ranges to account for every situation. Fortunately, that is exactly the kind of problem that machine learning excels at solving. Machine learning models don’t understand the values they see, but they are very good at recognizing patterns and when values deviate from those patterns. Such a deviation indicates an anomaly that should raise a flag so a technician can look for an issue.
Szydlo’s research focuses on running machine learning models on IIoT hardware for this kind of anomaly detection. In his tests, he used an Arduino Nano 33 BLE board as an IIoT accelerometer monitor for a simple USB fan. He employed FogML to create a machine learning model efficient enough to run on the relatively limited hardware of the Nano’s nRF52840 microcontroller.
The full results are available in Szydlo’s paper, but his experiments were a success. This affordable hardware was able to detect anomalies with the fan speed. This is a simple application, but as Szydlo notes, it is possible to expand the concept to handle more complex machinery.
Image: arXiv:2206.14265 [cs.LG]
Read more about this on: Arduino Blog