from machine import reset, Pin
from rede import Rede
from time import sleep_ms, time, ticks_ms
from json import load, dumps, loads
from ntptime import settime
from umqtt.robust import MQTTClient
topTelemetria = b'v1/devices/me/telemetry'
topRPCGeral = 'v1/devices/me/rpc/request/'
topRPCResp = 'v1/devices/me/rpc/response/'
with open('config.json', 'r') as arq:
cfg = load(arq)
def cbTimer(t):
global taNaHora
taNaHora = True
def debug(arg):
print(arg)
with open('config.json') as arq:
cfg = load(arq)
r = Rede(cfg['rede'], cfg['senha'],
cb=debug)
if r.conectado:
settime()
cliente = MQTTClient(cfg["clientId"],
cfg["broker"],
user=["userbroker"],
password='')
# cliente.set_callback(procRPC)
cliente.connect()
# cliente.subscribe(b'v1/devices/me/rpc/request/+')
else:
print ('Deu ruim...Reiniciando')
sleep_ms(2000)
reset()
taNaHora = False
timm = Timer(0)
timm.init(mode = Timer.PERIODIC,
period = 500,
callback = cbTimer)
# Cria e inicializa a simulação
processo = Volume()
# valor correto de timestamp -> 'ts':(time()+946684800)*1000
while True:
#cliente.check_msg()
processo.update()
# atualização da telemetria
if taNaHora:
dados['ts'] = (time()+946684800)*1000
dados['values']['vazaomedida'] = processo.getMedida()
dados['values']['volume'] = processo.getVolume()
payload = dumps(dados).encode()
cliente.publish(topico, payload)
taNaHora = False
Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini