IoT Geräte die Daten an ein MQTT Server verschicken

Ein Pico W mit einen DHT22(AM2302) H&T Sensor, der seine Daten über WLAN an einen MQTT-Server verschickt.


Der Pico W wird als Außensensor genutzt und wird über zwei Akkus mit Strom versorgt. Der Akku wird über eine Schottky-Diode zwischen den Pin’s 39(VSYS) und den Pin 28(GND) angeschlossen.

Der DHT22 Sensor wird über den GP2(pin4), 3V3(pin36) und GND(pin38) angeschlossen

Über den GP19(pin25) und GND(pin33) kann die Endlosschleife gestoppt werden von der main.py.

Das Gesamtprogramm wird in Funktionsgruppe auf den Pico hinterlegt

Das MicroPython Programme „umqtt_simple.py“ ist ein MQTT Client mit dem man Daten an den MQTT Server schicken kann(publish).

Unter dem Link können Sie sich die MicroPython Datei für den MQTT Server herunterladen.

* MicroPython MQTT Server (umqtt_simple.py) / Download

Mit dem Programm dht22.py wird Temperatur und Luftfeuchtigkeit aus dem Sensor ausgelesen.

Unter dem Link zum download

* MicroPython DHT22 Sensor (dht22.py) / Download

passwort: dht22

Das Programm wificonnection.py wird genutzt für die Verbindung zum WLAN AP.

Unter dem Link zum download

* MicroPython WIFI Verbindung (wificonnection.py) / Download

passwort: wifi

Wenn für den Pico eine feste IP Adresse hinterlegt werden soll, kann man dieses direkt hinterlegen in .py Datei.


Unter dem MicroPython Programme config.py werden nur Information bereit gestellt die für die WLAN Einwahl und den MQTT Broker Wichtig sind.

Unter dem Link zum download

* MicroPython Config Datei (config.py) / Download

passwort: config

Das Programme dht22mqtt.py steuert dann das ganze

Hier wird die Temperatur und Luftfeuchtigkeit publish an den MQTT Server.

Unter dem Link zum download

* MicroPython Hauptdatei (dht22mqtt.py) / Download

passwort: mqtt

  • publish(“/temperature”, “{:.1f}”.format(temperature))
  • publish(“/humidity”, “{:.1f}”.format(humidity))

Wichtig ist hier das der Pico W nach dem Senden der Daten in ein sleep Modus geschickt wird, sonnst würde der Akku nicht lange halten für die Versorgung.

how often should be a publish to MQTT (in Seconds)

  • publishtime = 900 # 15 Minuten lightsleep

Das main.py Programme ist nur dafür zuständig das dht22mqtt.py ausgeführt wird und wenn der Pin GP19 mit GND Verbindung wird, wird die Schleife nicht auszuführen.

Unter dem Link zum download

* MicroPython main Datei (main.py) / Download

passwort: main

Wenn alle 6 MicroPython Programme mit Hilfe der Thonny Python IDE auf den Pico W hinterlegt wurden.

thonny IDE External Link

Was von dem IoT Gerät verschickt wird an den MQTT Server alle 15 Minuten:

USER
mosquitto_sub -h 192.168.142.10 -p 1883 -v -t pico/# -u admin -P admin01 pico/pico-28:cd:c1:09:11:48/temperature 13.2 pico/pico-28:cd:c1:09:11:48/humidity 87.6 pico/pico-28:cd:c1:09:11:48/luftfeuchtigkeit 10.05852 pico/pico-28:cd:c1:09:11:48/gesamterkeller 175.40446 pico/pico-28:cd:c1:09:11:33/temperature 23.6 pico/pico-28:cd:c1:09:11:33/humidity 52.0 pico/pico-28:cd:c1:09:11:33/luftfeuchtigkeit 11.05990 pico/pico-28:cd:c1:09:11:33$state sleeping pico/pico-28:cd:c1:09:11:48$state sleeping