Fine dust (air pollution) monitoring station. Air pollution monitoring channel updates once every minute with PM 10.0 and PM 2.5 readings from the Nova PM (SDS011) Sensor.
[Please note]
This project doesn't support GPS and realtime location tracking capability. For a project that supports GPS and realtime location tracking, please visit the following link : https://github.com/happybono/FinedustMonitorWithGPS
Click to Expand
Initial Release.
Now supports [Channel Status Updates] in ThingSpeak : Updated FinedustMonitorWithGPS.ino, server.ino
Various bugs fixed.
"Email Alert" function added as a ThingSpeak Analysis plug-in.
Attached a programmed NFC Tag Sticker for faster and more convenient access to the ThingSpeak dashboard.
Fine dust (PM 2.5 and PM 10.0) 3D visualization bar charts added on the ThingSpeak dashboard.
Various bugs fixed those related with fine dust (PM 2.5 and PM 10.0) 3D visualization bar charts.
Supports multiple series (PM 2.5 & PM 10.0) chart as a ThingSpeak plugin.
Various bugs fixed.
Various bugs fixed those related with fine dust (PM 2.5 and PM 10.0) 3D visualization bar charts.
Update to support tightened the rules around query parameters in the ThingSpeak platform.
- Measuring the fine dust contamination level in the air in real time. The value is displayed on the OLED Screen, and updated every second.
- Measuring the current temperature.
- Refining data and synchronize with the web-based cloud service. (e.g. ThingSpeak, Plaive)
- 1 x Micro-USB
- IEEE 802.11 b/g/n Wi-Fi technology.
- Up to 24 hours (1 day) of typical device usage.
- Testing consisted of full-time active use until complete battery discharge.
- Wi-Fi was connected to a network.
- Syncs data once every minute with PM 10.0 and PM 2.5 readings from the Nova PM (SDS011) Sensor and Temperature reading from the DS18820 Temperature Sensor.
- Battery life may vary significantly with settings, usage and other factors.
- NodeMCU ESP8266-12E
- Soldering required.
- D1 : TX of SDS011
- Soldering required.
- D3 : Data, D2 : Clock
- Soldering required.
- D4 : Data
- Micro-USB : Power
- Dimension : W (66.4 mm) × D (95.0 mm) × H (6.5 mm)
- Input : DC-5V / 0.6A
- Output : DC-5V / 0.6A
- Capacity : 2,300 mAh
- Size : 25.0 mm
- Capacity : 926 Byte
- This should be programmed to automatically opening the ThingSpeak Dashboard when the NFC Capable device has contacting on the NFC Tag Sticker.
- https://www.amazon.com/GoToTags-Blank-White-Metal-NFC/dp/B00TRL774A/ref=sr_1_5?dchild=1&keywords=ntag216&qid=1591593422&sr=8-5
- ThingSpeak (https://thingspeak.com/)
- Plaive (https://plaive.10make.com/)
This library supports the following devices :
DS18B20
DS18S20 - Please note there appears to be an issue with this series.
DS1822
DS1820
MAX31820
https://github.com/milesburton/Arduino-Temperature-Control-Library
This is a driver for SSD1306 128x64, 128x32, 64x48 and 64x32 OLED displays running on the Arduino/ESP8266 & ESP32 and mbed-os platforms. Can be used with either the I2C or SPI version of the display.
https://www.github.com/ThingPulse/esp8266-oled-ssd1306
Arduino library to determine the running median by means of a circular buffer.
https://github.com/RobTillaart/Arduino/tree/master/libraries/RunningMedian
Running Median looks like a running average with a small but important twist. Running average averages the last N samples while the running median takes the last N samples, sort them and take the middle one, or the average of the middle two.
Important differences between running average and running median:
- Running median will return real data (e.g. a real sample from a sensor) if one uses an odd size of the buffer (preferred). Running average may return a value that is never sampled.
- Running median will give zero weight to outliers, and 100% to the middle sample, whereas running average gives the same weight to all samples.
- Running median will give often constant values for some time.
- As one knows the values in the buffer one can predict to some extend how much the next samples will change the running median.
- Running median is a bit harder as one needs to keep the values in order to remove the oldest and keep them sorted to be able to select the median.
- Rob Tillaart 2018, RobTillaart/Arduino, GitHub, RobTillaart, viewed 23 February 2020, https://github.com/RobTillaart/Arduino/blob/master/libraries/RunningMedian/RunningMedian.cpp.