Measuring air quality at any particular location isn’t too complicated. Just a sensor or two and a small microcontroller is generally all that’s needed. Predicting the upcoming air quality is a little more complicated, though, since so many factors determine how safe it will be to breathe the air outside. Luckily, though, we don’t need to know all of these factors and their complex interactions in order to predict air quality. We can train a computer to do that for us as [kutluhan_aktar] demonstrates with a machine learning-capable air quality meter.
The build is based around an Arduino Nano 33 BLE which is connected to a small weather station outside. It specifically monitors ozone concentration as a benchmark for overall air quality but also uses an anemometer and a BMP180 precision pressure and temperature sensor to assist in training the algorithm. The weather data is sent over Bluetooth to a Raspberry Pi which is running TensorFlow. Once the neural network was trained, the model was sent back to the Arduino which is now capable of using it to make much more accurate predictions of future air quality.
The build goes into quite a bit of detail on setting up the models, training them, and then using them on the Arduino. It’s an impressive build capped off with a fun 3D-printed case that resembles an old windmill. Using machine learning to help predict the weather is starting to become more commonplace as well, as we have seen before with this weather station that can predict rainfall intensity.
Poor air quality is a major problem for city dwellers the world over. Dust, smoke, particles and noxious gases from vehicles, industry and agriculture makes many megacities downright hazardous to live in. Pinpointing the source of pollution and developing strategies for mitigation requires accurate data on pollutant levels, but obtaining these numbers is not always easy.
Enter CanAirIO, a citizen science project that aims to gather air quality data from around the world by putting sensors into the hands of as many people as possible. Its team has developed two different sensor nodes for this purpose: an indoor one that can measure CO2, and a mobile one that can measure particulate matter (PM) levels. Both versions are powered by an ESP32 microcontroller that reads out the air quality sensors and connects to the Internet using WiFi or BlueTooth. The data can then be shared online to create detailed maps showing local variations in air quality.
The design of the sensor nodes is fully open-source, allowing anyone with basic electronic skills to build them. The sensors are a Sensirion SCD30 for CO2 measurement and an SPS30 for PM levels. The mobile version comes with a neat 3D-printed enclosure that can be mounted on a bike’s handlebar, enabling the user to quickly gather data around their neighbourhood. A mobile app simplifies setting up the sensors and sharing the data.
The air quality indicator is based around an Adafruit Feather RP2040 which is in turn based on the 32-bit Cortex M0+ dual core processor. This makes for a quite capable processor in a small package, and helps accomplish one of the design goals of a rapid startup time. Another design goal was to use off-the-shelf components so that anyone could easily build one for themselves, so while the Feather is easily obtained the PMS5003 PM2.5 air quality sensor needed to be as well. From there, all of the components are wrapped up in an easily-printed enclosure and given a small (and also readily-available) OLED screen.
[Costas Vav] has made all of the files needed to build one of these available, from the bill of materials to the software running on the Pi-compatible board to the case designs. It’s a valuable piece of technology to have around even if you don’t live in fire-prone areas. Not only can wildfire smoke travel across entire continents but simple household activities such as cooking (especially with natural gas or propane) can decimate indoor air quality. You can see that for yourself with an army of ESP32-based air quality sensors.
Remember when work meetings were just a bunch of people filling up a small, poorly ventilated room with their exhaled breath? Back in the good old days, all you had to worry about was being lulled to sleep by a combination of the endless slide deck and the accumulation of carbon dioxide. Now? Well, the stakes may just be a little bit higher.
In either situation, knowing the CO2 level in a room could be a handy data point, which is where a portable CO2 sensor like this one could be useful. Or at least that’s [KaRMaN]’s justification for SYPHCOM, the “simple yet powerful handheld carbon dioxide meter.” The guts of the sensor are pretty much what you’d expect — an Arduino Pro Micro, a SenseAir S8 CO2 sensor board, and the necessary battery and charging circuits. But the build does break the mold in a couple of interesting places. One is in the choice of display — a 1980s-era LED matrix display. The HDSP2000 looks like it belongs in a nice bench meter, and is surprisingly legible without a filter. It looks like it flickers a bit in the video below, but chances are that’s just a camera artifact.
The other nice part of this build is the obvious care [KaRMaN] put into making it as small as possible. The layout of boards and components is very clever, making this a solid, compact package, even without an enclosure. We’ve seen CO2 sensors with more features, but for a quick check on air quality, SYPHCOM looks like a great tool.
Last month we brought word of the IKEA VINDRIKTNING, a $12 USD air quality sensor that could easily be upgraded to log data over the network with the addition of an ESP8266. It only took a couple of wires soldered to the original PCB, and since there was so much free space inside the enclosure, you didn’t even have to worry about fitting the parasitic microcontroller; just tape it to the inside of the case and button it back up.
Now we’ve got nothing against the quick and dirty method around these parts, but if you’re looking for a slightly more tidy VINDRIKTNING modification, then check out this custom PCB designed by [lond]. This ESP-12F board features a AP2202 voltage regulator, Molex PicoBlade connectors, and a clever design that lets it slip right into a free area inside the sensor’s case. The project description says the finished product looks like it was installed from the factory, and we’re inclined to agree.
Nothing has changed on the software side, in fact, the ESP-12F gets flashed with the same firmware [Sören Beye] wrote for the Wemos D1 Mini used in his original modification. That said [lond] designed the circuit so the MCU can be easily reprogrammed with an FTDI cable, so just because you’re leaving the development board behind doesn’t mean you can’t continue to experiment with different firmware builds.
It’s always gratifying to see this kind of community development, whether or not it was intentionally organized. [lond] saw an interesting idea, found a way to improve its execution, and released the result out into the wild for others to benefit from. It wouldn’t be much of a stretch to say that this is exactly the kind of thing Hackaday is here to promote and facilitate, so if you ever find yourself inspired to take on a project by something you saw on these pages, be sure to drop us a line.
While some of us would have been tempted to gut the VINDRIKTNING and attach its particle sensor directly to the ESP8266, the approach [Sören] has used is actually quite elegant. Rather than replacing IKEA’s electronics, the microcontroller is simply listening in on the UART communications between the sensor and the original controller. This not only preserves the stock functionality of the VINDRIKTNING, but simplifies the code as the ESP doesn’t need to do nearly as much.
All you need to do if you want to perform this modification is solder a couple wires to convenient test pads on the VINDRIKTNING board, then flash the firmware (or write your own version), and you’re good to go. There’s plenty of room inside the case for the ESP8266, though you may want to tape it down so it doesn’t impact air flow.
While not required, [Sören] also recommends making a small modification to the VINDRIKTNING which makes it a bit quieter. Apparently the 5 V fan inside the sensor is occasionally revved up by the original controller, rather than kept at a continuous level that you can mentally tune out. But by attaching the sensor’s fan to the ESP8266’s 3.3 V pin, it will run continuously at a lower speed.
We’ve seen custom firmware for IKEA products before, but this approach, which keeps the device’s functionality intact regardless of what’s been flashed to the secondary microcontroller, is particularly appealing for those of us who can’t seem to keep the gremlins out of our code.
Canari is of course named after the brave birds that once alerted miners to dangerous air conditions before they were forced to switch to carbon monoxide sensors. This bird has a Raspberry Pi Zero W that gets air quality data from a public API and controls the lights with a PWM bonnet based on the concentration of particulates in the air. The more particulates, the dimmer the LEDs are, and the faster they fade in and out.
The main piece of data that Canari grabs is the amount of particulate matter, and the display can switch between representing the level of PM2.5 (particulate matter with diameter less than 2.5 micrometers) in the air and PM10. Check out the demo and setup video after the break.