Sommario:
- Passaggio 1: cose necessarie per il progetto
- Passaggio 2: scarica e installa Arduino IDE in Raspberry Pi
- Passaggio 3: codice per Arduino
- Passaggio 4: configurare Raspberry Pi
- Passaggio 5: Python Scipt
- Passaggio 6: diagramma del circuito
- Passaggio 7: risultato
Video: Traccia i dati DHT11 usando Raspberry Pi e Arduino UNO: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questa istruzione spiega come tracciare i dati DHT11 del sensore di temperatura utilizzando Arduino Uno e Raspberry Pi. In questo sensore di temperatura è collegato con Arduino Uno e Arduino Uno è collegato in serie con Raspberry Pi. In Raspberry Pi Side, le librerie matplotlib, numpy e drawow vengono utilizzate per tracciare i grafici.
Passaggio 1: cose necessarie per il progetto
1. Lampone Pi
2. Arduino Uno
3. Sensore di temperatura DHT11
4. Ponticelli
5. Tagliere
Passaggio 2: scarica e installa Arduino IDE in Raspberry Pi
Nota: - È possibile utilizzare l'IDE Arduino di Windows, Linux o Mac per caricare lo schizzo in Arduino UNO.
Il primo passo è installare Arduino IDE per quel browser aperto in Raspberry Pi e aprire il collegamento indicato di seguito
Arduino IDE precedente
Quindi scarica la versione Linux ARM ed estraila usando il comando
nome file tar -xf
Dopo l'estrazione vedrai una nuova directory. Qui sto usando arduino-1.8.2 IDE. Quindi vai alla directory usando il comando.
cd arduino-1.8.1
Per eseguire Arduino IDE, usa questo comando nella directory arduino-1.8.2
./arduino
Come usare le librerie
Per installare qualsiasi libreria in Arduino, è sufficiente scaricare la libreria e incollarla nella cartella delle librerie di arduino 1.8.2 ==>.
NOTA: - Assicurati che non ci sia (-) nella cartella della libreria, ad esempio (sensore DHT). Se c'è (-), rinominalo.
useremo due librerie in questo istruibile, DHT_Sensor e Adafruit_Sensor
Passaggio 3: codice per Arduino
Ora mettiamo Python e Arduino a parlare insieme. Per prima cosa abbiamo bisogno di un semplice programma per far sì che Arduino invii dati sulla porta seriale. Il seguente programma è un semplice programma che avrà il conteggio di Arduino e invierà i dati alla porta seriale.
Codice Arduino
#include "DHT.h" float tempC; // Variabile o mantenimento della temperatura in C float tempF; // Variabile per mantenere la temperatura nell'umidità F float; //Variabile per mantenere la lettura della pressione
#define DHTPIN 7 // a quale pin digitale siamo connessi
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Inizializza il sensore DHT.
DHT dht(DHTPIN, DHTTYPE);
void setup(){Serial.begin(115200); //accendi il monitor seriale
dht.begin(); //inizializzo dht }
void loop() {tempC = dht.readTemperature(); // Assicurati di dichiarare le tue variabili
umidità = dht.readHumidity(); // Leggi l'umidità
Serial.print(tempC);
Serial.print(", ");
Serial.print(umidità);
Serial.print("\n"); // per new linedelay(2000); //Pausa tra le letture. }
Una volta compilato lo schizzo, seleziona scheda e porta e caricalo.
Passaggio 4: configurare Raspberry Pi
Una volta caricato il codice, installa alcune librerie in modo da poter tracciare il grafico dei dati che provengono in serie da Arduino Uno.
1. PySerial è una libreria che fornisce supporto per le connessioni seriali su una varietà di dispositivi diversi. Per installarlo usa il comando.
Sudo apt-get install python-serial
2. Numpy è un pacchetto che definisce un oggetto array multidimensionale e le funzioni matematiche veloci associate che operano su di esso. Fornisce inoltre semplici routine per l'algebra lineare e la FFT (Fast Fourier Transform) e la generazione di numeri casuali sofisticati. Puoi installarlo in molti modi usando il pacchetto apt o pip. Qui sto installando usando pip perché prima dobbiamo installare pip
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
o se vuoi usare il pacchetto apt
sudo apt install python-numpy
3. Matplotlib è una libreria di plottaggio 2D che fornisce un'API orientata agli oggetti per incorporare grafici in applicazioni utilizzando toolkit GUI generici come Tkinter, wxPython, Qt o GTK+. Per installarlo usa il comando
sudo pip install matplotlib
o
sudo apt install python-matplotlib
4. Drawnow è generalmente usato per vedere i risultati dopo ogni iterazione poiché usiamo "imshow" in MATLAB. Per installarlo usa il comando
sudo pip install drawow
Passaggio 5: Python Scipt
Il prossimo passo è scrivere uno script Python per cui puoi usare qualsiasi editor per scriverlo.
1. Traccia i dati in un grafico
import serial # import Serial Library
import numpy # Importa numpy
import matplotlib.pyplot come plt #import libreria matplotlib
dall'importazione del prelievo *
tempC = #Array vuotoumidità =
arduino = serial. Serial("/dev/ttyACM0", 115200)
plt.ion() # modalità interattiva per tracciare il conteggio dei dati in tempo reale = 0
def makeFig(): #Crea una funzione che crei il nostro grafico desiderato
plt.ylim(20, 30) #Imposta i valori minimo e massimo
plt.title('Dati DHT11 in tempo reale') #Traccia il titolo
plt.grid(True) #Accendi la griglia
plt.ylabel('Temp C') #Set ylabel
plt.plot(tempC, 'b^-', label='Degree C') #traccia la temperatura
plt.legend(loc='in alto a destra') #traccia la legenda
plt2=plt.twinx() #Crea un secondo asse y
plt.ylim(50, 70) #Imposta i limiti del secondo asse y
plt2.plot(humidity, 'g*-', label='Humidity') #plot pressione dati
plt2.set_ylabel('Humidity') #label secondo asse y
plt2.ticklabel_format(useOffset=False)
plt2.legend(loc='in alto a sinistra')
while True: # ciclo While che si ripete all'infinito
while (arduino.inWaiting()==0): #Aspetta qui finché non ci sono dati
passa #non fare nulla
arduinoString = arduino.readline()
dataArray = arduinoString.split(', ') #Dividilo in un array
temp = float(dataArray[0])
ronzio = float(dataArray[1])
tempC.append(temp)
umidità.append (ronzio)
disegnato (makeFig)
plt.pause(.000001)
count=count+1 if(count>20): #prende solo gli ultimi 20 dati se i dati sono di più, verranno visualizzati per primi
tempC.pop(0)
umidità.pop(0)
2. Per tracciare l'umidità e la temperatura separatamente
import serial # import Serial Library
import numpy # Importa numpy
import matplotlib.pyplot come plt #import libreria matplotlib
dall'importazione del prelievo *
tempC = #array vuoto
umidità =
arduino = serial. Serial("/dev/ttyACM0", 115200) #Porta seriale a cui è connesso arduino e Baudrate
plt.ion() #Dì a matplotlib che vuoi che la modalità interattiva tracci i dati in tempo reale
def CreatePlot(): #Crea una funzione che crei il nostro grafico desiderato
plt.subplot(2, 1, 1) #Altezza, Larghezza, Primo grafico
plt.ylim(22, 34) #Imposta i valori minimo e massimo
plt.title('Dati DHT11 in tempo reale') #Traccia il titolo
plt.grid(True) #Accendi la griglia
plt.ylabel('Temp C') #Set ylabels
plt.plot(tempC, 'b^-', label='Degree C') #traccia la temperatura
plt.legend(loc='superiore al centro') #traccia la legenda
plt.subplot(2, 1, 2) # Altezza, Larghezza, Secondo grafico
plt.grid (Vero)
plt.ylim(45, 70) #Imposta i limiti del secondo asse y
plt.plot(humidity, 'g*-', label='Humidity (g/m^3)') #plot umidità data
plt.ylabel('Humidity (g/m^3)') #label secondo asse y
plt.ticklabel_format(useOffset=False) #per interrompere la scalabilità automatica dell'asse y
plt.legend(loc='centro superiore')
while True: # ciclo While che si ripete all'infinito
while (arduino.inWaiting()==0): #Attendi qui finché non ci sono dati passati #non fare nulla
arduinoString = arduino.readline() #legge i dati dalla porta seriale
dataArray = arduinoString.split(', ') #Dividilo in un array
temp = float(dataArray[0]) #Converti il primo elemento in un numero mobile e inserisci temp
hum = float(dataArray[1]) #Converti il secondo elemento in un numero mobile e inserisci hum
tempC.append(temp) #Costruisci il nostro array tempC aggiungendo la lettura temporanea
umidità.append(hum) #Costruire il nostro array di umidità aggiungendo la lettura del ronzio
drawow(CreaPlot)
plt.pause(.000001)
conta=conta+1
if(count>20): #prende solo gli ultimi 20 dati se i dati sono di più, verranno visualizzati per primi
tempC.pop(0) # estrae il primo elemento
umidità.pop(0)
Passaggio 6: diagramma del circuito
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> FUORI
Consigliato:
Oscilloscopio a doppia traccia: 11 passaggi (con immagini)
Oscilloscopio a doppia traccia: quando ho costruito il mio precedente mini oscilloscopio volevo vedere quanto bene potevo far funzionare il mio microcontrollore ARM più piccolo, un STM32F030 (F030), e ha fatto un buon lavoro. In uno dei commenti è stato suggerito che una "Pillola Blu" con un STM32F103
Crea bellissimi grafici dai dati di Arduino in tempo reale (e salva i dati in Excel): 3 passaggi
Crea bellissimi grafici dai dati di Arduino in tempo reale (e salva i dati in Excel): a tutti noi piace giocare con la nostra funzione P…lotter nell'IDE di Arduino. Tuttavia, sebbene possa essere utile per le applicazioni di base, i dati vengono cancellati man mano che più si aggiungono punti e non è particolarmente gradevole alla vista. Il plotter Arduino IDE non
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card - Simulazione del data logger DHT11 in Proteus: 5 passaggi
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card | Simulazione DHT11 Data-logger in Proteus: Introduzione: ciao, sono Liono Maker, ecco il link YouTube. Stiamo realizzando un progetto creativo con Arduino e lavoriamo su sistemi embedded.Data-Logger: Un data logger (anche data-logger o data recorder) è un dispositivo elettronico che registra i dati nel tempo w
Traccia la qualità dell'aria usando Grafana e Raspberry Pi: 7 passaggi
Monitora la qualità dell'aria utilizzando Grafana e Raspberry Pi: stavo cercando un piccolo progetto IOT e un amico mi ha consigliato di dare un'occhiata a questo tutorial: https://dzone.com/articles/raspberry-pi-iot-sensor… consiglia di seguire il tutorial da seguire nella configurazione di un Raspberry Pi per il monitoraggio
Registra dati e traccia un grafico online utilizzando NodeMCU, MySQL, PHP e Chartjs.org: 4 passaggi
Registra dati e traccia un grafico online utilizzando NodeMCU, MySQL, PHP e Chartjs.org: questo Instructable descrive come possiamo utilizzare la scheda Node MCU per raccogliere dati da più sensori, inviare questi dati a un file PHP ospitato che quindi aggiunge i dati a un database MySQL. I dati possono quindi essere visualizzati online come grafico, utilizzando chart.js.A ba