ESP32 Sensor Anomaly Detection
Budget: ₹1,000 – ₹3,000 INR
I need an anomaly-detection pipeline for continuous temperature-and-humidity readings. The raw values come from a sensor package wired to an Adafruit Feather ESP32, and I would like the system to learn normal behaviour on its own, then flag anything unusual in real time.
Preferred approach
My goal is to train an autoencoder and an Isolation Forest on historical data so the model understands the “normal envelope” of the environment. Once trained, the lightweight inference layer should run locally on the ESP32 if memory allows; otherwise a small client on the board may stream data to a cloud endpoint where the model executes. In either case the detection latency must stay low enough for prompt alerts.
Scope of work
• Prepare or augment the dataset, handle scaling and any time-windowing that benefits the model.
• Build, train, and evaluate both the autoencoder and the Isolation Forest, selecting whichever meets accuracy and footprint requirements.
• Optimise the chosen model (e.g. quantisation, pruning) and port it to MicroPython/C++ for on-device use, or expose a simple REST/MQTT interface when cloud execution is necessary.
• Provide commented code, a brief read-me explaining how to retrain with fresh data, and a demonstration—either serial console logs or a web dashboard—showing at least one true anomaly being detected.
Acceptance test
With the ESP32 running untethered, a deliberately injected out-of-range reading must be flagged within two seconds, while typical readings pass silently. Memory usage should stay within the board’s available RAM and flash, or, if cloud mode is selected, the device must remain under 5 kB/s outbound traffic.
If you have experience squeezing ML models onto microcontrollers—or balancing edge and cloud workloads—this should be a quick, focused build.
Preferred approach
My goal is to train an autoencoder and an Isolation Forest on historical data so the model understands the “normal envelope” of the environment. Once trained, the lightweight inference layer should run locally on the ESP32 if memory allows; otherwise a small client on the board may stream data to a cloud endpoint where the model executes. In either case the detection latency must stay low enough for prompt alerts.
Scope of work
• Prepare or augment the dataset, handle scaling and any time-windowing that benefits the model.
• Build, train, and evaluate both the autoencoder and the Isolation Forest, selecting whichever meets accuracy and footprint requirements.
• Optimise the chosen model (e.g. quantisation, pruning) and port it to MicroPython/C++ for on-device use, or expose a simple REST/MQTT interface when cloud execution is necessary.
• Provide commented code, a brief read-me explaining how to retrain with fresh data, and a demonstration—either serial console logs or a web dashboard—showing at least one true anomaly being detected.
Acceptance test
With the ESP32 running untethered, a deliberately injected out-of-range reading must be flagged within two seconds, while typical readings pass silently. Memory usage should stay within the board’s available RAM and flash, or, if cloud mode is selected, the device must remain under 5 kB/s outbound traffic.
If you have experience squeezing ML models onto microcontrollers—or balancing edge and cloud workloads—this should be a quick, focused build.
Related categories:
Data Processing
Cloud Computing
Machine Learning (ML)
MQTT
Anomaly Detection
REST API
Data Augmentation
Autoencoder