Tabla de contenido:
- Paso 1: Cosas necesarias para el proyecto
- Paso 2: Descargue e instale Arduino IDE en Raspberry Pi
- Paso 3: Código para Arduino
- Paso 4: Configura Raspberry Pi
- Paso 5: Python Scipt
- Paso 6: diagrama de circuito
- Paso 7: Resultado
Video: Trazar datos DHT11 usando Raspberry Pi y Arduino UNO: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este instructivo explica cómo trazo los datos del sensor de temperatura DHT11 usando Arduino Uno y Raspberry Pi. En este sensor de temperatura está conectado con Arduino Uno y Arduino Uno está conectado en serie con Raspberry Pi. En Raspberry Pi Side, las bibliotecas matplotlib, numpy y drawnow se utilizan para trazar gráficos.
Paso 1: Cosas necesarias para el proyecto
1. Raspberry Pi
2. Arduino Uno
3. Sensor de temperatura DHT11
4. Cables de puente
5. Tablero de pruebas
Paso 2: Descargue e instale Arduino IDE en Raspberry Pi
Nota: - Puede usar Arduino IDE de Windows, Linux o Mac para cargar bocetos en Arduino UNO.
El primer paso es instalar Arduino IDE para ese navegador abierto en Raspberry Pi y abrir el enlace que se muestra a continuación.
IDE anterior de Arduino
Luego descargue la versión de ARM de Linux y extráigala usando el comando
tar -xf nombre de archivo
Después de extraer, verá un nuevo directorio. Aquí estoy usando arduino-1.8.2 IDE. Luego vaya al directorio usando el comando.
cd arduino-1.8.1
Para ejecutar Arduino IDE, use este comando en el directorio arduino-1.8.2
./arduino
Cómo utilizar las bibliotecas
Para instalar cualquier biblioteca en Arduino, simplemente descargue la biblioteca y péguela en arduino 1.8.2 ==> carpeta de bibliotecas.
NOTA: - Asegúrese de que no haya (-) en la carpeta de la biblioteca por ejemplo (sensor DHT). Si hay alguno (-), cámbiele el nombre.
Usaremos dos bibliotecas en este instructable, DHT_Sensor y Adafruit_Sensor
Paso 3: Código para Arduino
Ahora, hagamos que Python y Arduino hablen juntos. En primer lugar, necesitamos un programa simple para que Arduino envíe datos a través del puerto serie. El siguiente programa es un programa simple que tendrá el recuento de Arduino y enviará los datos al puerto serie.
Código Arduino
#include "DHT.h" float tempC; // Temperatura variable o de mantenimiento en C float tempF; // Variable para mantener la temperatura en F la humedad del flotador; // Variable para la lectura de la presión de mantenimiento
#define DHTPIN 7 // a qué pin digital estamos conectados
#define DHTTYPE DHT11 // DHT 11
// # define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # define DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicializar el sensor DHT.
DHT dht (DHTPIN, DHTTYPE);
configuración vacía () {Serial.begin (115200); // enciende el monitor en serie
dht.begin (); // inicializar dht}
bucle vacío () {tempC = dht.readTemperature (); // Asegúrate de declarar tus variables
humedad = dht.readHumidity (); // Leer humedad
Serial.print (tempC);
Serial.print (",");
Serial.print (humedad);
Serial.print ("\ n"); // para nuevo retardo de línea (2000); // Pausa entre lecturas. }
Una vez compilado el boceto, seleccione la placa y el puerto y cárguelo.
Paso 4: Configura Raspberry Pi
Una vez que se cargue el código, instale algunas bibliotecas para que podamos trazar el gráfico de los datos que provienen en serie de Arduino Uno.
1. PySerial es una biblioteca que brinda soporte para conexiones seriales en una variedad de dispositivos diferentes. Para instalarlo use el comando.
Sudo apt-get install python-serial
2. Numpy es un paquete que define un objeto de matriz multidimensional y funciones matemáticas rápidas asociadas que operan en él. También proporciona rutinas simples para álgebra lineal y FFT (Transformada rápida de Fourier) y generación sofisticada de números aleatorios. Puede instalarlo de muchas formas utilizando el paquete apt o pip. Aquí estoy instalando usando pip para eso primero tenemos que instalar pip
sudo apt-get install python-pip python-dev build-essential
sudo pip instalar numpy
o si quieres usar el paquete apt
sudo apt install python-numpy
3. Matplotlib es una biblioteca de trazado en 2D que proporciona una API orientada a objetos para incrustar trazados en aplicaciones que utilizan kits de herramientas de GUI de propósito general como Tkinter, wxPython, Qt o GTK +. Para instalarlo use el comando
sudo pip instalar matplotlib
o
sudo apt instalar python-matplotlib
4. Drawnow se usa generalmente para ver los resultados después de cada iteración, ya que usamos "imshow" en MATLAB. Para instalarlo use el comando
sudo pip instalar drawnow
Paso 5: Python Scipt
El siguiente paso es escribir un script de Python para el que puede usar cualquier editor para escribirlo.
1. Trace los datos en un gráfico
importar serial # importar biblioteca serial
importar numpy # Importar numpy
importar matplotlib.pyplot como plt #importar biblioteca matplotlib
desde la importación de drawnow *
tempC = # matriz vacía humedad =
arduino = serial. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # modo interactivo para trazar el recuento de datos en vivo = 0
def makeFig (): #Crear una función que haga nuestro gráfico deseado
plt.ylim (20, 30) #Establecer y valores mínimos y máximos
plt.title ('Datos DHT11 en tiempo real') #Escriba el título
plt.grid (True) #Enciende la cuadrícula
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b ^ -', label = 'Degree C') #traza la temperatura
plt.legend (loc = 'superior derecha') # trazar la leyenda
plt2 = plt.twinx () #Crear un segundo eje y
plt.ylim (50, 70) #Establecer límites del segundo eje y
plt2.plot (humedad, 'g * -', label = 'Humedad') #plot presiones de datos
plt2.set_ylabel ('Humedad') #label segundo eje y
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'superior izquierda')
while True: # Bucle while que se repite para siempre
while (arduino.inWaiting () == 0): #Espera aquí hasta que haya datos
pasar # no hacer nada
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Dividirlo en una matriz
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
humedad.append (zumbido)
dibujar ahora (makeFig)
plt.pause (.000001)
count = count + 1 if (count> 20): # solo tome los últimos 20 datos si los datos son más, aparecerán primero
tempC.pop (0)
humedad.pop (0)
2. Para trazar la humedad y la temperatura por separado
importar serial # importar biblioteca serial
importar numpy # Importar numpy
importar matplotlib.pyplot como plt #importar biblioteca matplotlib
desde la importación de drawnow *
tempC = # matriz vacía
humedad =
arduino = serial. Serial ("/ dev / ttyACM0", 115200) # Puerto serial al que arduino está conectado y velocidad en baudios
plt.ion () # Dígale a matplotlib que desea que el modo interactivo trace datos en vivo
def CreatePlot (): #Crear una función que haga nuestro gráfico deseado
plt.subplot (2, 1, 1) #Altura, Ancho, Primera parcela
plt.ylim (22, 34) #Establecer y valores mínimos y máximos
plt.title ('Datos DHT11 en tiempo real') #Escriba el título
plt.grid (True) #Enciende la cuadrícula
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b ^ -', label = 'Degree C') #traza la temperatura
plt.legend (loc = 'upper center') # trazar la leyenda
plt.subplot (2, 1, 2) # Alto, Ancho, Segunda parcela
plt.grid (verdadero)
plt.ylim (45, 70) #Establecer límites del segundo eje y
plt.plot (humedad, 'g * -', label = 'Humedad (g / m ^ 3)') #plot humedad datos
plt.ylabel ('Humedad (g / m ^ 3)') #label segundo eje y
plt.ticklabel_format (useOffset = False) # para detener el eje y de autoescala
plt.legend (loc = 'centro superior')
while True: # Bucle while que se repite para siempre
while (arduino.inWaiting () == 0): #Espere aquí hasta que haya un paso de datos # no haga nada
arduinoString = arduino.readline () # leer los datos del puerto serie
dataArray = arduinoString.split (',') #Dividirlo en una matriz
temp = float (dataArray [0]) #Convertir el primer elemento a un número flotante y ponerlo en temp
hum = float (dataArray [1]) #Convierta el segundo elemento a un número flotante y póngalo en zumbido
tempC.append (temp) #Construye nuestra matriz tempC agregando lectura temporal
humedad.append (hum) #Construir nuestra matriz de humedad agregando lectura de zumbido
dibujar ahora (CreatePlot)
plt.pause (.000001)
cuenta = cuenta + 1
if (count> 20): # solo tome los últimos 20 datos si los datos son más, aparecerán primero
tempC.pop (0) # emerge el primer elemento
humedad.pop (0)
Paso 6: diagrama de circuito
Arduino ==> DHT11
3,3 V ==> VCC
GND ==> GND
D7 ==> FUERA
Recomendado:
Cómo hacer un registrador de datos en tiempo real de humedad y temperatura con Arduino UNO y tarjeta SD - Simulación del registrador de datos DHT11 en Proteus: 5 pasos
Cómo hacer un registrador de datos en tiempo real de humedad y temperatura con Arduino UNO y tarjeta SD | Simulación del registrador de datos DHT11 en Proteus: Introducción: hola, soy Liono Maker, aquí está el enlace de YouTube. Estamos haciendo un proyecto creativo con Arduino y trabajamos en sistemas embebidos. Data-Logger: Un registrador de datos (también registrador de datos o registrador de datos) es un dispositivo electrónico que registra datos a lo largo del tiempo w
Trazar datos en vivo de un sensor de temperatura (TMP006) usando MSP432 LaunchPad y Python: 9 pasos
Trazado de datos en vivo de un sensor de temperatura (TMP006) usando MSP432 LaunchPad y Python: El TMP006 es un sensor de temperatura que mide la temperatura de un objeto sin la necesidad de hacer contacto con el objeto. En este tutorial, trazaremos los datos de temperatura en vivo del BoosterPack (TI BOOSTXL-EDUMKII) usando Python
Cómo enviar datos DHT11 al servidor MySQL usando NodeMCU: 6 pasos
Cómo enviar datos DHT11 al servidor MySQL usando NodeMCU: En este proyecto, hemos interconectado DHT11 con nodemcu y luego enviamos datos de dht11, que son humedad y temperatura, a la base de datos phpmyadmin
Arduino está enviando datos Dht11 a MySQL Server (PHPMYADMIN) usando Python: 5 pasos
Arduino está enviando datos Dht11 a MySQL Server (PHPMYADMIN) usando Python: En este proyecto, he interconectado DHT11 con arduino y luego estoy enviando datos de dht11 que son humedad y temperatura a la base de datos phpmyadmin. A diferencia de nuestro proyecto anterior, no estamos usando ningún escudo ethernet en este caso, aquí solo estamos leyendo t
Registrar datos y trazar un gráfico en línea usando NodeMCU, MySQL, PHP y Chartjs.org: 4 pasos
Registrar datos y trazar un gráfico en línea usando NodeMCU, MySQL, PHP y Chartjs.org: este Instructable describe cómo podemos usar la placa Node MCU para recopilar datos de múltiples sensores, enviar estos datos a un archivo PHP alojado que luego agrega los datos a una base de datos MySQL. Luego, los datos se pueden ver en línea como un gráfico, utilizando chart.js.A ba