JSPM

tessel-bme-280

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q24268F
  • License MIT

control bme280 sensor (barometric pressure, temperature and humidity) from your tessel

Package Exports

  • tessel-bme-280

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tessel-bme-280) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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?