from machine import reset, Pin, Timer
from rede import Rede
from time import sleep_ms, localtime
from json import load, dumps, loads
from ntptime import settime
from umqtt.robust import MQTTClient
from dht import DHT22
#leitor = Pin(0, Pin.IN, Pin.PULL_UP)
sensor = DHT22(Pin(26))
#porta = Pin(5, Pin.IN, Pin.PULL_UP)
def cbTimer(t):
global taNaHora
taNaHora = True
def debug(arg):
print(arg)
with open('config.json') as arq:
cfg = load(arq)
#Especifico do Thingsboard
clientId = 'crrifrsrg3'
broker = 'demo.thingsboard.io'
usuario= '9lAuy5F1WFtAJsWt8sKS'
topico = b'v1/devices/me/telemetry'
r = Rede(cfg['rede'], cfg['senha'],
cb=debug)
if r.conectado:
settime()
cliente = MQTTClient(cfg["clientId"],
cfg["broker"],
user=usuario,
password='')
cliente.connect()
else:
print ('Deu ruim...Reiniciando')
sleep_ms(2000)
reset()
taNaHora = False
timm = Timer(0)
timm.init(mode = Timer.PERIODIC,
period = 2000,
callback = cbTimer)
ePorta = aPorta = porta.value()
eLeitor = aLeitor = leitor.value()
dados={}
while True:
# Sensor da Porta
"""
ePorta = porta.value()
if ePorta != aPorta:
if ePorta == 0:
evento={'ts':localtime(),
'porta':'Aberta'}
else:
evento={'ts':localtime(),
'porta':'Fechada'}
cliente.publish(topEventos,
dumps(evento).encode())
aPorta = ePorta
sleep_ms(150)
"""
# sensor Umidade e temperatura
if taNaHora:
sensor.measure()
#dados['ts'] = localtime()
dados['temp'] = sensor.temperature()
dados['umid'] = sensor.humidity()
payload = dumps(dados).encode()
cliente.publish(topico, payload)
taNaHora = False
print('enviado')
# Leitor de cartao
"""
eLeitor = leitor.value()
if eLeitor != aLeitor:
if eLeitor == 0:
chave = '1A 2B 3C'
evento={'ts':localtime(),
'chave':chave}
cliente.publish(topChave,
dumps(evento).encode())
aLeitor = eLeitor
sleep_ms(150)
"""