from machine import Pin, I2C
import sh1107
import time
import dht
import math
import network # für WLAN Object
from umqtt.robust import MQTTClient #für den MQTT Client
import ujson #zum generieren eines JSON Strings
import gc
import sys
import framebuf
import array
i2c = I2C(0, scl = Pin(22), sda= Pin(21))
oled_widht= 128
oled_height =128
display = sh1107.SH1107_I2C(oled_widht, oled_height, i2c, address=61, rotate=0)
#WIFI connection
display.text('Connecting', 0, 0,1)
display.show()
sta_if = network.WLAN(network.STA_IF) #WLAN Object
sta_if.active(True) #activate Wlan
sta_if.connect('Wokwi-GUEST','')
punkt='.'
while not sta_if.isconnected():
display.text(punkt, 0, 15)
display.show()
punkt=punkt + '.'
if len(punkt)>3:
punkt='.'
display.fill(0)
display.text('Connecting', 0, 0)
print(".", end = "")
time.sleep(0.1)
display.fill(0)
display.show()
display.text('Wifi Connected', 0, 0)
display.show()
print("WIFI connected")
"""
#MQTT Setup
SERVER = "industrial.api.ubidots.com"
port = 1883
client_name = "Display1"
topic = b"/v1.6/devices/Wetterstation/temperature"
token = "BBUS-4BrQmCUCJ42jwe0UOC9goTfYD3QDld"
#MQTT client Object
client = MQTTClient(client_name, SERVER, port, user=token, password=token)
#Deklaration Temperatur:
temp = -999
#callbackfunktion, liest die msg von server aus und übergibt die var
def sub_cb(topic, msg):
a=ujson.loads(msg)
global temp
temp= a["value"]
client.set_callback(sub_cb)
while True:
client.connect()
client.subscribe(topic)
client.check_msg()
client.disconnect()
print(temp)
time.sleep(2)
display_temp=str(temp)
#am display
display.fill(0)
display.text('aktuelle Temp:',10 ,15)
display.text(display_temp,10 ,30)
display.show()
"""