Second version of the Air Quality Monitor. First one is here, but the BME680 happened to produce not so meaningful results. This version uses sensors that measure absolute values:
- CO2 sensor (Senasair S8).
- BME280 for temperature/humidity/pressure.
- PMSA003 for PM10 and PM2.5 measurments.
Still work in progress. The PCB is available at EasyEDA. It fit nicely in out of the box $2 enclosure. Search for AK-N-41 on Aliexpress.
The firmware supports OTA update. Below curl command executed from the project root will perform the update:
curl -F "[email protected]/build/esp8285/firmware.bin" aq-monitor/update
The sensor can be configured for regular pushes to an InfluxDB (must be a DB that is not password protected). If the InfluxDB integration is enabled the sensor will turn off the WiFi and keep running by collecting data in the background. Once the telemtry data buffers are full or the time for pushing the data has come - the sensor will turn on the WiFi, push the data and turn it back off.
The WiFi will stay on until the first data push cycle has been completed. In this time window the sensor can be reconfigured (open the http://sensor_address/ to get to the settings page).
The firmware provides a REST API to ease the usage. There are several endpoints that should be mentioned:
- http://{address}/get - get the current sensor readings as JSON document.
- http://{address}/logs - get the logs (for debugging purposes).
- http://{address}/settings - a form that is used to configure the sensor. Details like WiFi SSID/password, InfluxDB integration and offsets can be configured here.
The project uses a common set of tools that are availabe in another repo - https://github.com/funnybrum/esp8266-base. Clone the esp8266-base repo in the lib folder:
cd lib
git clone https://github.com/funnybrum/esp8266-base.git
After that try building the project.