Smart hem del 2: kör relä genom molnet. (3 / 4 steg)
Steg 3: Den svåraste delen... koden
Försök att analysera det och förstå vad varje rad gör, det är hur du kan lära dig bäst.
#include / / include IoTkit.h för att använda Intel IoT Kit
#include / / måste vara att använda IoTkit
#include
#include
skapa ett objekt av klassen IoTkit
IoTkit iotkit;
CONST int relayPin = 2;
void setup() {
Serial.BEGIN(115200);
samtalet börjar i IoTkit-objektet innan du anropar andra metoder
iotkit.BEGIN();
Delay(10500);
pinMode (relayPin, produktionen);
}
void loop() {
iotkit.Receive(callback);
Delay(5000);
}
Annullera motringning (char * json) {
Serial.println(JSON);
aJsonObject * tolkas = aJson.parse(json);
om (& parsade == NULL) {
ogiltiga eller tomma JSON
Serial.println ("mottagna ogiltiga JSON"); för felsökning
hemkomst.
analysera JSON
}
aJsonObject-komponent = aJson.getObjectItem (analyserad, "komponent");
aJsonObject-kommandot = aJson.getObjectItem (analyserad, "kommando");
aJsonObject * argv = aJson.getObjectItem (analyserad, "argv");
aJsonObject * argvArray = argv -> barn;
aJsonObject * namn = argvArray -> barn; Namn: på
aJsonObject-värde = namn -> nästa; värde: 1/0
om ((komponent! = NULL)) {
om (strcmp (komponent -> valuestring, "power") == 0) {
om ((kommandot! = NULL)) {
om (strcmp (command -> valuestring, "LED.v1.0") == 0 & & strcmp (värde -> valuestring, "0") == 0) {
Serial.println ("Light Off!");
digitalWrite (relayPin, falsk);
}
om (strcmp (command -> valuestring, "LED.v1.0") == 0 & & strcmp (värde -> valuestring, "1") == 0) {
Serial.println ("ljus på!");
digitalWrite (relayPin, true);
}
}
}
}
}