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-Schalter wird neben der Tür und dem Fenster platziert und der Magnet wird am Rand der Tür und des Fensters angebracht. Wenn die Tür oder das Fenster geschlossen sind, wird der Reed-Schalter durch die magnetische Kraft eingeschaltet und der entsprechende Pinwert auf dem R3-Board ändert sich. Blynk.cloud erhält diesen Wert, sodass Sie sehen können, ob die Türen und Fenster Ihres Hauses geschlossen sind, auch wenn Sie nicht zu Hause sind.

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

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

Es ist definitiv praktisch, ein ganzes 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 einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

BUY

Breadboard

BUY

ESP8266 Modul

BUY

Jumper-Kabel

BUY

Widerstand

BUY

Reedschalter

-

1. Die Schaltung aufbauen

Bemerkung

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

../_images/wiring_reed.jpg

2. Dashboard bearbeiten

  1. Erstellen Sie einen Datastream vom Typ Virtual Pin auf der Datastream-Seite, um den Wert des Reed-Schalters abzurufen. 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), ansonsten ist es weiß.

    ../_images/sp220609_163350.png
  3. Auf der Einstellungsseite des LED widget wählen Sie Datastream als Reed(V1) und speichern 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 Werte. Geben Sie außerdem die ssid und das password Ihres WLANs ein. Für detaillierte Anleitungen verweisen Sie bitte auf 1.4 Verbindung des R3-Boards mit Blynk herstellen.

  3. Nachdem Sie das richtige Board und den Port ausgewählt haben, klicken Sie auf die Schaltfläche Upoad.

  4. Öffnen Sie den Seriellen Monitor (Baudrate auf 115200 einstellen) und warten Sie, bis eine Meldung wie eine erfolgreiche Verbindung angezeigt wird.

    ../_images/2_ready.png

    Bemerkung

    Wenn die Meldung ESP antwortet nicht erscheint, wenn Sie sich verbinden, befolgen Sie bitte diese Schritte:

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

    • Setzen Sie das ESP8266-Modul zurück, indem Sie den RST-Pin 1 Sekunde lang auf GND setzen und dann entfernen.

    • Drücken Sie die Reset-Taste auf dem R3-Board.

    Manchmal müssen Sie den obigen Vorgang 3-5 Mal wiederholen. Bitte haben Sie Geduld.

  5. Jetzt 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, ansonsten grau.

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

Wie funktioniert das?

In diesem Beispiel sollten Sie sich auf die folgenden Zeilen konzentrieren. „Daten jede Sekunde an den Blynk Cloud’s 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(); // Initiiert BlynkTimer
}

Die Blynk-Bibliothek bietet einen eingebauten Timer; 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) wird verwendet, um den Datenpin-Wert für V1 zu schreiben.

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