print("Hello, ESP32!")
from machine import Pin
from time import sleep
import dht
import json
import network
import machine
import ubinascii
from umqttsimple import MQTTClient
import time
sensor = dht.DHT22(Pin(5))
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
mqtt_server = '192.168.0.116'
client_id = ubinascii.hexlify(machine.unique_id())
while station.isconnected() == False:
pass
print('conectado com sucesso')
print(station.ifconfig())
topic_sub = 'led'
topic_pub = 'sensor'
last_message = 0
message_interval = 2
counter = 0
led = Pin(2, pin.OUT)
def sub_cb(topic, msg):
msgStr = msg.decode('utf-8')
print('\n\n')
print((msgStr))
led.value(int(msgStr))
print(('\n\n')
#def connect_and_subscribe():
#global client_id, mqtt_server, topic_sub
#client = MQTTClient(client_id, mqtt_server)
#client.set_callback(sub_cb)
#client.connect()
#client.connect()
#client.subscribe(topic_sub)
#print('Conectado ao servidor mqtt!')
#return client
#def restart_and_reconnect():
#print('falha na conexao mqtt. reconectando...')
#time.sleep(10)
#machine.reset()
#try:
# client = connect_and_subscribe()
#except OSError as e:
# restart_and_reconnect
while True:
try:
client.check_msg()
if(time.time() - last_message) > message_interval:
sensor.measure()
temp = sensor.temperature()
umid = sensor.humidity()
temp_f = temp * (9/5) + 32.0
print('Temperature: %3.1f C' %temp)
print('Temperature: %3.1f F' %temp_f)
print('Humidity: %3.1f %%' %umid)
msg = {'temperatura': temp, 'temperatura_f' : temp_f, 'umidade': umid}
msgObj = json.dumps(msg)
#b = json.dumps(a)
print (msgObj)
client.publish(topic_pub, msgObj)
last_message = time.time()
counter += 1
except OSError as e:
print('Failed to read sensor.')