from machine import Pin, PWM
from umqtt.simple import MQTTClient
import time
import random
import json
import network
import dht
# **************************************#
# Objects:
led = Pin(04,Pin.OUT) #GPIO 02:D4 led INterno NodeMCU
d = dht.DHT22(Pin(2))
led_dht = Pin(33 , Pin.OUT)
move = Pin(21 , Pin.IN)
# **************************************#
# Configure the ESP32 wifi as STAtion.
sta = network.WLAN(network.STA_IF)
if not sta.isconnected():
print('connecting to network...')
sta.active(True)
sta.connect('Wokwi-GUEST', '')
#sta.connect(wifi_credentials.ssid, wifi_credentials.password)
while not sta.isconnected():
pass
print('network config:', sta.ifconfig())
# **************************************#
print("pasando a THINGSBOARD")
# Global variables and constants:
username="0e4uxgdluxwzx6b5msq7"
broker= "thingsboard.cloud"
topic = "v1/devices/me/telemetry"
Mqtt_CLIENT_ID = "s88m7lpytcm1he0378eu" # Max. Number is 23 due to MQTT specs
PASSWORD="p3ih5t3bp1mn0aiilxfz"
client = MQTTClient(client_id=Mqtt_CLIENT_ID, server=broker, port=1883,
user=username, password=PASSWORD, keepalive=10000) #Confiuracion del Cliente MQTT
client.connect()
UPDATE_TIME_INTERVAL = 1000 # in ms unit
last_update = time.ticks_ms()
# **************************************#
data = dict()
#***************************************#
led1=True
print("Conectado a thingsboard")
time.sleep(4)
# Main loop:
while True:
if time.ticks_ms() - last_update >= UPDATE_TIME_INTERVAL:
d.measure()
t = d.temperature()
h = d.humidity()
m = move.value()
print(t,h,m)
#data = dict()
data["temperature"] = t
data["humidity"] = h
data["led"] = led1
data["motion"] = move.value()
data2=json.dumps(data) #convert it to json
if d.temperature() > 40.0 :
led_dht.on()
time.sleep(2)
led_dht.off()
if move.value() == 1:
led.on()
time.sleep(2)
led.off()
print('connection finished')
client.publish(topic,data2)
print("Data_Published")
time.sleep(2)
#led.value(not led.value())
#led1=not led1
#last_update = time.ticks_ms()