The Pandemic has produced abrupt changes in society. In particular, people are minimizing travel and urban vehicular traffic.
This is an unprecedented behavioral change at a societal level which provides a unique opportunity to measure an achievable baseline for air quality, a perspective that might be helpful for long-term ecological policy.
In the short-term, it also provides a metric for measuring vehicular traffic and serves as a proxy for measuring how successful different public health initiatives may be in reducing travel and COVID-19 vectors.
Helium is the biggest public LPWAN in the United States and this fact combined with their cloud infrastructure provides the perfect solution for gathering this data. Although this proof of concept focuses on deploying a first few units in Austin, TX, expanding to the rest of the country becomes straightforward.
What’s All this PM Stuff, Anyhow?Particulate matter produces poor air quality, reduces visibility, and causes damage to the respiratory and cardiovascular systems.
According to the EPA, “[s]mall particles less than 10 micrometers in diameter pose the greatest problems, because they can get deep into your lungs, and some may even get into your bloodstream.”
PM2.5, or particulate matter of aerodynamic diameter 2.5 microns or smaller (about 3% the diameter of a human hair), is of particular importance to air-quality experts, because it contributes directly to haze, and its small size is damaging to the body.
Mass concentration is a way of quantifying particles in the air: it specifies the concentration of particles as µg per cubic meter of air. This representation is the established convention for specifying air-quality guidelines.
On a clear day, the mass concentration of PM2.5 may be as low as 5 μg/m3 or below. It is considered unhealthy when the 24-hour mass concentration of PM2.5 is above 35 μg/m3. The 24-hour concentration is used because duration of exposure also affects health - the longer your exposure, the higher your risk of deleterious health effects.
System OverviewHelium's public LPWAN network and backend make it easy to get sensor data into the cloud. Thanks to pre-existing network coverage and Helium's Console tool, I was able to quickly get a system up and running.
In this project, the sensor broadcasts to the Helium Network, which routes the information through Helium's backend and from there to the internet at large.
The Helium Console makes it very easy to create custom API integrations. For this project, I created a custom HTTP integration so that data from the Helium Network is routed to a server I am running locally. The server exposes an Ngrok endpoint, and it’s as easy as specifying the URL for that endpoint in the Helium Console. It is truly a joy to use, I wish all web services were as straightforward and easy as this!
With the custom API integration, the data is routed to the Python Flask server I am running locally, where it is parsed, and uploaded to an InfluxDB/Grafana server, where the data is ultimately visualized.
System Specifics: The SensorThe sensor uses an MCCI Catena 4610 for both logic and wireless connectivity. A Sensirion SPS30 particulate-matter sensor is the sensing element.
I wrote a blog post about connecting the Catena board to the SPS30 and programming it with Arduino on my personal site.
The sensor is housed in an environmentally-friendly reused food container. 1/4" (6.4mm) holes are drilled around the housing to provide airflow to the sensor.
I conformally coated the Catena board for additional weather-resistance.
Experiment SetupTwo sensors were built. One sensor was placed outdoors, in an urban city block, to measure outdoor air quality. The second sensor was placed indoors, as a development aid.
Deployment LogAs anyone who has done hardware knows, deployment is where the rubber meets the road. Deployment is where designs are validated: everything is just theory until it is actually tested in-situ. Subsequently, deployment is where we encounter the realities of physics head-on and, in hardware, frequently that entails design iterations as we impedance-match our hypotheses with the reality on the ground.
Deployment 1I first attempted deployment at the end of June. I live in downtown Austin, TX, and have a neighbor who lives near a major intersection. I figured this would be the perfect spot to get vehicle-related particulate matter readings, because of its close-proximity to traffic. My neighbor agreed to host the sensor in the name of science, so I bundled it up, built a tiny table to protect it, and deployed it outside my neighbor’s front door.
When I got home, I noticed the sensor transmissions were not being picked-up. I narrowed it down to a signal strength issue thanks to the helpful RSSI graph on the Helium Console. With the Helium Console, I was able to do a live range test: I put the sensor on a battery, and walked from my neighbor’s house towards the nearest gateway until packets started showing up.
I’ve included a screenshot of the graph, showing how the RSSI increased as I walked the sensor towards the nearest gateway. The noise floor is at about -112 dB, and the nominal signal strength is around -60 dB.
I needed a way to increase the signal strength, and this led to Deployment 2.
In the hopes of improving signal strength, I researched different antenna topologies.
A dipole antenna seemed promising, and was feasible to build at home. Dipoles are halfwave antennas. A dipole is essentially a piece of coaxial cable, terminated at one end with a connector (SMA in this case, and nominally of 50-ohm impedance), and terminated at the other end with pieces of wire (frequently called “legs” or “elements”) that are each cut to be ¼ of the wavelength of interest (together they form a halfwave.)
To calculate wavelength, we use the formula λ = c/f where c is the speed of light and f is our frequency in MHz. For 915 MHz, a nominal LPWAN frequency in North America, λ = 32.7 cm (12.9 in). The quarter wavelength for this is 8.17 cm (3.2 in), and this is the length to which I cut each element.
I disassembled an existing SMA antenna to make use of its goodness (interestingly, that antenna may have been a dipole itself; the internal construction consisted of a wire of approximately 8 cm and a brass tube of equal length running in opposite directions.)
I stripped the tip of the coax to expose the exterior shielding and the interior conduit wire. One element was soldered to the exterior shielding of the coax, and the other was soldered to the internal conduit wire. I strain-relieved the assembly by hot-gluing it to a cardboard frame.
I connected the new dipole to the sensor, and oriented it towards the nearest gateway (dipoles are directional, if the elements are oriented east-west, then the antenna is most sensitive north-south.)
The results: while the dipole at least anecdotally improved range by a house or two, it was still not enough to reach my neighbor’s front porch. Thinking on my feet, I came up with Deployment 3.
One rule of hardware might be: if at first you don’t succeed, scale your objectives until you do. While my neighbor’s house would be ideal, my own location still has air and still has cars, so I endeavored to deploy again! This time I set up the sensor under the eaves of my front porch. The sensor was well-within range here, and data collection went smoothly. Until, that is, I noticed sharp spikes appearing in the data. The lines and data-points were smooth and continuous, so it wasn’t a glitch in the sensor. Clearly something was occurring, the only question was what.
This is one of those things that happens in hardware development, where clearly we are measuring something, only it’s not something that we expected.
I was sitting in the living room noodling over the data when my brother walked by to go outside. And it was then that it hit me. We were measuring something real - the spikes were my brother’s smoke breaks as he relaxed on the front porch!
While this may not have been the data I initially sought, it was refreshing to see the sensor working, and detecting smoke with great sensitivity!
It wasn’t what I was originally intending, but detecting my brother’s smoke breaks is undeniably cool, and perhaps useful as a way to help him better understand and conceptualize his own habits.
With the sensor deployed, I now have a continuous stream of information about the quality of air outside my house. It may not be what I expected, but I am happy to have this lens into a world that is normally invisible to us humans.
Thanks to Helium’s public LPWAN network, I was able to quickly iterate over ideas and easily deploy sensors in an agile manner.
As a sanity-check and debug-tool while I was doing the other deployments, I set up a sensor in the middle of my house. The indoor sensor uses the same electronics as the outdoor sensor, but is housed in an open box, because it does not need weatherproofing.
While I did not originally plan to use it for anything serious, this indoor sensor proved to have interesting and unexpected results.
One of the first things I noticed was sharp spikes in particulate matter concentrations while cooking! Take for instance the graph below: while cooking tacos for dinner on July 14th (it was Taco Tuesday), the PM2.5 mass concentration inside the house rose above 75 μg/m3 - more than twice the limit considered harmful! I never would have even considered this a possibility were I not equipped with an air quality sensor. Now that I am aware, I can take steps to mitigate harmful impacts on the health of my family. Such knowledge becomes ever more important as people spend more time working from home and staying indoors.
An additional interesting point is the shape of the curve. Persons with a background in engineering and signal-processing may recognize it as the exponential decay function! The particulates from cooking dinner are the “impulse,” and as they diffuse and disperse throughout the house, their concentration apparently falls according to exponential decay. It is fascinating to see a concept from an engineering textbook present itself in real life!
Live DataHelium's infrastructure makes it easy to route sensor data into your backend of choice.
I set up a Grafana and InfluxDB backend in order to visualize the data coming in from Helium. A tutorial on how to do this yourself is available here.
If you’d like to see the live data from these sensors you’ve now read so much about, you may view the Grafana Dashboard with live data here! Login credentials are below.
Username: iotforgood
Password: abetterworld
When you log in, click “Indoor and Outdoor Sensor Readings ” to be taken to the appropriate dashboard.
ObservationsThis experiment resulted in several surprising observations.
1.) There is an increase in particulate matter during rush hour (see graph under Deployment 3). In fact, particulate matter during rush hour rises above the unhealthy threshold of 35 μg/m3. However, it is only for a short duration, so this is not the end of the world.
2.) More noteworthy, perhaps, is that the indoor air-quality sensor detects particulates from cooking, and these spike relatively high - as much as twice the unhealthy limit for PM2.5 (see graph in Deployment 4). This is noteworthy because people are spending significantly more time in their homes due to the pandemic. This unexpected insight has real implications for human health. A key point is that indoor air-quality may not be as good as people think, which is very important when we are spending all day indoors.
ConclusionUsing Helium's IoT infrastructure, I was able to measure real-world data with real-life implications for human health.
I originally set out to monitor air-quality as a function of vehicular traffic. While I did observe an increase in particulate matter during the 8 AM to 10 AM rush hour (see graph in Deployment 3, above), what I wound up measuring was much more intimate and personal, with direct impact on my own health and the health of those around me.
Knowledge is power. Having a lens into a world that is literally invisible is both motivating and empowering. With this knowledge, we can take real steps towards a better present and a brighter tomorrow!
Thank you for reading.
Comments