Categories: Raspberry Pi

Cómo monitorear la temperatura con un Raspberry Pi Pico

El Raspberry Pi Pico es la forma ideal de ingresar a los microcontroladores. A partir de $ 4, el tablero es barato y fácil de usar. El bajo costo y la facilidad de uso significa que podemos incluirlos fácilmente en un proyecto sin temer lo peor para nuestra billetera. En este tutorial, usaremos un Raspberry Pi Pico para capturar datos de temperatura en vivo usando un DS18B20. Este sensor viene en muchas formas, desde un chip de transistor desnudo hasta un cable resistente al agua. Usaremos la última versión, que puede sumergirse parcialmente en un líquido para controlar la temperatura. Nuestro proyecto tomará una lectura de temperatura y, mediante una prueba condicional en MicroPython, activará un LED para que parpadee si la temperatura desciende por debajo de los 20 grados centígrados.

Para este proyecto necesitarás

Construyendo el circuito

(Crédito de la imagen: Tom’s Hardware) El circuito se compone de dos partes. El sensor de temperatura DS18B20 y el LED. Los dividiremos en dos secciones. El DS18B20 tiene tres conexiones con Raspberry Pi Pico. Deslice el dedo para desplazarse horizontalmente Raspberry Pi PicoWire ColorDS18B203V3RedVDDGPIO26YellowDataGNDBlackGND(Crédito de la imagen: Tom’s Hardware) Las tres conexiones se realizan en la placa de pruebas y los cables se utilizan para conectarse al Pico. Entre los pines de datos y 3V3 (amarillo y rojo), hay una resistencia de 4,7 K ohmios que se usa para subir el pin de datos usando los 3,3 V suministrados. Esto mantiene una conexión estable entre el pin de datos y Pico. El LED tiene solo dos conexiones con Raspberry Pi Pico.(Crédito de la imagen: Tom’s Hardware) Desliza para desplazarte horizontalmenteRaspberry Pi PicoWire ColorLEDGPIO15RedAnode (pata larga)GNDBlackCathode (pata corta)El LED tiene una resistencia de 330 ohmios en la pata del cátodo, en línea con GND. Esto reduce la cantidad de corriente que el LED puede consumir.

Escribir el código

1. Sigue esta guía para descargar e instalar la última versión de MicroPython para su modelo de Raspberry Pi Pico. Siga los pasos hasta e incluyendo la conexión de Raspberry Pi Pico a Thonny.2. Cree un nuevo proyecto en blanco en Thonny.3. Importe tres módulos de código escrito previamente. El primero es onewire, un módulo que permite que Pico se comunique con la interfaz de un solo cable del DS18B20. El siguiente es ds18x20, un módulo que interpreta los datos del sensor del DS18B20 y nos proporciona datos legibles por humanos. Por último, importamos el tiempo que se usa para marcar el ritmo de nuestro código de proyecto. import onewire, ds18x20, time4. Desde el módulo Máquina importe la clase Pin. Esto permitirá que nuestro código interactúe con los componentes conectados al GPIO. from machine import Pin5. Cree dos objetos, SensorPin y alerta. SensorPin es el pin GPIO que se usa para conectar el pin de datos del DS18B20 al Pico. Alert es el pin GPIO que se conecta al ánodo (pata larga) del LED. SensorPin = Pin (26, Pin.IN) alerta = Pin (15, Pin.OUT)6. Cree un objeto, sensor y utilícelo para decirle al módulo ds18x20 dónde encontrar nuestro sensor de temperatura DS18B20. Esta línea también usa el módulo onewire, ya que ese es el protocolo que usa el sensor para la conexión.sensor = ds18x20.DS18X20(onewire.OneWire(SensorPin))7. Cree un objeto, roms y use el objeto sensor para escanear la interfaz para encontrar nuestro sensor de temperatura DS18B20. Todos los dispositivos de un solo cable, como nuestro DS18B20, tienen un número de registro único almacenado en la ROM que debemos identificar antes de poder usarlos.roms = sensor.scan()8. Usa un ciclo while True para ejecutar las siguientes líneas de código en un bucle interminable.while True:9. Establezca la lectura de temperatura para usar Celsius. Tenga en cuenta que el código dentro del bucle while True está sangrado para mostrar que pertenece al bucle. sensor.convert_temp()10. Agregue una pausa de dos segundos al código. Esto le da al DS18B20 tiempo para asentarse antes de tomar una lectura. tiempo.dormir(2)11. Use un bucle for para iterar a través de la lista de ROM devuelta. Como solo tenemos un DS18B20 en la interfaz de un cable, solo se almacenará una ROM en la lista que iteramos. para rom en roms:12. Cree un objeto, temperatura, y utilícelo para almacenar la salida de lectura del sensor DS18B20. La salida está envuelta en una función round() que redondeará los datos devueltos a 1 lugar decimal. temperatura = round(sensor.read_temp(rom),1)13. Utilice una prueba condicional para comparar el valor almacenado en el objeto de temperatura con un valor codificado. En este ejemplo, si la temperatura es inferior o igual a 20 grados centígrados, la condición se evaluará como verdadera y se ejecutará la siguiente sección del código sangrado. si la temperatura Imprime un mensaje a Python Shell que advierte al usuario que el temperamento está por debajo de los 20 C e incluye el valor de la temperatura en la oración. print(“Advertencia de que la temperatura es”,temperatura,”C”)15. Utilice un bucle for para que el LED parpadee 10 veces, con un retraso de 0,5 segundos. for i in range(10): alert.toggle() time.sleep(0.5)16. Crear una condición else que se active si la temperatura es superior a 20 C. Esta condición imprimirá la temperatura actual antes de finalizar. más: imprimir (temperatura, “C”) 17. Agregar una pausa de cinco segundos antes de finalizar el ciclo y volver al inicio del ciclo. tiempo.dormir(5)18. Guarde el código en Raspberry Pi Pico como TemperatureMonitor.py.19 Haga clic en el icono Ejecutar para iniciar el código. Después de una breve pausa, los detalles de la temperatura aparecerán en el shell de Python. Si la temperatura es inferior a 20 C, el LED parpadeará cinco veces para avisarnos.(Crédito de la imagen: Hardware de Tom)

Listado completo de códigos

importar onewire, ds18x20, tiempo desde la máquina importar Pin SensorPin = Pin(26, Pin.IN) alerta = Pin(15, Pin.OUT) sensor = ds18x20.DS18X20(onewire.OneWire(SensorPin)) roms = sensor.scan() print(roms) while True: sensor.convert_temp() time.sleep(2) for rom in roms: temperatura = round(sensor.read_temp(rom),1) if temperatura

aliintizar71

Share
Published by
aliintizar71

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

2 years ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

2 years ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

2 years ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

2 years ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

2 years ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

2 years ago