====== 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. {{:configuration:configuration:IoT_Unit.jpg|}} ---- 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) / [[https://github.com/micropython/micropython-lib/blob/master/micropython/umqtt.simple/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) / [[https://files.netmodule.com/public_download?shareId=fb09d0c790bde48523883cde6cdea7bc|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) / [[https://files.netmodule.com/public_download?shareId=cb7a9d8020456d60e48c4367940b3be1|Download]] passwort: wifi Wenn für den Pico eine feste IP Adresse hinterlegt werden soll, kann man dieses direkt hinterlegen in .py Datei. {{:configuration:configuration:wifi_pico.png|}} ---- 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) / [[https://files.netmodule.com/public_download?shareId=cede0a20d84b693fbd75c9bea7cd552c|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) / [[https://files.netmodule.com/public_download?shareId=d8d994685ae51bacd0378075cd096251|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) / [[https://files.netmodule.com/public_download?shareId=0c8a9ab26d285c7f346950e8a36aacb1|Download]] passwort: main Wenn alle 6 MicroPython Programme mit Hilfe der Thonny Python IDE auf den Pico W hinterlegt wurden. [[https://thonny.org/|thonny IDE External Link]] Was von dem IoT Gerät verschickt wird an den MQTT Server alle 15 Minuten: 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 ----