Flux kondensator dörrklocka med Intel Edison (4 / 5 steg)
Steg 4: Bygga nodeJS använder Intel XDK
Installera den senaste versionen av den Intel XDK av att klicka här!
På grund av upphovsrätten kommer jag inte att dela ljud effekter. Men det måste vara i WAV-format!
Källkoden är tillgänglig i mitt GitHub konto, Klicka här! Du kan ändra koden av egen risk!
var uttryckliga = require('express') < br > var bodyParser = require('body-parser')
var mraa = require('mraa');
var exec = require('child_process').exec;
var ring = "gst-lanseringen-1.0 filesrc läge = /home/root/ring.wav! wavparse! pulsesink';
var timeOn = "gst-lanseringen-1.0 filesrc läge = /home/root/time.wav! wavparse! pulsesink';
var led_0 = ny mraa. Gpio(2);
var led_1 = ny mraa. Gpio(3);
var led_2 = ny mraa. Gpio(4);
var led_3 = ny mraa. Gpio(5);
var led_4 = ny mraa. Gpio(6);
led_0.dir (mraa. DIR_OUT);
led_1.dir (mraa. DIR_OUT);
led_2.dir (mraa. DIR_OUT);
led_3.dir (mraa. DIR_OUT);
led_4.dir (mraa. DIR_OUT);
funktion clearAll() {
led_0.write(0);
led_1.write(0);
led_2.write(0);
led_3.write(0);
led_4.write(0);
}
var ledState = [0,0,0,0,0];
var ledStateBlink = sant;
var fluxTime = 0;
var playMusic = sant;
var waitFlux = false;
var ledde = 0;
var task_time = 50;
var toutFlux = function() {
om (playMusic) {
Flux();
setTimeout(toutFlux,task_time);
} annat {
clearAll();
}
}
funktion waitFluxTmr() {
playMusic = sant;
TASK_TIME = 50;
}
var app = express()
parse application/json
app.use(bodyParser.JSON())
app.post ('/', funktion (begäran, svar) {
Console.log(Request.Body); din JSON
Response.send(Request.Body); ECHO resultatet tillbaka
IF(Request.Body.Ring == 1) {
Console.log("Fluxing!");
TASK_TIME = 5;
exec (ring, funktion (fel, stdout, stderr) {
Console.log(stdout);
Console.log("stop!!!");
playMusic = false;
waitFluxTmr();
});
}
});
funktion flux() {
Switch(LED) {
fall 0:
led_0.write(ledState[LED]?1:0);
bryta;
fall 1:
led_1.write(ledState[LED]?1:0);
bryta;
fall 2:
led_2.write(ledState[LED]?1:0);
bryta;
fall 3:
led_3.write(ledState[LED]?1:0);
bryta;
fall 4:
led_4.write(ledState[LED]?1:0);
bryta;
}
om (ledde < = 4) {
ledState [ledde] =! ledState [ledde];
ledde ++;
}
annat {
LED = 0;
}
}
exec (timeOn, funktion (fel, stdout, stderr) {
Console.log(stdout);
toutFlux();
});
clearAll();
app.listen(3000);
För att testa, kan du använda följande kommando, i Linux:
curl -d ' {"ring": 1} "-H" Content-Type: application/json "http://192.168.2.15:3000
Du kan också testa på dörrklockan med hjälp av JSONSender Android App!