s2chttp
Version:
HTTP Library for pushing data to the cloud using s2c.io plaform for the internet of things
73 lines (63 loc) • 3.05 kB
JavaScript
/*
S2C.io
Beaglebone Sample Client
version: 1.0.20
*/
var b2c = require('s2chttp');
var b = require('bonescript');
var gat = b2c.Create('an');
gat.API_KEY = 'YOUR API KEY HERE';
gat.localIP = getIPAddress();
b.getPlatform(InitDevice);
var D = [[0,''],[0,''],[0,''],[0,''],[0,''],[0,''],[0,'']]; // Array that hold the data. you can change it to any buffer you want
var an = new b2c.sensor('an','BB_ANALOG',166); // create a new sensor called 'an' of type 'BB_ANALOG' and id=166
an.AddChannel('analog0',14,'N');
an.AddChannel('analog2',9,'N');
an.AddChannel('analog1',9,'N');
an.AddChannel('analog3',9,'N');
an.AddChannel('analog5',9,'N');
an.AddChannel('analog6',9,'N');
an.AddChannel('analog4',9,'N');
gat.AddSensor(an);
setInterval(__main__,5000); // create a timer to read the ANALOG inputs
function __main__()
{
// Get Data from Analog Ports
b.analogRead('P9_39', function(x){if(x.err == undefined) {D[0][0]= b2c.RND(x.value,3); D[0][1]=''; } else { D[0][1]=x.err; }});
b.analogRead('P9_40', function(x){if(x.err == undefined) {D[1][0]= b2c.RND(x.value,3); D[1][1]=''; } else { D[1][1]=x.err; }});
b.analogRead('P9_37', function(x){if(x.err == undefined) {D[2][0]= b2c.RND(x.value,3); D[2][1]=''; } else { D[2][1]=x.err; }});
b.analogRead('P9_38', function(x){if(x.err == undefined) {D[3][0]= b2c.RND(x.value,3); D[3][1]=''; } else { D[3][1]=x.err; }});
b.analogRead('P9_33', function(x){if(x.err == undefined) {D[4][0]= b2c.RND(x.value,3); D[4][1]=''; } else { D[4][1]=x.err; }});
b.analogRead('P9_36', function(x){if(x.err == undefined) {D[5][0]= b2c.RND(x.value,3); D[5][1]=''; } else { D[5][1]=x.err; }});
b.analogRead('P9_35', function(x){if(x.err == undefined) {D[6][0]= b2c.RND(x.value,3); D[6][1]=''; } else { D[6][1]=x.err; }});
//console.log('D = '+D);
// update the channels
gat.SetChannel('an','analog0',D[0][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog1',D[1][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog2',D[2][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog3',D[3][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog4',D[4][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog5',D[5][0],b2c.RND((new Date()).valueOf()/1000,0),'');
gat.SetChannel('an','analog6',D[6][0],b2c.RND((new Date()).valueOf()/1000,0),'');
// push data to the cloud
gat.publish()
}
function getIPAddress()
{
var interfaces = require('os').networkInterfaces();
for (var devName in interfaces) {
var iface = interfaces[devName];
for (var i = 0; i < iface.length; i++) {
var alias = iface[i];
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal)
return alias.address;
}
}
return '1.1.1.1';
}
function InitDevice(x)
{
gat.bonescript = x.bonescript;
gat.macaddr = x.serialNumber;
console.log('your BB Details '+JSON.stringify(gat));
}