During and after the wildfires on the west coast of the United States the PurpleAir II (PA-II) network of low-cost monitors grew exponentially and has reached a number of about 11000 units. The reason was simple, people wanted to see when it was safe to go outside and/or open the windows.
Although the PA-II is a small cute particulate matter monitor, it has a flaw. The temperature and humidity sensor (Bosch BME280) is placed too close to the rest of the electronic components. As a result, neither the temperature nor the humidity reflects the real values of these environmental parameters. All electronics produce heat, and they may interfere with other sensors, and this is the case with the PA-II.
By the time someone invests money on a device with an array of sensors they want to be able to take valuable measurements for all the parameters. For this reason, I figured out how to improve the temperature and humidity measurements in order to reflect the real conditions outdoors or indoors as some people place the monitors indoors too.
It is easy to take apart the device, as there is only one screw. Once it is unscrewed, you need to pull the sensors out of the white case. Don’t worry because they are holding each other with some stickers.
The key for better temperature and humidity measurements is to take the BME280 sensor out of the case in order to expose it to the real environmental conditions.
The cables that connect the sensors with the mainboard are not very long but they are enough to bring the sensor to real-world conditions. The best place, in my opinion, is between and under the PM sensors. In particularly under the inlet of the fan. As the fans draw air into the laser chamber air passes by the BME280 sensor, as a result, we get better measurements. The sensor is placed in the middle of the device which means it will be safe from rain.
Either way, I always recommend placing these kinds of monitors (with or without a hack) under a shelter because if the weather conditions are extreme, the electronics will get wet.
Are temperature and humidity data valuable to you as they are to me? Do you find this Hack useful?
7 thoughts on “PurpleAir II (PA-II) Hack”
PA already adjust temperature and humidit,y due to heat build up inside the casing. thus your hack temps are incorrect now.
A correction of -8F and +4% humidity on the PA map is used on the temperature layer.
Temperature and humidity values can’t compensate with just applying a minus-8F or +4%. It may work in winter but not in summer or some other season. Climate plays an important role as well.
I want to see the temp/humidity data, but the widget doesn’t seem to provide it. I’m not on the same network where I have the PurpleAir sensor, so can’t just hit it with http. Do you know if there is an API to hit on the sensor? I tried curl but also didn’t see the temperature info. Have you had any luck querying the sensor for the temp data?
Have you tried with the HomeBridge?
I use this plug-in which supports temperature and humidity: https://www.npmjs.com/package/@timjwilkinson/homebridge-purpleair
In checking out HomeBridge, their example showed getting JSON data from PurpleAir. I didn’t realize that PurpleAir would serve up JSON directly (from your device or from the map!) I checked and it works. So I think the quickest solution (for my purposes) is to query direct with curl and feed it to jq or python to extract the fields I’m interested in. Thanks so much!!! And I’ll check out homebridge as well …and it looks like I need to check out your book too.
LikeLiked by 1 person
You are welcome Scott. Have a great day!
LikeLiked by 1 person
[…] PurpleAir II (PA-II) Hack […]