################################################################################
# Nombre del Archivo: main.py
# Autor: [Montijo Perez Jose Alejandro]
# Correo: [[email protected]]
# Fecha: [2023-11-15]
# Institución: Tecnológico Nacional de México (TECNM) - Campus ITT
# Curso: Sistemas Programables
#
# Objetivo:
# Este programa está diseñado para poder obtener información del sensor DHT22 en lecturas de temperatura y humedad
#
# Historial de Revisiones:
# [] [] - Creado
#
# Enlace a GitHub Repository ó GIST:
# [https://github.com/tectijuana/sp5-iot-ai-los-pistaches-anacletos]
#
# Enlace a Wokwi :
# [https://wokwi.com/projects/381491976186950657]
#
# Licencia:
# Este programa es software libre y puede ser redistribuido y/o modificado bajo los términos de la Licencia Pública General GNU
# como está publicado por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.
#
# Este programa se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; incluso sin la garantía implícita de
# COMERCIALIZACIÓN o APTITUD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia Pública General GNU para obtener más detalles.
#
# Deberías haber recibido una copia de la Licencia Pública General GNU junto con este programa. Si no es así, consulte <http://www.gnu.org/licenses/>.
#
################################################################################
#Modulos necesarios
import network
import time
from machine import Pin
#Modulo del sensor
import dht
import ujson
#Libreria importada
from umqtt import MQTTClient
# MQTT Server Parameters
MQTT_CLIENT_ID = "micropython-weather-demo"
MQTT_BROKER = "broker.mqttdashboard.com"
MQTT_USER = ""
MQTT_PASSWORD = ""
MQTT_TOPIC = "wokwi-weather"
#Asignacion del pin del sensor
sensor = dht.DHT22(Pin(15))
#Modulo de conexion a internet
print("Connecting to WiFi", end="")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Wokwi-GUEST", "")
while not wlan.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")
print(wlan.ifconfig())
#Modulo de conexion al servidor MQTT
print("Connecting to MQTT server... ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Connected!")
#Lectura continua del sensor
prev_weather = ""
while True:
print("Measuring weather conditions... ", end="")
sensor.measure()
message = ujson.dumps({
"temp": sensor.temperature(),
"humidity": sensor.humidity(),
})
if message != prev_weather:
print("Updated!")
print("Reporting to MQTT topic {}: {}".format(MQTT_TOPIC, message))
client.publish(MQTT_TOPIC, message)
prev_weather = message
else:
print("No change")
time.sleep(1)