Every sensor lesson in a Philippine ECE lab ends up at the same wall: you can send temperature, light and sound over Wi-Fi, but smell stays local. Researchers at Ohio State built a system called Scentronic that closes that gap with parts a thesis team could buy, and the design is worth studying even if you never build it.
What Scentronic does
An “electronic nose” reads the air with six metal oxide gas sensors. Each one reacts differently to volatile compounds, so the six readings together form a fingerprint. A K-nearest neighbors classifier matched that fingerprint to beer, cake, coffee, oranges or red wine, and scored 100% on 50 held-out samples. The catch: only one brand of each product was tested, so treat that number as a proof of concept. The Hackster writeup covers the full study.
The microcontroller side
On the output end, an ESP32 drives a piezoelectric atomizer with PWM. The atomizer vibrates at ultrasonic frequency and pushes scented liquid through a tiny mesh, and the duty cycle sets how strong the smell is. Wi-Fi and a cloud server link the nose to the actuators, with about 65 ms of network latency and 0.6 seconds from sniff to spray. Wearable versions used two channels on a wristband and five on handheld and necklace units. Volunteers named single smells correctly 72.86% of the time, so the human nose is the weak link, not the electronics.
The gotcha with MOS sensors is warm-up and drift: they need a heater element running for minutes before readings settle, so log baseline air before every test.
Build it yourself
Skip the cloud and start small. Wire a single MQ-series gas module to an ESP32 ADC pin, record 100 readings of coffee and 100 of plain air, then train a KNN in Python on a laptop. Send the predicted label over MQTT to a second ESP32 that switches a mist module on a GPIO pin. That is one weekend of work and a solid capstone seed for classification plus IoT messaging.
- Sample at a fixed distance from the source, or your readings will not repeat.
- Keep ADC wiring away from the PWM line to cut noise.
- Find ESP32 boards and gas sensor modules at circuit.rocks.
Frequently Asked Questions
How does Scentronic detect smells?
Six metal oxide semiconductor gas sensors each respond differently to airborne compounds. A K-nearest neighbors model reads the combined pattern and labels it as beer, cake, coffee, oranges or red wine.
What does the ESP32 do in Scentronic?
It drives a piezoelectric atomizer with PWM, which controls how much scented liquid is released, and it handles the Wi-Fi link that relays the detected smell to the actuator.
What will I learn if I build this?
A scaled-down version teaches ADC sensor reading, collecting training data, KNN classification in Python, MQTT messaging and PWM output on an ESP32, a strong mix for a thesis.
