Tag 23: MQTT Climate

Hinter dem heutigen Türchen befindet sich ein Batterie-Clip für einen 9-V-Block, mit dem Sie das gesamte System mobil machen können. Eine Alternative zu einer Batterie ist eine Power-Bank (ein Akku-Pack, normalerweise für Handys). Wie Sie eine  9-V-Batterie richtig anschließen, können Sie dem heutigen Aufbaubild entnehmen.

So können Sie eine 9V-Batterie am heutigen Aufbau anschließen

So können Sie eine 9V-Batterie am heutigen Aufbau anschließen

Heute sollen erneut Klimadaten erfasst werden. Diesmal werden sie aber über den MQTT-Broker veröffentlicht, und sind deshalb auch weltweit abrufbar. Über ein Plugin könnten so die Daten abgerufen und in einer Datenbank gespeichert werden.

Laden Sie das Programm des heutigen Tages herunter und programmieren Sie damit Ihren NanoESP.  Nach kurzer Zeit ist das Board mit dem WLAN und dem Broker verbunden und beginnt, die Messdaten zu verschicken. Gehen Sie nun zu der http://www.hivemq.com/try-out/ Seite und verbinden Sich mit dem Broker. Subscriben Sie zu den Topics:

NanoESP/mqttId/climate/temp

NanoESP/mqttId/climate/light

NanoESP/mqttId/climate/hum

wobei Sie mqttId wie immer durch Ihre persönliche ID ersetzen. Sie sehen nun im Browser, wie die Daten in schneller Folge eintreffen. Als nächstes abonnieren Sie das Topic

NanoESP/mqttId/climate/status

Sie müssten die Nachricht “online” empfangen. Trennen Sie nun das Board vom Strom. Logischerweise empfangen Sie nun keine neuen Temperaturdaten mehr. Allerdings ändert sich der Status nach ca. 10 Sekunden von “online“ zu „offline“. Wie ist das möglich wenn das Board gar keine Nachrichten mehr senden kann?

Der Trick liegt in der Last Will-Message, die beim Verbinden mit dem Broker angegeben wurde. Diese Nachricht wird beim plötzlichen Trennen der Verbindung versendet. Es dauert allerdings eine Weile bis der Broker den Abbruch der Verbindung bemerkt. Wie lange, wird ebenfalls beim Verbindungsaufbau mit der Keep-Alive Zeit festgelegt. Wenn innerhalb in der dort angegeben Zeit keine Nachricht vom Board an den Broker gesendet wird, geht der Broker davon aus, dass die Verbindung getrennt wurde. Standardmäßig ist in der Library diese Zeit auf 120 Sekunden festgelegt. Für den heutigen Versuch liegt sie aber bei 10 Sekunden. Damit die Verbindung nicht gekappt wird, nur weil der NanoESP gerade nichts zu melden hat, gibt es den stayConnected-Befehl. Hier wird, wenn nicht anders angegeben, nach der Hälfte der Keep-Alive Zeit eine Ping an den Broker gesendet, als Lebenszeichen, dass die Verbindung noch aktiv ist.

