E-post med Intel Edison (inbrotts larm) (2 / 5 steg)
Steg 2: kod
Nu när du har allt setup, vi kan skriva någon kod. Låt oss hoppa in i vår sandlåda och mappen sedan våra projekt och komma igång!
>> cd mySandbox/intruderAlert
>> nano-$ -i intruderAlert.js
Cool bönor, nu skriver vi vår kod! När du är klar, tryck på CTRL + o för att spara och sedan styra + x för att avsluta Nano. i text redaktör på instructables är buggigt. Om du tittar på koden och se en < br >, ta bort den och ersätta den med en ny rad (dvs tryck Ange eller returnera).
Ställ in våra GPIO ingång för stift 5 på Arduino breakout styrelsen
var mraa = require('mraa');
var motionSensor = ny mraa. Gpio(5);
motionSensor.dir (mraa. DIR_IN);
Ställa in vår nod mailer
var nodemailer = require("nodemailer");
var smtpTransport = nodemailer.createTransport {
Service: "Gmail",
auth: {
användare: "exempel
passera: "lösenord"
}
});
Börja sensing!
periodicActivity();
Här är vår avkänning funktion:
funktion periodicActivity()
{
Läs vår sensor
var motionSensorTriggered = motionSensor.read();
Göra saker om sensor läses högt
IF(motionSensorTriggered) {
Skicka våra e-postmeddelande
smtpTransport.sendMail({
från: "John Doe < exempel
att: "John Doe < exempel
ämne: "Möjligt Intruder Alert"
text: "Hej! Något aktiverat din rörelsesensor!"
}, funktion (fel, svar) {//Send en rapport av meddelandet till konsolen
IF(Error) {
Console.log(Error);
} annat {
Console.log ("budskapet:" + response.message);
}
smtpTransport.close();
});
Vi vill inte ha 5 miljoner e-postmeddelanden, så vi vill vänta några sekunder
(i detta fall, 30 sekunder) innan du skickar en annan email. Timeout
anges i millisekunder. Så för 1 minut, skulle du använda 60000.
setTimeout (periodicActivity, 30000);
} annat {
Motion sensor var inte utlöst, så vi inte behöver vänta så länge.
1/10 sekund verkar lagom och låter våra Edison att göra andra
saker i bakgrunden.
setTimeout (periodicActivity, 100);
}
}