Temperatura y Humedad con MicroPython

Contenido:

Temperatura y Humedad con MicroPython

Conocer las condiciones ambientales de un determinado lugar es de gran utilidad para mantener un ambiente según las características que se requieran. En ésta ocasión realizaremos un control de temperatura y humedad con MicroPython.

Este proyecto fue realizado con una Placa ESP32, al igual que con una placa Raspberry Pi Pico, ambas con el firmware de micropython previamente instalado, para la obtención de la temperatura y humedad se emplea un sensor DHT22, el cual posee prestaciones de un sensor de alta precisión.

ESP32

El firmware de MicroPython para la placa ESP32 viene con el modulo DHT preinstalado, por lo cual se puede usar el sensor directamente sin recurrir al uso de un modulo externo.

Materiales

  • 1x Placa Esp32 con micropython.
  • 1x Sensor DHT22
  • 2x Diodo emisor de luz.
  • 2x Resistor de 330 Ohm.
  • 1x Resistor de 10k Ohm.
  • 2x Protoboard.
  • Cables de conexión.

Circuito

temperatura y humedad con micropython
Figura 1: Circuito con la Placa ESP32.

Los componentes se deben conectar de la siguiente manera:

  • El Pin Vcc (+) del DHT22 va conectado a un extremo del resistor de 10kOhm y al Pin V5 de la placa ESP32.
  • El Pin OUT (S) del DHT22 va conectado al otro extremo del resistor de 10kOhm y al Pin G14 de la placa ESP32.
  • El Pin GND (-) del DHT22 va conectado al Pin GND de la placa ESP32.
  • El ánodo del Led 1 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin G0 de la placa ESP32.
  • El cátodo del Led 1 (Pin Corto) va conectado al Pin GND de la Placa ESP32.
  • El ánodo del Led 2 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin G4 de la placa ESP32.
  • El cátodo del Led 2 (Pin Corto) va conectado al Pin GND de la Placa ESP32.

Sketch en MicroPython

from machine import Pin
from time import sleep
import dht

#Setup DHT
dht22 = dht.DHT22(Pin(14))

#Setup Leds
led_1 = Pin(0, Pin.OUT)
led_2 = Pin(4, Pin.OUT)

#Retardo de 500ms
sleep(0.5)

#Bucle de repeticion infinita
while 1:
    try:
        #Obtiene los datos del sensor
        dht22.measure()
        t = dht22.temperature()
        h = dht22.humidity()
        #Si la variable t (temperatura) es mayor o igual a 26
        if t>=26:
            #Enciende el led 1
            led_1.on()
        #Si la variable t no cumple la condicion
        else:
            #Apaga el led 1
            led_1.off()
        #Si la variable h (humedad) es mayor o igual a 75
        if h>=75:
            #Enciende el led 2
            led_2.on()
        #Si la variable h no cumple la condicion
        else:
            #Apaga el led 2
            led_2.off()
        #Muestra los datos en la consola
        print('Temperatura: %3.2f°C   Humedad: %3.2f%%' %(t, h))
    #Si se produce un error al leer el sensor
    except OSError as e:
        #Muestra un mensaje de error en la consola
        print('Falla de sensor')
    #Retardo de 3 segundos
    sleep(3)

¿Cómo funciona el Sketch?

El Sketch funciona de la siguiente manera:

  • La placa ESP32 obtendrá datos cada 3 segundos
  • Si la temperatura es inferior a 26 °C, el Led 1 se mantendrá apagado, si la temperatura es igual o superior a lo mencionado el Led 1 se encenderá.
  • Si la humedad es inferior a 75%, el Led 2 se mantendrá apagado, si la humedad es igual o superior a lo mencionado el Led 2 se encenderá.
  • Los datos obtenidos son visualizados en la consola como se muestra a continuación:
temperatura y humedad con micropython
Figura 2: Consola de Thonny.

Raspberry Pi Pico

El firmware de MicroPython para la placa Raspberry Pi Pico no viene con el módulo DHT preinstalado, por lo cual se debe recurrir a módulos externos para poder usar el sensor DHT22.

El modulo creado por Daniel Perrón funciona perfectamente y es el que se ha utilizado en este proyecto. Para instalar el modulo debes seguir estos pasos:

  • Descarga el modulo desde el repositorio dando clic aquí.
temperatura y humedad con micropython
Figura 3: Repositorio GitHub.
  • Descomprime el archivo descargado y abre el archivo DHT22.py
temperatura y humedad con micropython
Figura 4: Archivos del Módulo.
  • Por ultimo, guarda el archivo en la memoria de la Raspberry Pi Pico.
temperatura y humedad con micropython
Figura 5: Memoria de la Placa Raspberry Pi Pico.

Materiales

  • 1x Placa Raspberry Pi Pico con micropython.
  • 1x Sensor DHT22
  • 2x Diodo emisor de luz.
  • 2x Resistor de 330 Ohm.
  • 1x Resistor de 10k Ohm.
  • 2x Protoboard.
  • Cables de conexión.

Circuito

temperatura y humedad con micropython
Figura 6: Circuito con la Placa Raspberry Pi Pico.

Los componentes se deben conectar de la siguiente manera:

  • El Pin Vcc (+) del DHT22 va conectado a un extremo del resistor de 10kOhm y al Pin VBUS de la placa Raspberry Pi Pico.
  • El Pin OUT (S) del DHT22 va conectado al otro extremo del resistor de 10kOhm y al Pin Gp15 de la placa Raspberry Pi Pico.
  • El Pin GND (-) del DHT22 va conectado al Pin GND de la placa Raspberry Pi Pico.
  • El ánodo del Led 1 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP12 de la placa Raspberry Pi Pico.
  • El cátodo del Led 1 (Pin Corto) va conectado al Pin GND de la Placa Raspberry Pi Pico.
  • El ánodo del Led 2 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP13 de la placa Raspberry Pi Pico.
  • El cátodo del Led 2 (Pin Corto) va conectado al Pin GND de la Placa Raspberry Pi Pico.

Sketch en MicroPython

from machine import Pin
from DHT22 import DHT22
from time import sleep

#Setup DHT
#dht_sensor=DHT22(Pin(15),dht11=True)
dht_sensor=DHT22(Pin(15))

#Setup Leds
led_1 = Pin(11, Pin.OUT)
led_2 = Pin(12, Pin.OUT)

#Retardo de 500ms
sleep(0.5)

#Bucle de repeticion infinita
while 1:
    #Obtiene los datos del sensor
    t, h = dht_sensor.read()
    #Si la variable t (temperatura) no contiene datos (None)
    if t is None:
        #Muestra un mensaje de error en la consola
        print("Falla de sensor")
    #Si la variable t contiene datos
    else:
        #Si la variable t (temperatura) es mayor o igual a 26
        if t>=26:
            #Enciende el led 1
            led_1.on()
        #Si la variable t no cumple la condicion
        else:
            #Apaga el led 1
            led_1.off()
        #Si la variable h (humedad) es mayor o igual a 75
        if h>=75:
            #Enciende el led 2
            led_2.on()
        #Si la variable h no cumple la condicion
        else:
            #Apaga el led 2
            led_2.off()
        #Muestra los datos en la consola
        print('Temperatura: %3.2f°C   Humedad: %3.2f%%' %(t,h))
    #Retardo de 3 segundos
    sleep(3)

¿Cómo funciona el Sketch?

El Sketch funciona de la siguiente manera:

  • La placa Raspberry Pi Pico obtendrá datos cada 3 segundos.
  • Si la temperatura es inferior a 26 °C, el Led 1 se mantendrá apagado, si la temperatura es igual o superior a lo mencionado el Led 1 se encenderá.
  • Si la humedad es inferior a 75%, el Led 2 se mantendrá apagado, si la humedad es igual o superior a lo mencionado el Led 2 se encenderá.
  • Los datos obtenidos se visualizan en la consola como se muestra a continuación:
temperatura y humedad con micropython
Figura 7: Consola de Thonny.

Deja un comentario