Skip to content

Instantly share code, notes, and snippets.

@lucasrpb
Created February 2, 2020 22:36
Show Gist options
  • Save lucasrpb/6ecff2aef784b2b362ab02b8222c2d8f to your computer and use it in GitHub Desktop.
Save lucasrpb/6ecff2aef784b2b362ab02b8222c2d8f to your computer and use it in GitHub Desktop.
// Test file for using the Raspberry Pi and Johnny-Five
const five = require('johnny-five');
const raspi = require('raspi-io').RaspiIO;
// Make a new `Board()` instance and use raspi-io
const board = new five.Board({
io: new raspi()
});
var mosca = require('mosca');
var led = null;
//Run Board
board.on('ready', function() {
// LED Pin variable
led = new five.Led('P1-13');
console.log("led is ready");
// When this script is stopped, turn the LED off
// This is just for convenience
this.on('exit', function() {
led.stop().off();
});
});
var ascoltatore = {
//using ascoltatore
type: 'mongo',
url: 'mongodb://localhost:27017/mqtt',
pubsubCollection: 'ascoltatori',
mongo: {}
};
const params = process.argv;
const port = parseInt(params[2]);
var settings = {
port: port,
// backend: ascoltatore
};
var server = new mosca.Server(settings);
server.on('ready', function(){
console.log('Mosca server is up and running');
});
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
// fired when a message is received
server.on('published', function(packet, client) {
if(packet.topic == '1/command'){
var stringBuf = packet.payload.toString('utf-8');
var obj = JSON.parse(stringBuf);
console.log("published", obj);
if(led != null && obj.data != null && obj.data.status != null)
switch(obj.data.status) {
case 1:
led.on();
console.log("led is on");
break;
case 0:
led.stop().off();
console.log("led is off", port);
break;
case 2:
led.blink(500);
console.log("led is blinking!", port);
break;
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment