Menu

MQTT

Claus Kuehnel

Übertragung von Wetterdaten mit MQTT

Auf der Basis von NodeMCU Devices (D1 mini & DHT11 Shield) habe ich ein Netzwerk verteilter Sensoren zur Erfassung von Temperatur und relativer Luftfeuchtigkeit aufgebaut.

Zusätzlich habe ich einen ASH2200 Wettersensor für Aussenmessungen in das Netzwerk integriert. Der USB-Wetterdaten-Empfänger USB-WDE1 erhält seine Daten per Funk von dem ASH2200. Der ASH2200 kommuniziertüber 866 MHz mit dem USB-WDE1-2, der über USB mit einem Raspberry Pi 2 Modell B mit Raspbian Jessie kommuniziert.

Die Basis-Anwendung (ohne Vernetzung) mit einem Raspberry Pi 1 unter Raspbian Wheezy ist in meinem Buch "Raspberry Pi: Erfassung von Umweltdaten" (Print & eBook) beschrieben.

Beide IoT Nodes (NodeMCU Devices & Raspberry Pi) senden (publish) ihre Daten über MQTT zu einem CloudMQTT Broker und können von dort bezogen (subscribe) werden.

Auf dem Raspberry Pi wurde Mosquitto, ein Open Source MQTT Broker incl. Clients, installiert.

Auf dem Raspberry Pi laufen zusätzlich zwei Subscriber Clients. Der erste zeigt alle Temperatur- und Feuchtigkeitsmitteilungen aus dem Netzwerk (Monitoring), während der zweite Client ausschliesslich auf die LWT (Last Will and Testament) Mitteilungen abonniert ist und auf diese Weise die Konnektivität der IoT Nodes überwacht.

Da die LWT Mitteilungen hoffentlich sehr selten auftreten, habe ich diesen einen Timestamp zugeordnet. Natürlich kann dies auch beim normalen Monitoring vorgesehen werden.

Folgende Files sind im Repository (Folder Shell Scripts) zu finden:

  • Abfrage des Wetterdaten-Empfänger USB-WDE1 - usb-wde1-2_mqtt.sh
  • Monitoring der Temperatur- und Feuchtigkeitsmitteilungen aller Knoten (Topics DHT11/+/#) - DHT11_mon.sh
  • Monitoring der LWT-Mitteilungen aller Knoten (Topics DHT11/+/lwt) - DHT11_lwtmon.sh

Related

Wiki: Home