NaNoWriMo Promotes Manuscription

    mc-tempsensor

    2.0.2 • Public • Published

    NPM

    Coverage Status Build Status

    NOTE: Version 2.0.0 breaks compatibility with version 1.x

    A simple library for accessing a DS18B20 digital thermometer on a RaspberryPi

    Installation

    npm install mc-tempsensor
    

    Documentation

    https://ozsie.github.io/mc-tempSensor/mc-tempsensor/2.0.0/

    Settings

    The default settings when initializing are:

    {
      defaultPath: true,
      installKernelMod: false
    }
    

    When defaultPath is set to true, the expected input to init is just the sensor ID. If set to false, the full path is required.

    installKernelMod can be set to true to automatically install the required kernel modules, w1-gpio and w1-therm.

    Examples

    This example assumes you have installed the necessary kernel modules, w1-gpio and w1-therm.

    var tempSensor = require('mc-tempsensor');
    
    // 28-800000263717 is the ID of your DS18B20 thermometer which can be found in /sys/bus/w1/devices/
    tempsensor.init('28-800000263717');
    
    tempSensor.readAndParse(function(err, data) {
      if (err) {
        // Handle error
      } else {
        console.log('Temperature is ' + data[0].temperature.celcius + ' C');
      }
    })
    

    If you for some reason need to specify the exact location of the temperature file:

    var tempSensor = require('mc-tempsensor');
    
    // 28-800000263717 is the ID of your DS18B20 thermometer which can be found in /sys/bus/w1/devices/
    tempsensor.init('/sys/bus/w1/devices/28-800000263717/w1-slave', {defaultPath: false, installKernelMod: false});
    
    tempSensor.readAndParse(function(err, data) {
      if (err) {
        // Handle error
      } else {
        console.log('Temperature is ' + data[0].temperature.celcius + ' C');
      }
    })
    

    Multiple temperature sources can be used:

    var tempSensor = require('mc-tempsensor');
    
    // 28-800000263717 is the ID of your DS18B20 thermometer which can be found in /sys/bus/w1/devices/
    tempsensor.init(['28-800000263717', '28-800000555555']);
    
    tempSensor.readAndParse(function(err, data) {
      if (err) {
        // Handle error
      } else {
        for (var i in data) {
          console.log('Temperature for sensor ' + i + ' is ' + data[i].temperature.celcius + ' C');
        }
      }
    })
    

    A callback method can be used when initializing:

    var tempSensor = require('mc-tempsensor');
    
    // 28-800000263717 is the ID of your DS18B20 thermometer which can be found in /sys/bus/w1/devices/
    tempsensor.init(['28-800000263717', '28-800000555555'], undefined, function(err) {
      if (err) {
        console.log(err);
      }
    });
    
    

    When using init without sensor input, all sensors in default location will be used:

    var tempSensor = require('mc-tempsensor');
    
    tempsensor.init(undefined, undefined, function(err) {
      if (err) {
        console.log(err);
      }
    });
    
    

    Data format

    [{
      crc,
      available,
      temperature: {
        raw,
        celcius
      },
      time
    }]
    

    Install

    npm i mc-tempsensor

    DownloadsWeekly Downloads

    16

    Version

    2.0.2

    License

    ISC

    Last publish

    Collaborators

    • ozsie