Tag 21: Hausautomation

In dem Versuch des heutigen Tages werden wir die Eigenschaften und Möglichkeiten von MQTT genauer beleuchten, in dem wir ein praktisches Szenario kreieren. In dem Beispiel gibt es ein Gebäude mit zwei Räumen mit jeweils einem Lichtschalter, einem Licht und einem Alarmsensor. Die Lichtschalter schalten das Licht des jeweiligen Raums an oder aus. Die Alarmsensoren aktivieren einen gebäudeweiten Alarm. Normalerweise würden hier sieben verschiedene Geräte zum Einsatz kommen, die alle über einen MQTT-Broker miteinander verbunden sind. Da Sie aber wahrscheinlich nur einen NanoESP haben, simuliert dieser alle Geräte auf einmal. Deswegen sieht der Aufbau des heutigen Tages etwas kompliziert aus. Als zweites Licht wird übriges heute die LED D3 genutzt. Deswegen wird diese heute nicht anzeigen, ob Sie mit dem WLAN-Verbunden sind. Als Alarmsensoren werden die Tiltsensoren an den Verlängerungskabeln genutzt. Man könnte sie beispielsweise an Türen oder Fensterrahmen befestigen, sodass sie einen Alarm triggern wenn sich der Eingang öffnet. Hinter dem heutigen Türchen befindet sich auch der zweite Sensor. ...

21.12.2016 · 5 Minuten · Fabian Kainka

Tag 13: Alarmanlage mit Push Nachrichten

Bei dem Projekt des heutigen Tages handelt es sich um eine einfache, stille Alarmanlage mit Passwort-Eingabe zum Resetten des Alarms. Damit man von dem stillen Alarm überhaupt etwas mitbekommt, sendet das Board eine Push-Nachricht zum Smartphone. Der sich hinter dem heutigen Türchen befindenden Tiltsensor setzen wir hier als Bewegungssensor ein. Er kann über Erschütterungen informieren und somit Bescheid geben, wenn jemand das NanoESP-Board kippt. Aufbau mit Tiltsensor Das Programm: A16_P13_Blynk9_PushAlarm.ino /* Blnky9: PushAlarm Change ssid, password and token */ char ssid[] = "YourSSID"; char password[] = "YourPassword"; char token[] = "YourToken"; String passwordAlarm = "password"; String alarmMsg = "Alarm! Someone touched the NanoESP!"; #define BLYNK_DEBUG #define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include <ESP8266_SoftSer.h> #include <BlynkSimpleShieldEsp8266_SoftSer.h> #include <SimpleTimer.h> // Set ESP8266 Serial object #include <SoftwareSerial.h> SoftwareSerial EspSerial(11, 12); // RX, TX ESP8266 wifi(EspSerial); SimpleTimer timer; WidgetTerminal terminal(V1); boolean alarm = false; void setup() { // Set console baud rate Serial.begin(19200); EspSerial.begin(19200); Blynk.begin(token, wifi, ssid, password); //push msg Blynk.notify("Alarm active"); pinMode(2, INPUT_PULLUP); //timer for blinking led on alarm timer.setInterval(1000L, blinkAlarm); } void loop() { Blynk.run(); if (alarm) timer.run(); else digitalWrite(13, LOW); //blink if alarm active if (digitalRead(2)) { //read tilt sensor if (!alarm) { alarm = true; Blynk.notify(alarmMsg); //push msg on alarm terminal.println(F("Alarm! Type in Password:")); terminal.flush(); } } } BLYNK_CONNECTED() { Blynk.syncAll(); terminal.println(F("Blynk v" BLYNK_VERSION ": Device started")); terminal.println("-------------"); terminal.flush(); } BLYNK_WRITE(V1) //Terminal { //type in password on alarm if (alarm) { String passInput = param.asStr(); if (passwordAlarm == passInput) { alarm = false; terminal.println(F("Alarm deaktivated")); terminal.flush(); } else { terminal.println(F("Wrong password!")); terminal.flush(); } } } //timer function for blinking led on alarm void blinkAlarm() { digitalWrite(13, !digitalRead(13)); } (Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.) ...

13.12.2016 · 2 Minuten · Fabian Kainka