Pollution monitoring node

For more and detailed info about my reply see: https://github.com/teusH/MySense (full documentation and software) and (Dutch) http://behouddeparel.nl/samen-meten (global info and measurements results).

MySense is an Open Source Python framework for air quality measurements (sensor kits) and data proxy server. The framework supports all types of PM sensors (Dylos, Nova SDS011, Plantower PMS7003, Shiney PPD42NS, GPS, gasses (NOx, SO2, O3, NH3) sensors from Spect, meteo (DHT22, BME280/680). Comminucation: LAN, Wifi and LoRa.

Together with national health institute we had quite some (more as a dozen…) sensorkits equipt with SSD011/DHT22/Marvin LoRa for two month now running in several locations in Holland.
Experiences: SSD011 differ amongs each other, operable life time is limited for fan and laser, DHT22 differ too much (BME280 too) to be reliable for calibration of measurements, Marvin signal strength is limit is 1 km. The good story is: probably with more tests some type of calibration can be done. Personally a favor BME280 or BME680 (more reliable), and PMS7003 (more PM sizes, less energy, but no tube air inlet) and probably the PyCom LoRa controller (Python, antenna).

PM sensors have a fan: need more energy. I have my doubts on using (small) batteries in sensing air quality. E.g. a small TTN temp/light/motion/ESP LoRa sensor empties the battery in 3 weeks time.

See the github for the map “statistics” for the calibration reports.

3 Likes

@kap @teus How do you deal with PM sensor and BME280 module waterproofing? I have a waterproof box to put the “main circuit” (an ESP32 LoRa based board, TTGO V2), a battery and the UV sensor in (under a transparent plastic sheet “window” for this latter one), but I don’t know how to deal with these two modules to have them “in the wild” (as I also need accurate UV measurement, I can’t have a roof on it) and get accurate PM and temp/humidity measurement too…

@kap I saw on your pictures that you have a roof on top of your node, but did you test other configurations?

Thanks for your help

1 Like

As you noticed, I didn’t have to bother too much about waterproofing. The next step that I have in mind (just waiting for more sensors to arrive) would be to put the PMS5003 inside the box entirely and just cut out holes to match sensor’s vents. Not yet sure how to handle the humidity sensor, though.

Have a look at how airly did it: https://airly.eu/en/sensor/
Rumor has it they are using PMS5003 too. The sensor is on the bottom of the box, facing down, behind the meshed part of the case. You won’t get this with any universal case I guess, but that’s how it’s done in a production unit.

Perhaps some 3D printing is due :wink:

Thanks for your answer. How do you connect the PMS sensor to your card? On which ports?

I’m looking how to wire it on my TTGO LoRa 32 V2 board, and be able to read the values.

How do we deal with waterproofing: we have 3 types of boxes: an upside down PVC rain collector of rain gutter with holes covered with gutter end pieces, PVC air roof outlet and outdoor V220 electricity connector box (see for pictures http://behouddeparel.nl/samen-meten).
Meteo people use Stepheson screens (more expensive).
My favor is Plantower PMS7003 (small and more PM ranges).
Warning 1: humidity above 70% is causing exponential raise of PM values. A report on this is in progress. I prefer the BME Bosch meteo sensors.
Warning 2: PM and meteo sensors differ in the production batch as well between manufacturers. You need to do calibration. See https://githup.com/teusH/MySense for this.

1 Like

In MySense we use LoPy and Plantower PMS7003 or Nova SDS011. Wiring is simple on the PyCom or LoPy board. The big advantage is the functionality with python and so the ability to use multi threading. Make sure you upgraded to the latest firmware release.
See https://github.com/teusH/MySense the folder PyCom for details of the wiring and how to read the values of the sensors.

Yes it is running now outside for several months. Main problem so far is that meteo sensors need to be reset (I2C bus problem) or too wet. Some good meteo sesors (Bosch 680) or Sensirion (SHT31) one can heat up the sensor when needed. We did not discover much corroted leads. The air tube we use have a firm natural (convection) air throughput.

I use Nova SDS011 on Arduino, and an ATIM LoRaWAN shield
I have just written a tutorial : https://www.thethingsnetwork.org/labs/story/reporting-pm25-pm10-micro-particle-dust-sensor-by-using-arduino-and-lorawan-atim-acw-duino-shield

3 Likes