Tabla de contenido:

Temperatura y humedad de Arduino a Raspberry Pi: 6 pasos
Temperatura y humedad de Arduino a Raspberry Pi: 6 pasos

Video: Temperatura y humedad de Arduino a Raspberry Pi: 6 pasos

Video: Temperatura y humedad de Arduino a Raspberry Pi: 6 pasos
Video: Arduino desde cero en Español - Capítulo 7 - Temperatura y Humedad ambiente con DHT22 o DHT11 🌡️ 2024, Noviembre
Anonim
Temperatura y humedad de Arduino a Raspberry Pi
Temperatura y humedad de Arduino a Raspberry Pi

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

Conecte el DHT11 y la pantalla LCD al Arduino
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

La configuración funcional de Arduino, LCD y DHT11
La configuración funcional de Arduino, LCD y DHT11

Paso 5: conecta la Raspberry Pi al Arduino

Conecte la Raspberry Pi al Arduino
Conecte 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)

Recomendado: