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
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.)

blynk_tag1313

Die Blynk-Oberfläche des heutigen Projekts ist recht simpel gehalten. Es gibt ein Terminal über das wichtige Informationen geliefert werden. Gleichzeitig dient das Terminal zur Eingabe des Passworts. Das Passwort selbst stellen Sie im Programm ein. Wenn Sie nichts eingeben haben lautet das Password einfach „password“. Es gibt noch ein weiteres Element, nämlich das Push-Widget. Über dieses werden Push-Nachrichten direkt an das Handy gesendet. Push bedeutet, dass die Nachricht direkt als Meldung auf Ihrem Smartphone erscheint. In dem Widget können Sie auswählen zwischen Normal oder High Priority. Bei High Priority (Hohe Priorität) wird die Nachricht sofort angezeigt, es wird aber auch deutlich mehr Akku verbraucht. Wenn nun jemand Ihren NanoESP entwenden möchte, bekommen Sie direkt eine Meldung auf das Handy.

Jemand hat am Board gewackelt
Jemand hat am Board gewackelt