""" Erstes Micropython Projekt
ein einfacher Wettersensor"""
#Import
import dht #Modul für den Temperatur und Luftfeuchtesensor
from machine import Pin #Modul damit wir den Digitalplan ansprechen können
import time #Modul für sleep Funktion
import network #Modul für WLAN bzw. Internetzugriff
from umqtt.robust import MQTTClient #Modul für MQTT - Protokoll
import ujson #Modul zum Gnerieren eines JOSN - Strings
#Setup
d = dht.DHT22(Pin(15)) #Objekt d für unseren Temp. Sensor
#Wifi-Connection
print("Connecting to Wifi...")
sta_if=network.WLAN(network.STA_IF) #WLAN Object
sta_if.active(True) #activate WLAN
sta_if.connect('Wokwi-GUEST','') #ssid und PW
#wait until WLAN is connected
while not sta_if.isconnected():
print(".",end="")
time.sleep(0.1)
print("Wifi connected")
#Check ob Wifi noch vorhanden
def check_wifi():
while not sta_if.isconnected():
print(".")
sta_if.connect()
#MQTT Setup
SERVER="industrial.api.ubidots.com"
port=1883
Client_name='Weatherstation1'
topic=b"/v1.6/devices/Weather"
ubidots_token = 'BBFF-3xLu8BNbFZMUTDgeFyisKjlHyKIm7p'
#Client Object
Client = MQTTClient(Client_name, SERVER, port, user=ubidots_token, password=ubidots_token)
#publish location
lat = 47.8242
lng = 13.0470
msg = b'{"location": {"lat":%s, "lng":%s}}' % (lat, lng)
Client.connect()
Client.publish(topic, msg)
Client.disconnect()
time.sleep(3)
#Loop
while True:
try:
d.measure()
t=d.temperature()
h=d.humidity()
print("Luftfeuchte:",h,"Temperatur:",t)
msg = ujson.dumps({
"Luftfeuchte":h,
"Temperatur":t})
print (msg)
Client.connect()
Client.publish(topic, msg)
Client.disconnect()
time.sleep(3)
except:
print("Connection lost")
time.sleep(3)