26 lines
570 B
JavaScript
26 lines
570 B
JavaScript
'use strict';
|
|
|
|
const i2c = require('../');
|
|
|
|
const MCP9808_ADDR = 0x18;
|
|
const TEMP_REG = 0x05;
|
|
|
|
const toCelsius = rawData => {
|
|
let celsius = (rawData & 0x0fff) / 16;
|
|
if (rawData & 0x1000) {
|
|
celsius -= 256;
|
|
}
|
|
return celsius;
|
|
};
|
|
|
|
const wbuf = Buffer.from([TEMP_REG]);
|
|
const rbuf = Buffer.alloc(2);
|
|
|
|
i2c.openPromisified(1).
|
|
then(i2c1 => i2c1.i2cWrite(MCP9808_ADDR, wbuf.length, wbuf).
|
|
then(_ => i2c1.i2cRead(MCP9808_ADDR, rbuf.length, rbuf)).
|
|
then(data => console.log(toCelsius(data.buffer.readUInt16BE()))).
|
|
then(_ => i2c1.close())
|
|
).catch(console.log);
|
|
|