bme280-sensor
Version:
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.
42 lines (38 loc) • 1.36 kB
JavaScript
process.env.NODE_ENV = 'test';
const chai = require('chai');
const BME280 = require('../BME280.js');
const expect = chai.expect;
describe('bme280-sensor', () => {
it('it should communicate with the device', (done) => {
const bme280 = new BME280();
expect(bme280).to.be.an.instanceof(BME280);
bme280.init()
.then((chipId) => {
expect(chipId).to.be.equal(BME280.CHIP_ID_BME280());
done();
})
.catch((err) => {
done(err);
});
});
it('it should receive valid sensor data', (done) => {
const bme280 = new BME280();
expect(bme280).to.be.an.instanceof(BME280);
bme280.init()
.then((chipId) => {
expect(chipId).to.be.equal(BME280.CHIP_ID_BME280());
return bme280.readSensorData();
})
.then((data) => {
console.log(`BME280 sensor data: ${JSON.stringify(data)}`);
expect(data).to.have.all.keys('temperature_C', 'humidity', 'pressure_hPa');
expect(data.temperature_C).to.be.within(-40, 85); // per Bosch BME280 datasheet operating range
expect(data.humidity).to.be.within(0, 100); // per Bosch BME280 datasheet operating range
expect(data.pressure_hPa).to.be.within(300, 1100); // per Bosch BME280 datasheet operating range
done();
})
.catch((err) => {
done(err);
});
});
});