Wifi-enabled weather stations are available in a great variety, usually covering: temperature, atmosperic pressure and relative humidity. Through my own interest in environmental factors related to covid-19 and the possible impact on the 2020 lockdown on air quality, I decided to use my existing knowledge in IoT/digital electronics to build a comprehensive, multi-sensor data source for long term monitoring and time series analysis
current project state:
After a few month of test operations in late 2021, I experiences frequent dropouts and system reboots, specifically in early morning low temp & moisture conditions. I concluded: NodeMCU needs improved sealing to withstand adverse weather conditions, actual sensors appear tolerant to moisture and temperature variations but MCU needs efficient sealing. Moreover, O3 sensor calibration requires temperature and rH% stability over several days of sample time. This needs to be repeated in a controlled environment.
implementation details:
- NodeMCU ESP8266-12E µController with sensors:
- BME280, digital, temperature, pressure and rel. humidity
- SDS011, digital + laser-based, 2.5µm/10µm particulate matter (PM)
- Winsen MQ131, analog, low-concentration O3 sensor
- Custom library myTaskScheduler for asynchronous scheduling of data sampling (this library is also central to the StratoExplorer project).
- µC acting as WiFi client in local network
- OTA (over the air) updating of NodeMCU code
- JSON endpoint to deliver sensor data:
- average + standard deviation in sample interval
- min/max values in sample interval
- NTP based time information
- sensor health status
- Normal atmospheric pressure (QNH, hPa) corrected for temperature and humidity according to DWD standards
- O3 sensor corrected for temperature and humidity
- O3 sensor (long term) calibration mode
- Backend process (python, cronjob) polling AirStation endpoint for data
- Postgres database for long term storage and data analysis
