With the ZMOD4510 connected to an Arduino board and reliably sending data to my Raspberry Pi server, I'm ready to start the various bits of air quality monitoring I had set out to do for this challenge.
My main goal was to see if the air quality in my garage is ok, given that we park our cars in there. I also planned to test in the house near the door that leads to the garage.
However; to keep things simple, and in case I need to make adjustments, I thought I'd start by testing my home office.
I've read plenty of articles that claim that ionic or static type air filters can create ozone, and ozone is apparently a bad thing, given that there's an air quality scale associated with it and all that. So I thought I'd test to see if the ionic air filters I have at home create enough ozone to be a concern.
We get a fair bit of pollen that affects both myself, and my Charlie cat, so we do run those filters a lot when needed. Living near the woods is great for air quality in terms of pollutants, but not in terms of allergens!
If this turns out to be a concern, I'll really have to step up my game and hope to win the much better Philips hepa air filter that's part of the prize package! It doesn't appear to use any ionic elements, so that's good to know.
To start with, I had my ZMOD4510 sensor collecting data for a day on the weekend, with nothing special going on - the window is closed and the office door is open. This is what the resulting daily chart looks like for my office, without using the air filter.
Health Canada recommends keeping indoor ozone levels under 20, so my 11 seems to be a good safe level. I'm guessing all of my accumulated electronics in the house create this ozone, so in general it's a good idea to get some fresh air into the house from the outside, either by opening windows or running the bathroom exhaust fans. In my part of the world we have to do that anyway to keep indoor humidity under control. This is where I wish our house had a whole-house air exchange system (like a heat recovery ventilator).
Monday:
For some reason the sensor stopped reporting on Sunday night, and I didn't notice until later in the day. I restarted the sensor, but as you know from previous blog posts, it takes a while to warm-up. In the next image you can easily see the upward curve that gets reported for the EPA-AQI as the readings start coming in. The first few hours of data gathering are therefore not very useful in terms of the EPA-AQI. The Fast-AQI, however, responds much faster to changes and seems to immediately give a result that makes sense - compared to the official EPA-AQI it appears to be just a much quicker, more responsive, version of the same thing. This might be handy when checking the garage air quality - the EPA version might average out any short-term pollution from a car coming or going.
Around 9:30pm the chart also shows a blip where things dropped to zero for a while. I have no idea what happened there, but it seemed to have recovered by itself.
Tuesday:
(Also: Troubleshooting and Adding more debug code)
Tuesday morning it was a bit stormy here and the power went out. After that, the sensor failed to report back in. It's a bit tricky trying to figure out whether or not it's working, as it requires a fair bit of time to gather data and warm up before it checks in with the server.
I decided to hook it up to the Arduino Serial Console again to find out the problem. Good thing I started the air quality testing in my office!
I noticed the issue was with MQTT not connecting, and it turns out that the IP address of my Raspberry Pi server had changed with the power-outage induced whole-house reboot. Unfortunately, the ArduinoMQTTClient library doesn't seem to be able to resolve ".local" hostnames, so I just updated the Raspberry Pi's IP address to the new one.
My hummingbird feeder monitoring sensor uses the PubSubClient library, which doesn't have that limitation, and was fine through this reset. For using this sensor longer-term, I recommend using that MQTT library instead. For now, I just hope the power stays on long enough for me to complete my experiments
To make future troubleshooting easier, I also added a check-in message for the Arduino sensor to send to the server, so that the dashboard shows that the sensor is online. That was fairly easily accomplished by changing the sensorID to add "-status" to it, so it can then (in Node-Red) be easily re-routed to update a text field on the dashboard to show the last-checkin time and a status message. This saves me waiting an hour only to find out something went wrong.
Here is the updated Node-Red flow, showing some of the status messages reported in the debug console.
I've also updated the sketch itself to have the Arduino MKR WIFI 1010 give a visual indication of failure. All error conditions now forward to one function that will repeatedly flash the built-in led rapidly 5 times on failure. For more general use it might be better to differentiate the different kinds of failures, but then again, once you have WiFi and MQTT connected, any other failure would be much more easily interpreted by sending the error message to the server.
Having completed those updates, and verifying that the sensor is once again online and reporting values, I went back to monitoring the air in my office.
The dashboard now shows that the sensor has checked in with the server, which turned out to be much more useful than I ever thought it would be!
Wednesday:
Now that things were back online and working properly again, I let the sensor collect data for the day, which gave me this nice base-line of my office (and my home) air quality.
You can see the warm-up phase, and how the Fast-AQI (light blue line) comes online so much faster than the EPA_AQI (dark blue line), but still gets the correct results.
After getting a base-line of my office air for a few days, I thought I'd try opening the window a crack and keeping the door closed, to see if fresh outside air affects the air quality. I kept it like that for a few hours, long enough to see the results in the graph.
Oddly, the sensor was showing zeroes for a while... I'm not sure what would cause that, but I don't think that information is accurate - wouldn't there always be at least some level of polution? It was quite windy, but would that blow away all of the pollutants? You'd also think that the ozone levels in the house would go down by some amount if that were the case, but it didn't. So I left it at that and went on to the next stage of testing.
After closing the window and opening the door to the rest of the house again, the chart shows my more regular values for my office: AQI is about 9, Ozone about 11. This seems to be what I get most of the time.
Thursday Afternoon:
Then having tested with some fresh air for a while, and being confused by those results, I turned on the air filter for the afternoon, with the window and door closed, to see how that affects things.
This is one of those static-electricity type air filters, with no real filter in it.
After running that air filter for 3 hours straight on the highest setting, from 3pm to 6pm, there was no visible change - neither better nor worse - for air quality! It looks like ozone generation for that particular filter is not a concern. That filter is meant to remove dust and allergens from the air, so the zmod4510 would not detect a change in that - that's a different sensor I'd like to try out some time in the future.
The downward spikes are when I had to reset the sensor - it does seem to hang once in a while.
Next I tried with the other air filter, which has a proper Hepa filter, but also includes an ionic booster setting, which I turned on for this test.
The charts don't show any real differences in the line between the baseline morning levels and the afternoon levels while the 2 different fans were running for a total of about 5 hours.
My First Experimental Results!
In conclusion for this experiment: the two air filters I have do not appear to affect air quality in terms of NOx and Ozone.
The air filters I used for this test include one that is an "ion and electrostatic cleaner", which just has a coarse fluff filter and a bunch of metal plates; and the second air filter has a proper Hepa filter with an extra "ionizer feature". Neither of them appear to add Ozone to the air.
As a secondary bonus takeaway, these tests were performed in my office which is right above the garage, and none of the data collection tests showed any signs of air quality changing when our cars were coming or going while the data was being gathered.