tessel-bme-280

    0.1.0 • Public • Published

    tessel-bme-280

    The SparkFun BME280 is an Atmospheric Sensor Breakout to measure barometric pressure, humidity, and temperature.

    This library allows to interact with the BME280 connected to a tessel, using the official tessel library.

    Note: the johnny-five library includes ways to interact with BME280. This library uses a lot of code from johnny-five.

    BME280 "Creative Commons BME280" by sparkfun is licensed under CC BY 2.0

    Circuit

    BME280 circuit - from https://learn.sparkfun.com/tutorials/experiment-guide-for-the-johnny-five-inventors-kit/experiment-10-using-the-bme280

    "BME280 circuit (Tessel 2)" by sparkfun is licensed under CC BY 2.0

    Usage

    const tessel = require('tessel');
    const BME280 = require('tessel-bme-280');
     
    const port = tessel.port.A; // Use the SCL/SDA pins of Port A
     
    // Single mesure
     
    // slaveAddress is an optional 2nd param, defaults to 0x77
    const sensor = new BME280(tessel.port.A); 
     
    /////////////////
    // Event handler
    /////////////////
     
    // optional event handler
    sensor.on('data', (values) => {
        // this method will be called when `measure()` is called,
        // or when every `delay` milliseconds when `every(delay)` is called
        // until `stop()` is called
        console.log('received ("data" event):', values);
    });
     
    //////////////////
    // SingleMeasure
    //////////////////
    sensor.measure().then(
        // note that the 'data' event handler, if set, will still be triggered
        values => console.log('received (measure()):', values)
        // outputs: { temperature: 21.5, pressure: ..., altitude: }
        // units are celciusm ?? and meters
    );
     
    ////////////////////
    // multiple measure
    ////////////////////
     
    // optional 2nd param: a callback function
    recurrentSensor.every(delay, (values) => {
        // note that the 'data' event handler, if set, will still be triggered
        console.log('received (`every()` call):',values);
    }); 
     
    //... when you are ready to stop
    setTimeout(() => {
        recurrentSensor.stop();
    }, 4000)

    Why?

    Why did I reinvent the wheel? All the functionalities are available from johnny-five library...

    Because:

    • I just wanted to play with my new Tessel, and get familiar with development boards (Tessel is my first one!! 🎉🤓🍾!!).
    • I wanted to create a library that uses the official Tessel library, to get familiar with the API. This was before realizing all the humongous list of features already implemented by johnny-five...
    • I thought that having a pure Tessel 2 library was a good idea. This was before understanding all the buffer operations needed...
    • hmmm... why not?

    Install

    npm i tessel-bme-280

    DownloadsWeekly Downloads

    2

    Version

    0.1.0

    License

    MIT

    Last publish

    Collaborators

    • saadtazi