hazyair - air quality monitoring tool.
hazyair is a handy tool that enables to retrieve measurments of the:
- dust conectration in the air (PM1.0, PM2.5, PM10),
- temperature,
- humidity,
- pressure,
from the sensors and optionally store them to the simple database. It can also visualize the measurement results on the charts that can be accessed from the web browsers.
Configuration
Hardware -hazyair was orginally developed on Raspberry Pi Zero W but it should work on any version of Raspberry Pi. Following sensors are supported:
- dust sensors - Plantower sesors, SDS011 (not tested), SDS018 (not tested), SDS021 (not tested),
- temperature sensors - DS18B20,
- temperature, pressure and optionally humidity combo sensors - BME280, BMP280,
- builtin dust, temperature, humidity sensors - Xiaomi Air Purifier 2.
Installation
Common Steps
Install node
.
sudo apt-get install nodejs
Install npm
.
sudo apt-get install npmsudo npm install -g npm@latestsudo apt-get remove npmsudo apt-get autoremove
Development
git clone https://github.com/\hazyair/hazyair.gitcd hazyairnpm install
Production
Create node_modules
folder.
mkdir node_modules
Install hazyair
module.
npm install hazyair
Use as a service
Browse to hazyair
folder.
cd node_modules/hazyair
Run desired sensor configuration script (examples below).
npm run plantower PMS7003 \/dev/serial0 npm run nova SDS011 \/dev/serial0 npm run maxim npm run bosch BME280 1 119 npm run xiaomi AirPurifier2 \192.168.0.1
Deploy hazyair
service.
npm run deploy
Run web browser and open charts under following link http://<ip_address>:8081
.
API
Use as a module -const Hazyair = ; // Initialize hazyair.hazyair = parameter: 'dust' model: 'PMS7003' persistent: true options: device: '/dev/serial0' ; // Optionally handle incoming// measurements.hazyair; // Optionally send out incoming// data to the ThingSpeak™// service once available.hazyair; // Optionally send out incoming// data to the dweet.io// service once available.hazyair; // Start collecting// measurements data.hazyairstart; // Optionally start http server// and make data accessible to// the web browsers.hazyair;
License
MIT License
Copyright (c) 2018-2019 Marcin Sielski