Designing an open-source air quality monitor and building a community sensor network
In March 2020 I gave a talk to a local community group, Uplands Living Streets, about the DIY air quality monitor I built. I mentioned that I would love to design and build a solar-powered air quality monitor that's easy to install and modify. Quite a few folks seemed interested in the idea, so I decided to pursue building my own air quality monitor, including designing the circuit board myself.
I wanted to design something that was:
- battery-powered and charging with a solar panel,
- used long-range wireless communication, and
- easily extended with other sensors.
It took me more than two years and three revisions of the hardware to get something that works, but it's finally ready. The enclosure design was the most challenging, given that it had to be weatherproof. The most recent version even encloses the antenna to remove another opening where water could possibly get in.
Seeed's Fusion PCB assembly service manufactured both the second and third revisions of the hardware. My design won the Best Wio-E5 Fusion Case Study and I could use the Fusion PCB Assembly coupon prize towards building the third revision of the hardware. If you're designing something that makes use of the Wio-E5 LoRaWAN module, Seeed will help you out with free PCBA prototypes.
I placed the order for the Seeed Fusion PCBs on 24 May and only two days later the order was confirmed and they started procuring the components. On 2 June Seeed notified me that some resistors were out of stock and we agreed to replace them with another alternative. Less than two weeks later on 13 June the order was shipped. It only took three days to reach me here in the UK on 16 June! Going just over three weeks from placing an order to having an assembled PCB in your hand is not bad.
The Wio-E5 (previously called the LoRa-E5) is used to communicate with LoRaWAN networks like The Things Network and Helium. It's based on the STML32WL chipset, which includes both a microcontroller and a LoRa radio on the same chip! You can run your own software on the microcontroller, but it comes preinstalled with the LoRaWAN stack so you can use it as a LoRaWAN module. That means you connect to it from another microcontroller over a UART interface, and just send AT commands (e.g. AT+JOIN
to join a network) to connect to a LoRaWAN network. I'm using the nRF52832 chip from Nordic as the main microcontroller, as it can easily be programmed with Espruino over Bluetooth!
The third revision changes the main processor module from the MDBT42Q module that's hard to get hold of at the moment, to an E73-2G4M04S1B that Seeed Fusion was able to source. Both modules use the Nordic nRF52832 chip internally. I also changed the 3.3V regulator to one that's in stock. The global electronic component shortage is still very much with us in 2022.
Other changes include changing to a 5V regulator with true shutdown, so that the particulate matter sensor can be turned off completely to reduce power consumption. I released a breakout board with the 5V regulator as a separate product on Tindie for sale!
I've started using a recycled PETG filament for the enclosure, and this is what the unit looks like half-assembled:
At first I attempted to use The Things Network for connectivity, but as there were no existing gateways in the area, I installed two of my own. Unfortunately this still didn't provide the coverage I needed, so I decided to look into using Helium. Thanks to them using crypto as incentive for people to install gateways, there is enough coverage in all the places where I intend to install the air quality monitors.
It was also relatively easy to hook up Helium to MyDevices Cayenne, a dashboard for visualising sensor data.
Here's a snapshot of one month of data from the first air quality monitor I installed on the roof of a restaurant in the neighbourhood:
Here's another snapshot of a week worth's of data from another air quality monitor installed at a residential dwelling:
There seems to be daily peaks around 9am and then again around 8-10pm. WHO air quality guidelines state that PM10 should be below 45 µg/m³ on average in a 24-hour period, so the good news is that does indeed seem to be the case.
Technical details are available on Hackaday and source files are available on GitHub. I hope to have circuit boards for building your own available on my Tindie and Lectronz stores soon, and will be posting documentation on how to build the monitor on Hackster as soon as it's ready!