27 Kommentare

  1. Uli

    Hallo Leute,
    ich glaube, hier klinke auch ich mich jetzt aus. Das Experiment von morgen ist sicher sehr lieb gemeint, aber erzeugt bei mir nicht so den richtigen Thrill.
    Ich habe mir zwischenzeitlich ein GSM-Modem organisiert und versuche meinen alten Arduino-nano daran anzuschließen und Blynk sprechen zu lassen. Das ist spannender…

    Antworten
  2. Philipp

    Mit welchem Broker soll ich mich Verbinden?
    Wenn ich es mit dem standartmäßig eingetragenen probiere funktioniert nichts ?

    Antworten
    1. Philipp

      Leider funktioniert es auch nicht mit dem broker.hivemq.com so wie anscheinend bei mehreren das einfach garnichts angezeigt wird im Broker auch wenn die genannten Topics Subscribed wurden. Schade.

      Antworten
    2. Bernd

      wie üblich: broker.fkainka.de. Hast wohl ein paar tage übersprungen, oder?

      Antworten
  3. Michel2016

    Nochmal ne Anmerkung, das Board funkt anscheinend ständig. Es blinkt jedenfalls die gelbe LED, aber wo gehen die Daten hin?

    Antworten
    1. Hinz & Kunz

      Der NanoESP schickt tatsächlich mehrmals pro Sekunde die Klimadaten an den Broker. Im seriellen Monitor sieht man nichts davon. Wenn man die Daten vom Broker abonniert, rauschen sie nur so durch. Wozu das gut sein soll?
      Der diesjährigen Kalender war in der Tat eine Enttäuschung :-(
      Der Autor kommuniziert in diesen Jahr wohl, wenn überhaupt, nur noch über soziale Medien und nicht mehr über seine eigene Webseite
      Trotzdem ein frohes Weihnachtsfest allerseits.

      Antworten
      1. Michel2016

        Ah, ja okay, jetzt sehe ich die Daten im Broker, aber wo ist das erwähnte plugin zum Speichern der Daten?

        Antworten
  4. Michel2016

    bei mir tut sich auch nichts, wo soll denn was angezeigt werden?

    Antworten
  5. Burkhard

    … sehr schade, und das zwei Mal. Wo ist hier die Beschwerdestelle?

    Antworten
    1. Burkhard

      Der Fehler beim Kompilieren trat unter XP auf, jetzt unter Windows 10 funktioniert es.

      Antworten
  6. Burkhard

    HIch habe wie am 18. Tag Fehler beim Kompilieren. Gemeldet wird“ … collect2.exe:error: Id returned 5 exit satus exit status 1 …?“ So ein Fehler ist bei mir am 18. Tag schon gewesen bzw. das Problem ist noch ungelöst.

    Antworten
    1. fk (Beitrag Autor)

      Solche Fehler lassen sich nach wie vor besser im Forum diskutieren. Als Lösungsversuch würde mir spontan einfallen die Arduino Version 1.6.10 von der Seite https://www.arduino.cc/en/Main/OldSoftwareReleases#previous zu verwenden

      Antworten
      1. Burkhard

        Der Fehler beim Kompilieren trat unter XP auf, jetzt unter Windows 10 funktioniert es.

        Antworten
  7. Mormox82

    zeigt bei mir nix an

    Antworten
    1. Tom Janssen

      bei mir auch nicht…
      Alles mehrfach gecheckt. Ser. Monitor zeigt WiFi an und quittiert die Verbindung zum Broker, aber unter den eingerichteten Topics bei HiveMQ erscheint nichts..

      Antworten
      1. Michel2016

        genau so bei mir, schade das der Autor hier anscheinend nicht mitliest und mal Hilfestellung geben kann.

        Antworten
      2. fk (Beitrag Autor)

        Hast du dich auch mit dem Broker Broker.fkainka.de verbunden? Verwendest du diesen Broker auch im NanoESP Programm? Empfängst du die Nachrichten von anderen Teilnehmern indem du Wildcards verwendest? (Z.b. topic NanoESP/+/#)

        Antworten
        1. Burkhard

          Das Problem ist die nicht funktionierende Kompilierung beim Klimaexperiment am 18. und am 23. Tag.
          Mein PC läuft mit XP. Die anderen Kompilierungen funktionierten.

          Antworten
          1. Burkhard

            Der Fehler beim Kompilieren trat unter XP auf, jetzt unter Windows 10 funktioniert es.

  8. Enno Klatt

    Raspberry Pi Anwender
    Die aktuelle Arduino-IDE kommt mit der library nicht klar:
    Grund: Der Unterstrich ist als Ordner- bzw. Dateiname verboten.
    Abhilfe:
    library herunterladen und entpacken, anschließend Ordner und Dateien umbenennen!
    Schade, das der RPI-Anwender im Stich gelassen werden!

    Antworten
    1. Burkhard

      Hallo Enno, ist das bei mir auch so, wenn als Fehler beim Kompilieren gemeldet wird“ … collect2.exe:error: Id returned 5 exit satus exit status 1 …?“ Welche libary muß ich wo her nehmen und wie umbenennen? Der Fehler ist bei mir am 18. Tag schon gewesen bzw. das Problem ist noch ungelöst.

      Antworten
      1. burkhard

        Bisher hatte ich mit meinem liebgewonnenen Windows XP hantiert. Wenn ich jetzt unter Windows 10 kompilieren lasse, funktioniert das. Ich kann als die Klimatage auch probieren. o.k.

        Antworten
  9. dein Vater

    kann mir jemand helfen
    habe folgenden Fehler:

    collect2.exe: error: ld returned 5 exit status

    exit status 1
    Fehler beim Kompilieren für das Board Arduino Nano.

    weis jemand was los ist?

    danke im voraus

    Antworten
    1. hallo

      habe das selbe problem

      weis die lösung einer von euch

      Antworten
  10. Leon

    Ich denke mal wie im Heft ist es richtig…

    Antworten
  11. Bernd

    soll da in column 6 nun ein widerstand (im Heft) oder ein Kabel (Bild oben) den graben überbrücken?
    Auch der Helligkeitssensor ist im Bild oben überhaupt nicht angeschlossen. Ich glaub ich schalte das Heft.

    Antworten
    1. Bernd

      sieht aus als obs klappt. Daten kommen und nach USB rausziehen kommt tatsächlich die Nachricht „offline“ nach einiger Zeit. Man bleibt connected (grün).
      Batterie anschliessen und Werte kommen wieder.

      Aber welchen Plugg-in braucht man um die Daten zu „call up“ und zu sparen? (das kriegen wir später?)

      Antworten

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.