#Importar Librerias
import network
import urequests
import json
from machine import I2C,Pin,RTC
from i2c_lcd import I2cLcd
import time
import dht
import ntptime
#Configurar dispositivos
sensor=dht.DHT22(Pin(15))
led=Pin(2,Pin.OUT)
sensorid = 14101
AddressOfLcd=0X27
i2c=I2C(scl=Pin(22),sda=Pin(21),freq=400000)
lcd=I2cLcd(i2c,AddressOfLcd,2,16)
#Conexion a red y Firebase
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Wokwi-GUEST","")
while not wlan.isconnected():
pass
headers = {'Authorization': 'Basic YWRtaW5pc3RyYXRvcjpobChTOTkpbyU/OThVLkRGNjlhWXFuSkt4Q1dMUWNRJg=='}
URL1 = "https://3.89.115.145/piwebapi/streams/F1AbE1_jzbUq5HEyaN60t1BTzsgucptpfIv7RG5pxLYoGZ-yQ024zdIqBWEKIy_pKuFVvogRUMyQU1BWi04T01NMUxHXE1JQ1JPQ09OVFJPTEFET1JcU0VOU09SfEhVTUVEQUQ/value"
URL2 = "https://3.89.115.145/piwebapi/streams/F1AbE1_jzbUq5HEyaN60t1BTzsgucptpfIv7RG5pxLYoGZ-yQnjJS5_vWpkuUGjo7VU03VwRUMyQU1BWi04T01NMUxHXE1JQ1JPQ09OVFJPTEFET1JcU0VOU09SfFRFTVBFUkFUVVJB/value"
#Lectura continua
print('MF = Muy Frio, F = Frio, C = Caliente, A = Agradable')
while True:
try:
#Lectura de sensor
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
if (temp<=0):
sen = 'MF'
elif (temp<=25):
sen = 'F'
elif (temp>=40):
sen = 'C'
else:
sen = 'A'
#Definición de fecha
ntptime.settime()
(year, month, day, weekday, hour, minute, second, milisecond) = RTC().datetime()
RTC().init((year, month, day, weekday, hour-5, minute, second, milisecond))
fecha = str(RTC().datetime()[2]) + '-' + str(RTC().datetime()[1]) + '-' + str(RTC().datetime()[0])
#Estruturación del patch de la base de datos
datat = '{"Value":' + str(temp) + '}'
datah = '{"Value":' + str(hum) + '}'
h = urequests.post(URL1, headers=headers, data=datah)
h.close()
t = urequests.post(URL2, headers=headers, data=datat)
t.close()
print(h)
print(t)
#Escritura en lcd
lcd.clear()
lcd.move_to(0,0)
lcd.putstr(fecha + ' ' + str(sensorid))
lcd.move_to(0,1)
lcd.putstr(sen + ' T:' + str(int(temp)) + ' C H:' + str(int(hum)) + '%')
#Control de Led
for i in range(5):
led.value(1)
time.sleep(0.5)
led.value(0)
time.sleep(0.5)
except OSError as e:
print("Failed to read sensor!!!")