3. Daten an Blynk senden

In diesem Kapitel zeigen wir Ihnen, wie Sie Daten an Blynk senden können.

Wir erstellen hier ein Tür- und Fenstererkennungsgerät. Die Schaltung mit dem Reed-Kontakt wird neben der Tür und dem Fenster angebracht, und der Magnet wird am Rand der Tür bzw. des Fensters montiert. Wenn die Tür oder das Fenster geschlossen ist, wird der Reed-Kontakt durch die Magnetkraft eingeschaltet und der entsprechende Pin-Wert auf dem R4-Board ändert sich. Blynk.cloud wird diesen Wert empfangen, sodass Sie auch von unterwegs aus sehen können, ob die Türen und Fenster Ihres Hauses geschlossen sind.

Nun werden wir ein LED-Widget in Blynk verwenden, um anzuzeigen, ob Ihre Fenster und Türen geschlossen sind (d.h. ob der Reed-Kontakt ein- oder ausgeschaltet ist).

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist sicherlich praktisch, ein komplettes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 Minima

-

Breadboard

BUY

ESP8266 Modul

BUY

Jumper-Kabel

BUY

Widerstand

BUY

Reedschalter

-

1. Schaltung aufbauen

Bemerkung

Das ESP8266-Modul benötigt einen hohen Strom, um einen stabilen Betrieb zu gewährleisten. Stellen Sie daher sicher, dass die 9V-Batterie angeschlossen ist.

../_images/iot_3_bb.png

2. Dashboard bearbeiten

  1. Erstellen Sie einen Datastream vom Typ Virtual Pin auf der Datastream-Seite, um den Wert des Reed-Kontakts zu erhalten. Stellen Sie den DATENTYP auf Integer und MIN und MAX auf 0 und 1.

    ../_images/sp220609_162548.png
  2. Ziehen Sie ein LED widget auf die Wed Dashboard-Seite. Bei einem Wert von 1 leuchtet es (farbig), sonst ist es weiß.

    ../_images/sp220609_163350.png
  3. Wählen Sie auf der Einstellungsseite des LED widget als Datastream Reed(V1) aus und speichern Sie es.

    ../_images/sp220609_163502.png

3. Den Code ausführen

  1. Öffnen Sie die Datei 3.push_data_to_blynk.ino unter dem Pfad 3in1-kit\iot_project\3.push_data_to_blynk oder kopieren Sie diesen Code in die Arduino IDE.

  2. Ersetzen Sie die Template ID, Device Name und Auth Token durch Ihre eigenen Angaben. Sie müssen auch die ssid und das password Ihres verwendeten WLANs eingeben. Für detaillierte Anleitungen beachten Sie bitte 1.4 Verbindung des R4-Boards mit Blynk herstellen.

  3. Wählen Sie das korrekte Board und den Port aus und klicken Sie auf den Upoad-Button.

  4. Öffnen Sie den Seriellen Monitor (Baudrate auf 115200 einstellen) und warten Sie auf eine Meldung, z.B. eine erfolgreiche Verbindung.

    ../_images/2_ready.png

    Bemerkung

    Wenn die Meldung ESP is not responding erscheint, befolgen Sie bitte diese Schritte:

    • Stellen Sie sicher, dass die 9V-Batterie angeschlossen ist.

    • Setzen Sie das ESP8266-Modul zurück, indem Sie den Pin RST für 1 Sekunde mit GND verbinden, dann trennen Sie ihn.

    • Drücken Sie den Reset-Knopf auf dem R4-Board.

    Manchmal müssen Sie den oben genannten Vorgang 3-5 Mal wiederholen, bitte haben Sie Geduld.

  5. Nun zeigt Blynk den Status Ihrer Türen und Fenster an. Wenn Ihre Türen und Fenster geschlossen sind, wird das LED-Widget grün sein, sonst grau.

  6. Wenn Sie Blynk auf mobilen Geräten nutzen möchten, beachten Sie bitte Wie verwendet man Blynk auf einem Mobilgerät?.

Wie funktioniert das?

Für dieses Beispiel sollten Sie sich auf die folgenden Zeilen konzentrieren. „Daten jede Sekunde an den Blynk Cloud V1 Datastream senden“ wird durch diese Zeilen definiert.

BlynkTimer timer;

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}

void setup()
{
    timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
    timer.run(); // Initiates BlynkTimer
}

Die Blynk-Bibliothek stellt einen eingebauten Timer zur Verfügung, zuerst erstellen wir ein Timer-Objekt.

BlynkTimer timer;

Legen Sie das Timer-Intervall in setup() fest. Hier setzen wir es so, dass die Funktion myTimerEvent() alle 1000ms ausgeführt wird.

timer.setInterval(1000L, myTimerEvent);

Führen Sie BlynkTimer in loop() aus.

timer.run();

Bearbeiten Sie die benutzerdefinierte Funktion myTimerEvent(). Der Code Blynk.virtualWrite(V1, pinValue) dient dazu, den Datenpin-Wert für V1 zu schreiben.

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}