示例#1
0
function Climate (sampleSize, port, callback){

  var climate = climatelib.use(tessel.port[port]);

  climate.on('ready', function () {
    console.log('Connected to si7020');

    // Loop forever
    setImmediate(function loop () {
      climate.readTemperature('f', function (err, temp) {
        climate.readHumidity(function (err, humid) {
           //console.log('Degrees:', temp.toFixed(4) + 'F', 'Humidity:', humid.toFixed(4) + '%RH');
          var temp = {
            time: Date.now(),
            temperature: temp.toFixed(4),
            humidity: humid.toFixed(4)
          };

          callback(obj);
          setTimeout(loop, sampleSize);
        });
      });
    });
  });

  climate.on('error', function(err) {
    console.log('error connecting module', err);
  });
}
示例#2
0
var tessel = require('tessel');
var climatelib = require('climate-si7020');

var climate = climatelib.use(tessel.port['B']);


climate.on('ready', function () {
  console.log('Connected to si7020');

  // Loop forever
  setImmediate(function loop () {
    climate.readTemperature('c', function (err, temp) {
      climate.readHumidity(function (err, humid) {
        console.log('Degrees:', temp.toFixed(2) + ' C', 'Humidity:', humid.toFixed(4) + ' %RH');
        setTimeout(loop, 300);
      });
    });
  });
});

climate.on('error', function(err) {
  console.log('error connecting module', err);
});
示例#3
0
var tessel = require('tessel');
var climatelib = require('climate-si7020');

var config = require('../config');
var climate = climatelib.use(tessel.port[config.ports.climate]);

function init (options, done) {
  climate.on('ready', function () {

    console.log('CLIMATE: Ready');

    var _this = this;

    module.exports.readTemperature = function (cb) {
      climate.readTemperature.call(_this, config.climate.scale, cb);
    };
    module.exports.readHumidity = climate.readHumidity.bind(_this);

    return done ();
  });
  climate.on('error', options.onError);
}

module.exports.init = init;
示例#4
0
var net = require('net');
var tessel = require('tessel');
var climateLib = require('climate-si7020');
var argv = process.argv.slice(2);

var debug = argv.indexOf('debug') !== 1;
var port = defaultArg(argv, 'port', 5001, 'int');
var host = defaultArg(argv, 'host', '54.225.94.80');
var interval = defaultArg(argv, 'interval', 60 * 1000, 'int');
var fahrenheit = defaultArg(argv, 'f', 1, 'int') ? 'f' : 'c';

var climate = climateLib.use(tessel.port.A);

debug && console.log(argv);

climate.on('ready', function() {
  debug && console.log('connected to si7020');

  setImmediate(function loop() {

    climate.readTemperature(fahrenheit, function(err, temp) {
      if (err) {
        setTimeout(loop, interval);
        return;
      }
      climate.readHumidity(function(err, humid) {
        if (err) {
          setTimeout(loop, interval);
          return;
        }
        var options = {
示例#5
0
import tessel from "tessel";
import climatelib from "climate-si7020";

const port = "A";

const climate = climatelib.use(tessel.port[port]);

climate.on('ready', function () {
  console.log('Connected to climate module');

  // Loop forever
  setImmediate(function loop () {
    climate.readTemperature('f', function (err, temp) {
      climate.readHumidity(function (err, humid) {
      console.log('Degrees:', temp.toFixed(4) + 'F', 'Humidity:', humid.toFixed(4) + '%RH');
      setTimeout(loop, 300);
      });
    });
  });
});

climate.on('error', function(err) {
  console.log('error connecting module', err);
});
示例#6
0
文件: index.js 项目: matt1as/tessel2
var tessel = require('tessel');
var config = require('./config.json'); //with path

var climatelib = require('climate-si7020');
var climate = climatelib.use(tessel.port[config.sensor.port]);

var Keen = require('keen.io');
var keen = Keen.configure({
    projectId: config.keen.projectId,
    writeKey: config.keen.writeKey,
});

var previousTemp = 0;

climate.on('ready', function(){
  setInterval(function(){
    climate.readHumidity(function(err, humid){
      climate.readTemperature(config.sensor.unit, function(err, temp){
        if( Math.abs(previousTemp - temp ) > config.sensor.delta ) { // Only send to cloud if temp has changed more than delta.
          previousTemp = temp;
          sendToCloud(temp, humid);
        }
      });
    });
  }, config.sensor.interval);
});

climate.on('error', function(err) {
  console.log('error connecting module', err);
});
示例#7
0
var router = require('tiny-router');
var tessel = require('tessel');
var climateLib = require('climate-si7020');
var fs = require('fs');

var climate = climateLib.use(tessel.port['A']);

router.use('fs', fs);

router
    .get('/', function(req, res) {
        router.readFile('./webroot/index.html', function(err, data) {
            res.send(data.toString());
        });
    })
    .get('/climate', function(req, res) {
        router.readFile('./webroot/climate.html', function(err, data) {
            var html = data.toString();
            climate.readTemperature('f', function(err, temp) {
                climate.readHumidity(function(err, humid) {
                    html = html.replace('{temp}', temp.toFixed(2));
                    html = html.replace('{humidity}', humid.toFixed(2));
                    res.send(html);
                });
            });
        });
    });

climate.on('ready', function() {
    router.listen(8080);
    console.log("Listening on port 8080...");
示例#8
0
var tessel = require('tessel')
var climateLib = require('climate-si7020')

var climateSensor = climateLib.use(tessel.port['A'])

climateSensor.on('ready', function() {
  console.log('climate sensor engaged')
})

climateSensor.on('error', function(err) {
  console.log('err', err)
})