Kamera fälla ladda upp Twitter med Intel Edison (8 / 9 steg)
Steg 8: Slutligen att kombinera de tre program som har testats för att bli en kamera fälla som kan vara direkt uploded till sociala medier som twitter.
Slutligen Video
Skriva detta Program och Spara som Combine.js:
Ställ in våra GPIO ingång för stift 8
var Twitter = require('twitter');
var kund = nya Twitter ({
consumer_key: 'PZSlqMDYLx00qYi9RhW7yoI0r',
consumer_secret: 'NFM6ydkdJ5cM4SB8cNR0YU2hraROzZTUrMD6F8xSxM8xkYn5gb',
access_token_key: ' 3838434318-lOfl9zj8gaNxxYXupIrVm5eOhEA0Tjs0Z4oYVyJ ",
access_token_secret: "cqmYv4LRABph3LL2dO1ROJi9teN5HZqldq9GHWryVlx1e"
});
var mraa = require('mraa');
var motionSensor = ny mraa. Gpio(8);
var ledde = nya mraa. Gpio(13);
motionSensor.dir (mraa. DIR_IN);
LED.dir (mraa. DIR_OUT);
Console.log ("Start capture");
funktion run_cmd (cmd, args, callBack) {
var spawn = require('child_process').spawn;
var barn = spawn (cmd, args);
var resp = "";
Child.stdout.on ("data", funktion (buffert) {resp += buffer.toString()});
Child.stdout.on ("end", function() {motringning (resp)});
}
periodicActivity();
funktion periodicActivity()
{
Läs vår sensor
var motionSensorTriggered = motionSensor.read();
Göra saker om sensor läses högt
IF(motionSensorTriggered) {
var data = require('fs').readFileSync('/home/root/picture.jpg');
client.post ("media/ladda upp", {media: data}, {funktion (fel, media, svar)
om (! fel) {
Om det lyckas, returneras ett medieobjekt.
Console.log(Media);
Kan tweet det
var status = {
status: "Ny bild från #intelEdison #IOT",
media_ids: media.media_id_string / / passera media ID-sträng}
client.post (' status/update', status, funktion (fel, tweet, svar) {
om (! fel) {
Console.log(tweet);
}
});
}
});
fånga
run_cmd ("rm", ['-f', ' / home/root/picture.jpg'], function(text) {console.log (text)});
Console.log ("ta bort senaste capture");
run_cmd ("/ home/root/bin/ffmpeg/ffmpeg", ["-s", 800 x 600, "-f", "video4linux2", "-Jag ',"/ dev/video0","-vframes, '1', 'picture.jpg'], function(text) {console.log (text)});
Console.log ("capture gjort");
LED.write(1);
setTimeout (periodicActivity, 5000);
} annat {
LED.write(0);
setTimeout (periodicActivity, 100);
}
}