WioAirMonitor is a smart device, able to monitor air quality and send collected data to cloud services via the MQTT protocol.
Part list
- SeeedStudio WioTerminal
- SeeedStudio Grove Laser Dust Sensor
- SeeedStudio Grove GPS Module
Description
WioAirMonitor, as the name suggests, it is built around the WioTerminal device from SeeedStudio. This device – compatible with Arduino and based on an ATSAMD51 microcontroller – offers a complete set of functionalities to develop an electronic project:
- 2.4″ LCD display (320×240 pixel)
- wifi and bluetooth connectivity
- microSD card reader
- microphone, speaker, accelerometer and light sensor
- 5 positions switch + 3 buttons
- USB OTG with USB-C connector
WioTerminal is also compatible with the Grove system, providing two connection ports that I used to connect the two sensors needed for the project.
Speaking of sensors, to measure the air quality I chose the SeeedStudio module based on the HM3301 sensor (datasheet). This sensor is able to detect the amount of particulate present in the air, dividing it into 3 different diameters (PM2.5, PM5 and PM10). The communication interface is I2C.
Finally I added a GPS sensor to the project: in this way it is possible to link each sample to the position of WioAirMonitor at that moment. This feature is useful, for example, to continuously measure air quality when moving around a city.
Setup
Because I decided to use Grove modules, the setup is very simple: I connected to the first Grove port (the one on the left) the air quality sensor and to the second port (the one on the right) the GPS receiver:
After having connected the sensors, you can upload the sketch (available on Github) on the WioTerminal. In the sketch, there are some settings you can change (for example the parameters of your WiFi network): refer to the documentation available on Github.
Basic use
During the boot, WioAirMonitor performs an initial configuration of sensors and libraries:
Then it displays the Summary screen, with the real time values read by the sensor:
Using the switch (moving left and right) it is possible to go to the detail screens of the 3 detected particle sizes:
Cloud
In addition to displaying the values on the LCD, WioAirMonitor allows you to send these values – and the position detected by the GPS receiver – to a cloud service that supports the MQTT protocol. I chose the free Adafruit IO service which offers the possibility of data logging (storing the samples) and dashboarding (displaying the samples through widgets such as graphics and maps).
To configure the feeds that are necessary to be able to receive the samples, refer to the documentation on Github.
WioAirMonitor has a dedicated screen for this functionality (Cloud Logging), from which you can activate / deactivate the continuous sending of data or send a single sample:
Conclusions
With this project I wanted to explore the rapid prototyping capability offered by an ecosystem like SeeedStudio Grove by creating a smart device for monitoring air quality. The project is released opensource and I will be happy to evaluate contributions, changes, feature additions via PR on Github!
Let me know in the comments if you liked it or if you have any questions / curiosities…