Índice:
- Etapa 1: Coisas necessárias para o projeto
- Etapa 2: Baixe e instale o IDE do Arduino no Raspberry Pi
- Etapa 3: Código para Arduino
- Etapa 4: configuração do Raspberry Pi
- Etapa 5: Python Scipt
- Etapa 6: Diagrama de Circuito
- Etapa 7: Resultado
Vídeo: Traçar dados DHT11 usando Raspberry Pi e Arduino UNO: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível explica como ploto os dados do sensor de temperatura DHT11 usando Arduino Uno e Raspberry Pi. Neste sensor de temperatura está conectado com o Arduino Uno e o Arduino Uno está conectado em série com o Raspberry Pi. No Raspberry Pi Side, as bibliotecas matplotlib, numpy e drawnow são usadas para plotar gráficos.
Etapa 1: Coisas necessárias para o projeto
1. Raspberry Pi
2. Arduino Uno
3. Sensor de temperatura DHT11
4. Fios de ligação
5. Placa de ensaio
Etapa 2: Baixe e instale o IDE do Arduino no Raspberry Pi
Nota: - Você pode usar o IDE do Arduino do Windows, Linux ou Mac para fazer upload do esboço no Arduino UNO.
O primeiro passo é instalar o Arduino IDE para esse navegador aberto no Raspberry Pi e abrir o link fornecido abaixo
Arduino IDE anterior
Em seguida, baixe a versão Linux ARM e extraia usando o comando
nome do arquivo tar -xf
Depois de extrair, você verá um novo diretório. Aqui estou usando o IDE arduino-1.8.2. Em seguida, vá para o diretório usando o comando.
cd arduino-1.8.1
Para executar o Arduino IDE, use este comando no diretório arduino-1.8.2
./arduino
Como usar bibliotecas
Para instalar qualquer biblioteca no Arduino, basta baixar a biblioteca e colar no arduino 1.8.2 ==> pasta libraries.
NOTA: - Certifique-se de que não há (-) na pasta da biblioteca para ex (sensor DHT). Se houver algum (-), renomeie-o.
usaremos duas bibliotecas neste instrutível, DHT_Sensor e Adafruit_Sensor
Etapa 3: Código para Arduino
Agora, vamos colocar Python e Arduino conversando. Primeiramente, precisamos de um programa simples para fazer o Arduino enviar dados pela porta serial. O programa a seguir é um programa simples que fará a contagem do Arduino e enviará os dados para a porta serial.
Código Arduino
#include "DHT.h" float tempC; // Variável ou temperatura de retenção em C float tempF; // Variável para manter a temperatura em F float umidade; // Variável para manter a leitura da pressão
#define DHTPIN 7 // a qual pino digital estamos conectados
# define DHTTYPE DHT11 // DHT 11
// # define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # define DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicializa o sensor DHT.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // liga o monitor serial
dht.begin (); // inicializar dht}
void loop () {tempC = dht.readTemperature (); // Certifique-se de declarar suas variáveis
umidade = dht.readHumidity (); // Ler umidade
Serial.print (tempC);
Serial.print (",");
Serial.print (umidade);
Serial.print ("\ n"); // para novo linedelay (2000); // Pausa entre as leituras. }
Depois que o esboço for compilado, selecione a placa e a porta e faça o upload.
Etapa 4: configuração do Raspberry Pi
Depois de fazer o upload do código, instale algumas bibliotecas para que possamos traçar o gráfico dos dados que vêm em série do Arduino Uno.
1. PySerial é uma biblioteca que fornece suporte para conexões seriais em uma variedade de dispositivos diferentes. Para instalá-lo, use o comando.
Sudo apt-get install python-serial
2. Numpy é um pacote que define um objeto de matriz multidimensional e funções matemáticas rápidas associadas que operam nele. Ele também fornece rotinas simples para álgebra linear e FFT (Fast Fourier Transform) e geração sofisticada de números aleatórios. Você pode instalá-lo de várias maneiras usando o pacote apt ou pip. Aqui estou instalando usando o pip para que primeiro temos que instalar o pip
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
ou se você quiser usar o pacote apt
sudo apt install python-numpy
3. Matplotlib é uma biblioteca de plotagem 2D que fornece uma API orientada a objetos para embutir plotagens em aplicativos usando kits de ferramentas GUI de uso geral, como Tkinter, wxPython, Qt ou GTK +. Para instalá-lo, use o comando
sudo pip install matplotlib
ou
sudo apt install python-matplotlib
4. Drawnow é geralmente usado para ver os resultados após cada iteração, pois usamos "imshow" no MATLAB. Para instalá-lo, use o comando
sudo pip install drawnow
Etapa 5: Python Scipt
O próximo passo é escrever um script python para que você possa usar qualquer editor para escrevê-lo.
1. Plote os dados em um gráfico
import serial # import Biblioteca serial
import numpy # Import numpy
import matplotlib.pyplot as plt #import matplotlib library
de importação drawnow *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # modo interativo para plotar a conta de dados ao vivo = 0
def makeFig (): #Crie uma função que faça nosso gráfico desejado
plt.ylim (20, 30) #Defina os valores mínimo e máximo
plt.title ('Dados DHT11 em tempo real') # Coloque o título
plt.grid (True) #Ligue a grade
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b ^ -', label = 'Grau C') #plot a temperatura
plt.legend (loc = 'superior direito') #plot the legend
plt2 = plt.twinx () #Crie um segundo eixo y
plt.ylim (50, 70) # Definir limites do segundo eixo y
plt2.plot (umidade, 'g * -', rótulo = 'Umidade') #plot dados de pressão
plt2.set_ylabel ('Umidade') #label segundo eixo y
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'superior esquerdo')
while True: # loop while que faz um loop para sempre
while (arduino.inWaiting () == 0): #Aguarde aqui até que haja dados
passe # não faça nada
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Dividi-lo em um array
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
umidade.append (hum)
drawnow (makeFig)
plt.pause (.000001)
count = count + 1 if (count> 20): #apenas pegue os últimos 20 dados, se os dados forem maiores, ele aparecerá primeiro
tempC.pop (0)
umidade.pop (0)
2. Para representar graficamente a umidade e a temperatura separadamente
import serial # import Biblioteca serial
import numpy # Import numpy
import matplotlib.pyplot as plt #import matplotlib library
de importação drawnow *
tempC = #Array vazio
umidade =
arduino = serial. Serial ("/ dev / ttyACM0", 115200) # Porta serial à qual o arduino está conectado e Baudrate
plt.ion () #Diga ao matplotlib que você deseja o modo interativo para traçar os dados ao vivo
def CreatePlot (): #Create uma função que torna nosso gráfico desejado
plt.subplot (2, 1, 1) #Height, Width, First plot
plt.ylim (22, 34) #Defina os valores mínimo e máximo
plt.title ('Dados DHT11 em tempo real') # Coloque o título
plt.grid (True) #Ligue a grade
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b ^ -', label = 'Grau C') #plote a temperatura
plt.legend (loc = 'upper center') #plot the legend
plt.subplot (2, 1, 2) # Altura, Largura, Segundo gráfico
plt.grid (verdadeiro)
plt.ylim (45, 70) # Definir limites do segundo eixo y
plt.plot (umidade, 'g * -', rótulo = 'Umidade (g / m ^ 3)') #plot dados de umidade
plt.ylabel ('Umidade (g / m ^ 3)') #label segundo eixo y
plt.ticklabel_format (useOffset = False) #para parar o autoescala eixo y
plt.legend (loc = 'centro superior')
while True: # loop while que faz um loop para sempre
while (arduino.inWaiting () == 0): #Aguarde aqui até que haja passagem de dados # não faça nada
arduinoString = arduino.readline () #ler os dados da porta serial
dataArray = arduinoString.split (',') #Dividi-lo em um array
temp = float (dataArray [0]) #Convert primeiro elemento em número flutuante e coloque em temp
hum = float (dataArray [1]) #Converte o segundo elemento em um número flutuante e coloque em hum
tempC.append (temp) #Crie nossa matriz tempC anexando leitura temporária
umidade.append (hum) #Construindo nossa matriz de umidade anexando leitura de zumbido
drawnow (CreatePlot)
plt.pause (.000001)
contagem = contagem + 1
if (contagem> 20): #somente pegue os últimos 20 dados; se os dados forem maiores, eles aparecerão primeiro
tempC.pop (0) # destaque o primeiro elemento
umidade.pop (0)
Etapa 6: Diagrama de Circuito
Arduino ==> DHT11
3,3 V ==> VCC
GND ==> GND
D7 ==> OUT
Recomendado:
Faça lindos gráficos a partir de dados do Arduino ao vivo (e salve os dados no Excel): 3 etapas
Faça lindos gráficos a partir de dados do Arduino ao vivo (e salve os dados no Excel): Todos nós gostamos de brincar com nossa função P … lotter no IDE do Arduino. No entanto, embora possa ser útil para aplicativos básicos, os dados são apagados conforme mais pontos são adicionados e não é particularmente agradável aos olhos. A plotadora IDE Arduino não
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD - Simulação de registrador de dados DHT11 em Proteus: 5 etapas
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD | Simulação DHT11 Data-logger em Proteus: Introdução: oi, aqui é Liono Maker, aqui está o link do YouTube. Estamos fazendo projetos criativos com Arduino e trabalhamos em sistemas embarcados.Data-Logger: Um data logger (também data-logger ou gravador de dados) é um dispositivo eletrônico que grava dados ao longo do tempo w
Como enviar dados DHT11 para o servidor MySQL usando NodeMCU: 6 etapas
Como enviar dados DHT11 para o servidor MySQL usando NodeMCU: Neste projeto, fizemos a interface do DHT11 com nodemcu e, em seguida, estamos enviando dados de dht11 que são umidade e temperatura para o banco de dados phpmyadmin
Arduino está enviando dados Dht11 para o servidor MySQL (PHPMYADMIN) usando Python: 5 etapas
Arduino está enviando dados Dht11 para o servidor MySQL (PHPMYADMIN) usando Python: neste projeto, fiz a interface do DHT11 com o arduino e, em seguida, estou enviando dados de dht11 que são umidade e temperatura para o banco de dados phpmyadmin. Ao contrário do nosso projeto anterior, não estamos usando nenhum escudo Ethernet neste caso, aqui estamos apenas lendo t
Como buscar dados de um banco de dados Firebase no NodeMCU: 7 etapas
Como buscar dados de um banco de dados Firebase no NodeMCU: para isso, vamos buscar dados de um banco de dados no Google Firebase e buscá-los usando um NodeMCU para análise posterior. REQUISITOS DO PROJETO: 1) NodeMCU ou ESP8266 Controller2) G-Mail conta para a criação de um banco de dados Firebase.3) Baixe o