hazyair
v1.6.7
Published
Air quality monitoring tool.
Downloads
74
Maintainers
Keywords
Readme
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.
Hardware - Configuration
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 npm
sudo npm install -g npm@latest
sudo apt-get remove npm
sudo apt-get autoremove
Development
git clone https://github.com/\
hazyair/hazyair.git
cd hazyair
npm 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
.
Use as a module - API
const Hazyair =
require('hazyair');
// Initialize hazyair.
hazyair = new Hazyair([{
parameter: 'dust',
model: 'PMS7003',
persistent: true,
options: {
device: '/dev/serial0'
}
}]);
// Optionally handle incoming
// measurements.
hazyair.on('dust', (data) => {
// New measurement result
// available.
});
// Optionally send out incoming
// data to the ThingSpeak™
// service once available.
hazyair.thingspeak({
api_key:
'XXXXXXXXXXXXXXXX',
parameters: {
dust: {
concentration_pm10_normal:
'field1'
}
}
});
// Optionally send out incoming
// data to the dweet.io
// service once available.
hazyair.dweet({
thing:
'XXXXXXXXXXXXXXXX',
parameters: {
dust: {
concentration_pm10_normal:
'PM10'
}
}
});
// Start collecting
// measurements data.
hazyair.start();
// Optionally start http server
// and make data accessible to
// the web browsers.
hazyair.listen({
port: 8081
}, () => {
// Additional code goes
// here.
});
License
MIT License
Copyright (c) 2018-2019 Marcin Sielski