from dht import DHT22
from machine import Pin, Timer
from network import WLAN, STA_IF
from time import sleep_ms, gmtime, localtime, time
from umqtt.robust import MQTTClient
from json import dumps
from ntptime import settime
from rede import Rede
def debug(arg):
print (arg)
def atClock(t):
global precisaAtualizar
precisaAtualizar = True
d = DHT22(Pin(4))
tim = Timer(0)
tim.init(period=21_600_000, mode=Timer.PERIODIC, callback=atClock)
print ('\n\nConectando a rede\n\n')
r = Rede ('Wokwi-GUEST','', cb=debug, conecta=False)
r.conectar(tentativas=40, intervalo=1000)
if r.conectado:
try:
settime()
except:
print ('Problemas com comunicar com servidor NTP')
precisaAtualizar = True
topico = b'ifrsrgauto/info/1105404'
d.measure()
d.temperature()
d.humidity()
def do_connect( ):
rede = WLAN(STA_IF)
rede.active(True)
if not rede.isconnected():
rede.connect('Wokwi-GUEST', '')
while not rede.isconnected():
sleep_ms (500)
return rede
rede = do_connect( )
cliente = MQTTClient('eduardabc1105040423122004', 'broker.hivemq.com')
cliente.connect()
pacote={}
temperatura = d.temperature()
humidade = d.humidity()
while True:
temperatura = d.temperature()
humidade = d.humidity()
ts = localtime()
dt = f'{ts[0]:02d}-{ts[1]:02d}-{ts[2]:02d}'
hh = f'{ts[3]:02d}:{ts[4]:02d}:{ts[5]:02d}'
print(f'{dt}T{hh}')
if precisaAtualizar:
if not r.conectado:
r.conectar(tentativas=40, intervalo=1000)
if r.conectado:
try:
settime()
except:
print ('Problemas com comunicar com servidor NTP')
precisaAtualizar = False
pacote['temperatura'] = f'{temperatura}°C'
pacote ['humidade'] = f'{humidade}%'
pacote ['dataEHora'] = f'{dt}T{hh}'
conteudo = dumps(pacote)
cliente.publish(topico,conteudo)
sleep_ms(2000)Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini