New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

bme280-sensor

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bme280-sensor

A Node.js I2C module for the BME280 Humidity, Barometric Pressure, and Temperature Sensor. Also includes support for the BMP280 Barometric Pressure and Temperature Sensor.

latest
Source
npmnpm
Version
0.1.7
Version published
Weekly downloads
164
-6.29%
Maintainers
1
Weekly downloads
 
Created
Source

bme280-sensor

bitHound Overall Score

Welcome to bme280-sensor, a Node.js I2C module for the Bosch BME280 Humidity, Barometric Pressure, Temperature Sensor. Adafruit sells a BME280 breakout board and here is the datasheet.

If you are not interested in humidity, this module is also compatible with the lower cost BMP280 Barometric Pressure and Temperature Sensor which does not include a humidity sensor.

This module uses i2c-bus which should provide access with Node.js on Linux boards like the Raspberry Pi Zero, 1, 2, or 3, BeagleBone, BeagleBone Black, or Intel Edison.

Note: While the BME280/BMP280 device does report temperature, it is measured by the internal temperature sensor. This temperature value depends on the PCB temperature and sensor element self-heating. Therefore ambient temperature is typically reported above actual ambient temperature.

Since bme280-sensor needs to talk directly to the I2C bus and requires access to /dev/i2c, you will typically need run Node with elevated privileges or add your user account to the i2c group: $ sudo adduser $USER i2c

Example Code

const BME280 = require('bme280-sensor');

// The BME280 constructor options are optional.
// 
const options = {
  i2cBusNo   : 1, // defaults to 1
  i2cAddress : BME280.BME280_DEFAULT_I2C_ADDRESS() // defaults to 0x77
};

const bme280 = new BME280(options);

// Read BME280 sensor data, repeat
//
const readSensorData = () => {
  bme280.readSensorData()
    .then((data) => {
      // temperature_C, pressure_hPa, and humidity are returned by default.
      // I'll also calculate some unit conversions for display purposes.
      //
      data.temperature_F = BME280.convertCelciusToFahrenheit(data.temperature_C);
      data.pressure_inHg = BME280.convertHectopascalToInchesOfMercury(data.pressure_hPa);
 
      console.log(`data = ${JSON.stringify(data, null, 2)}`);
      setTimeout(readSensorData, 2000);
    })
    .catch((err) => {
      console.log(`BME280 read error: ${err}`);
      setTimeout(readSensorData, 2000);
    });
};

// Initialize the BME280 sensor
//
bme280.init()
  .then(() => {
    console.log('BME280 initialization succeeded');
    readSensorData();
  })
  .catch((err) => console.error(`BME280 initialization failed: ${err} `));

##Example Output

> sudo node example.js          
Found BME280 chip id 0x60 on bus i2c-1 address 0x77
BME280 initialization succeeded
data = {
  "temperature_C": 32.09,
  "humidity": 34.851083883116694,
  "pressure_hPa": 1010.918480644477,
  "temperature_F": 89.76200000000001,
  "pressure_inHg": 29.852410107059583
}

##Example Wiring

For I2C setup on a Raspberry Pi, take a look at my pi-weather-station project.

Keywords

BME280

FAQs

Package last updated on 16 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts