Pasa el tiempo y todavía sigue vigente el legendario automatizador de radios español ZaraRadio.

Cuando empecé con Python, se me ocurrió como usar una placa Raspberry Pi Pico conectada a la PC para poder alimentar con los datos de temperatura y humedad al software de radio.

Luego de una pausa con el asunto y después de un año,  se logró retomar la posibilidad de capturar los datos en el formato necesario para que sea reconocido por ZR.

Primero que nada, el código necesario para la Pico con su correspondiente, descargar librería DHT22.py.

Se importan las librerías Pin desde Machine, DHT22 desde su homónimo y sleep desde time

El led onboard en esta placa está en pin 25. El sensor dht22, se conecta la salida de datos al pin 2.

Es muy sencillo el proceso. El while True comprueba el sensor, avisa si hay error, caso contrario, hace la lectura de parámetros y saca por el puerto serial los valores de temperatura y humedad en una sola trama. Luego, y es de manera opcional, se hace parpadear un led testigo por cada iteración.

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

led = machine.Pin(25, machine.Pin.OUT)
dht_sensor=DHT22(Pin(2),dht11=False)

while True:
       T, H = dht_sensor.read()
       if T is None:
       print(“Error en el sensor!”)
else:
       print(“{}{}”.format(T,H))

       led.value(1)
       sleep(0.2)
       led.value(0)
       sleep(0.2)

Este código se guarda como main.py en el módulo RB Pico, no olvidarse cargar la librería DHT22

El código disponible para ejecutar en el IDE, en mi caso, Thonny Python se puede descargar acá: zara-serial.

import serial, time # Se importan las librerías serial y time
from datetime import datetime #Librería de manejo de fecha

PUERTO = ‘COM3’ #Modificar el puerto

while True:
### Apertura y captura de datos
       puertoSerial = serial.Serial(PUERTO, 9600) # Configuro puerto (desde CMD: python -m serial.tools.list_ports para ver puertos)
       time.sleep(2) #Espera 2 segundos para conectarse al puerto serial
       datos = puertoSerial.readline() #Guardo la lectura en la variable DATOS

       cadena = str(datos) #Los convierto a valores de tipo cadena (string)

       print(«La cadena de datos es: «,cadena) #La muestro por consola
       TEMP = cadena[2:6] # Delimito la información al valor de la presión
       print(«Temperatura: «, TEMP)
       HUMIDITY = cadena[6:8]
       print(«Humedad: «, HUMIDITY)

       puertoSerial.close() #Cierro el puerto

       doc = open(«C:\python\datos.html», «w») # Se crea un archivo en modo write en la siguiente ruta, modificarlo        eventualmente para que lo#lea el Zara
       doc.write(«<HTML>\n»)
       doc.write(f»Temperature:{TEMP}</ BR>\n»)
       doc.write(f»Humidity:{HUMIDITY}</ BR>\n»)
       doc.write(«</HTML>»)
       doc.close()

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *