Code Monkey home page Code Monkey logo

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

hazyair's Projects

hazyair-nova icon hazyair-nova

Wrapper library created to simplify use of SDS011 laser dust sensor in your projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.