Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
El seguimiento de la temperatura y la humedad es importante si tiene un invernadero o tiene planes futuros para convertir su invernadero en una mini granja inteligente.
Para mi primer Instructable, demostraré cómo crear un prototipo:
- Conecte un sensor de temperatura y humedad DHT11 a un Arduino Mega 2560
- Programe el Arduino en C para leer los datos del sensor
- Muestra datos de temperatura y humedad en una pantalla LCD conectada al Arduino
- Indique al Arduino que envíe los datos del sensor a una Raspberry Pi 3 Modelo B +
- Escriba código en Python para mostrar los datos del sensor
¿Por qué usar un RPi y un Arduino juntos?
La conexión Arduino y RPi puede permitir grandes capacidades si necesita E / S en las que Arduino sobresale y comunicación de red / subprocesos múltiples / visuales en los que RPi es mucho mejor.
En otras palabras, usaremos Arduino para controlar tareas intensivas y usaremos RPi para tareas intensivas de computación.
Las versiones reforzadas de Arduinos están disponibles en Rugged-Circuits
Paso 1: Obtener hardware Arduino y RPi
Los kits de inicio de Arduino están fácilmente disponibles y le permiten experimentar con diferentes tipos de sensores y dispositivos. Comprar un kit de inicio resulta más económico en lugar de pedir varias piezas por separado. He proporcionado algunos enlaces de afiliados a continuación que apuntan a Banggood y Amazon US.
Kit de inicio Arduino (Banggood)
Kit de inicio Arduino (Amazon EE. UU.)
Placa base Element14 RPi 3 B + (Amazon EE. UU.)
Estuche para Raspberry Pi 3 B + (Amazon EE. UU.)
Tarjeta Micro SD de 32 GB (Amazon EE. UU.).
Paso 2: conecte el DHT11 y la pantalla LCD al Arduino
Paso 3: programa el Arduino
# arduino-dht11-lcd2004
#Autor: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ # Lee datos de un DHT11 conectado a un Arduino, se muestra en un LCD2004 y envía datos en serie a Raspberry Pi
#incluir
#incluir
// La pantalla LCD se define como el número de dispositivo 0x27 en el bus I2C
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 está conectado al pin 8
dht DHT; #define sensorPin 8
// Raspberry Pi está conectado a Serial 0
#define serialPi Serial
configuración vacía () {
lcd. comienzo (20, 4); // Inicializa la interfaz a la pantalla LCD y especifica las dimensiones (ancho y alto) de la pantalla lcd.init (); LCD luz de fondo(); serialPi.begin (9600); // Arduino al monitor serial}
bucle vacío () {
// Leer datos del sensor
int sensorData = DHT.read11 (sensorPin); temperatura de flotación = temperatura DHT; humedad de flotación = DHT.humedad;
// Temperatura de impresión
lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.print (temperatura); lcd.print ("C");
// Imprimir humedad
lcd.setCursor (0, 1); lcd.print ("Humedad"); lcd.print (humedad); lcd.print ("%");
// Envía datos de temperatura y humedad a Raspberry Pi
serialPi.print ("");
// Espera 10 segundos
retraso (10000); }
Paso 4: Configuración de Arduino, LCD y DHT11 en funcionamiento
Paso 5: conecta la Raspberry Pi al Arduino
Paso 6: Código Python RPi para leer los datos en serie del puerto USB
# rpi-arduino-dht11
#Raspberry Pi lee los datos del sensor de temperatura y humedad de Arduino
importar serie, cadena, tiempo
# En este ejemplo se usa / dev / ttyUSB0
# Esto puede cambiar en su caso a / dev / ttyUSB1, / dev / ttyUSB2, etc. ser = serial. Serial ('/ dev / ttyUSB0', 9600)
# El siguiente bloque de código funciona así:
# Si hay datos en serie, lea la línea, decodifique los datos UTF8, # … elimine el final de los caracteres de línea # … divida los datos en temperatura y humedad # … elimine los punteros de inicio y finalización () # … imprima la salida mientras Verdadero: si ser.in_waiting> 0: rawserial = ser.readline () cookingserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookingserial.split (',') temperature = datasplit [0].strip ('') imprimir (temperatura) imprimir (humedad)