-
Notifications
You must be signed in to change notification settings - Fork 0
/
climate_reporter.js
58 lines (46 loc) · 1.39 KB
/
climate_reporter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
var tessel = require('tessel');
var mintpeaks = require('./lib/mintpeaks'); // The mintpeaks server
var climate = require('./lib/climate'); // The climate module
var blink_led = require('./lib/blink_led'); // Simple library to blink the LED light
// LED light that we'll blink when booting.
var bootup_led = tessel.led[2].on();
// LED light that we'll blink upon each measurement transmission.
var data_led = tessel.led[3].off();
// Remote server.
var HOST = 'mintpeaks.com';
var PORT = 10231;
var INTERVAL = 1500;
console.log('Climate reporter starting up ...');
var read_and_report_data = function() {
// Read data.
climate.read_measurements(function(err, data) {
if (err) {
return console.log('Error reading temperature', err);
}
mintpeaks.write(data, function(err) {
blink_led(data_led);
});
// Loop.
setTimeout(read_and_report_data, INTERVAL);
});
};
// Boot up.
var boot = function() {
blink_led(bootup_led);
// Connect to climate module.
if (!climate.init(tessel.ports.A)) {
console.log('Waiting for the climate module...');
return setTimeout(boot, 1000);
}
// Connect to mintpeaks.
if (!mintpeaks.connect({
host: HOST,
port: PORT
})) {
console.log('Waiting for mintpeaks...');
return setTimeout(boot, 1000);
}
console.log('We have booted, starting climate reporting...');
read_and_report_data();
};
setImmediate(boot);