Kontrollera din julbelysning med textmeddelanden (9 / 12 steg)
Steg 9: Låt oss sätta i skissen
- Jag antar att du fick din Arduino ansluten till wifi.
- Du har redan den nya fliken för TembooAccount.h, höger?
- I huvudsak skiss fliken kopiera koden nedan. Det är kommenterad och bör vara easy(ish) att förstå. Maila mig för förtydliganden och frågor.
- Sätta din Auth Token- och SID-konto-ID nedan, där dessa platshållare är:
- PUT_AUTH_TOKEN_HERE
- PUT_ACCOUNT_SID_HERE
#include < Bridge.h >
#include < Temboo.h >
#include "TembooAccount.h" / / innehåller Temboo kontoinformation, som beskrivs nedan
int numRuns = 1; Utförande räkna, så detta inte köra för evigt
int maxRuns = 4320; Maximalt antal gånger koreografiska ska köras - 4320 är varje 10 minuter, för en månad.
int ledPin = 13. LED för debug
int buzzerPin = 2; Summers ansluten till stift 2
int lightsPin = 7. PIN-koden där din Xmas ljus är anslutna till.
int timeToWait = 600000; Fördröjning mellan samtal
String bodyMsgLast = "ingen"; Denna variabel har sista SMS: et läsa.
void setup() {
DEBUG-läge - kommentar ut detta segment för produktion
maxRuns = 10; Felsöka maxruns
timeToWait = 10000; debug tid att vänta
AVSLUTA DEBUG-LÄGE
Ställ in utgångar
pinMode (ledPin, produktionen);
pinMode (lightsPin, produktionen);
pinMode (buzzerPin, produktionen);
Vrid lights off på stöveln upp
digitalWrite (lightsPin, hög);
Delay(5000); simulerar en knapptryckning i 5 sekunder
digitalWrite (lightsPin, låg);
Delay(1000);
Konsolen setup (bör vara följetong för icke Yun arduinos)
Bridge.BEGIN();
Console.BEGIN();
tag (!. Konsolen); Väntar på konsolen ansluta innan du börjar. Inaktiverad som standard.
}
void loop() {
om (numRuns < = maxRuns) {//Run endast om inte har gått max beloppet av körningar
Console.println ("Kör GetLastMessageThatContains - kör #" + String(numRuns++)); skriver ut kör nummer
TembooChoreo GetLastMessageThatContainsChoreo;
Anropa Temboo klienten
GetLastMessageThatContainsChoreo.begin();
Ange Temboo kontoautentiseringsuppgifter
GetLastMessageThatContainsChoreo.setAccountName(TEMBOO_ACCOUNT);
GetLastMessageThatContainsChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetLastMessageThatContainsChoreo.setAppKey(TEMBOO_APP_KEY);
Ställa in koreografiska ingångar
GetLastMessageThatContainsChoreo.addInput ("AuthToken", "PUT_AUTH_TOKEN_HERE"); Twilio autentiseringstoken
GetLastMessageThatContainsChoreo.addInput ("Filtrera", "yg"); Filter för inkommande meddelanden håller detta ord
GetLastMessageThatContainsChoreo.addInput ("AccountSID", "PUT_ACCOUNT_SID_HERE"); Twilio konto-ID
GetLastMessageThatContainsChoreo.addInput ("ResponseMode", "enkla"); Svar-läge
Identifiera den koreografiska att köra
GetLastMessageThatContainsChoreo.setChoreo("/Library/Twilio/SMSMessages/GetLastMessageThatContains");
Kör koreografiska; När resultaten är tillgängliga, skriva ut dem till konsol
GetLastMessageThatContainsChoreo.run();
Sträng bodyMsg; Detta innehåller hela meddelandet
samtidigt (GetLastMessageThatContainsChoreo.available()) {
char c = GetLastMessageThatContainsChoreo.read();
Console.Print(c);
c är ett tecken i tiden från hela meddelandet. Det skrivs ut till konsolen.
bodyMsg += c; Tecknen matas till strängen bodyMsg
}
om (bodyMsg! = bodyMsgLast) {//Only körs om detta meddelande är annorlunda än den lagras.
om (bodyMsg.substring (17, 19) == "på") {//This fungerar endast om 17 till 19 bokstäver är "på" ".
Detta fungerar om du är seinding meddelandet "tänder på"
Tecken innan lamporna på annan info från Twilio
Vänder lampor på
digitalWrite (ledPin, hög); vänder på debug LED
digitalWrite (lightsPin, hög);
Delay(800);
digitalWrite (lightsPin, låg); Simulerade tryck på knapp för mindre än en sekund
Console.println ("lampor är på");
tonen (buzzerPin, 2000, 3000); PIP i 3 sekunder
} else om (bodyMsg.substring (17, 20) == "off") {//reads "off" från ett meddelande som säger "Lights off"
digitalWrite (ledPin, låg); inaktiverar debug LED
tonen (buzzerPin, 4200, 1000); Piper
digitalWrite (lightsPin, hög);
Delay(5000); simulerar en 5 andra knapptryckning stänga ljuset av
digitalWrite (lightsPin, låg);
Delay(1000);
Console.println ("lamporna är släckta");
}
bodyMsgLast = bodyMsg; Kopierar detta meddelande till variabeln sista meddelande
} annat {
Console.println ("identisk med sista"); om identiska, händer ingenting.
}
Console.println();
Console.println("Waiting...");
Delay(timeToWait); vänta en period mellan GetLastMessageThatContains samtal
} annat {
Console.println ("gjort. Starta om mig för en annan run");
abort();
}
}