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()