![DHT11-gegevens plotten met Raspberry Pi en Arduino UNO - Ajarnpa DHT11-gegevens plotten met Raspberry Pi en Arduino UNO - Ajarnpa](https://i.howwhatproduce.com/images/004/image-9255-8-j.webp)
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
![Plot DHT11-gegevens met behulp van Raspberry Pi en Arduino UNO Plot DHT11-gegevens met behulp van Raspberry Pi en Arduino UNO](https://i.howwhatproduce.com/images/004/image-9255-9-j.webp)
Deze instructable legt uit hoe ik temperatuursensor DHT11-gegevens plot met Arduino Uno en Raspberry Pi. In deze temperatuursensor is verbonden met Arduino Uno en Arduino Uno is serieel verbonden met Raspberry Pi. Bij Raspberry Pi Side worden matplotlib, numpy en drawow bibliotheken gebruikt om grafieken te plotten.
Stap 1: Dingen die nodig zijn voor het project
![Dingen die nodig zijn voor het project Dingen die nodig zijn voor het project](https://i.howwhatproduce.com/images/004/image-9255-10-j.webp)
![Dingen die nodig zijn voor het project Dingen die nodig zijn voor het project](https://i.howwhatproduce.com/images/004/image-9255-11-j.webp)
![Dingen die nodig zijn voor het project Dingen die nodig zijn voor het project](https://i.howwhatproduce.com/images/004/image-9255-12-j.webp)
1. Raspberry Pi
2. Arduino Uno
3. DHT11-temperatuursensor
4. Doorverbindingsdraden
5. Breadboard
Stap 2: Download en installeer Arduino IDE in Raspberry Pi
![Download en installeer Arduino IDE in Raspberry Pi Download en installeer Arduino IDE in Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-13-j.webp)
![Download en installeer Arduino IDE in Raspberry Pi Download en installeer Arduino IDE in Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-14-j.webp)
![Download en installeer Arduino IDE in Raspberry Pi Download en installeer Arduino IDE in Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-15-j.webp)
Opmerking: - U kunt Arduino IDE van Windows, Linux of Mac gebruiken om schetsen in Arduino UNO te uploaden.
De eerste stap is om Arduino IDE voor die open browser in Raspberry Pi te installeren en de onderstaande link te openen:
Arduino Vorige IDE
Download vervolgens de Linux ARM-versie en pak deze uit met de opdracht
tar -xf bestandsnaam
Na het uitpakken ziet u een nieuwe map. Hier gebruik ik arduino-1.8.2 IDE. Ga vervolgens naar de map met behulp van de opdracht.
cd arduino-1.8.1
Gebruik deze opdracht in de directory arduino-1.8.2 om Arduino IDE uit te voeren
./arduino
Bibliotheken gebruiken
Om bibliotheken in Arduino te installeren, downloadt u eenvoudig de bibliotheek en plakt u deze in de map arduino 1.8.2 ==> bibliotheken.
OPMERKING:- Zorg ervoor dat er geen (-) in de bibliotheekmap staat voor bijvoorbeeld (DHT-sensor). Als er een (-) is, hernoem deze dan.
we zullen twee bibliotheken gebruiken in deze instructable, DHT_Sensor en Adafruit_Sensor
Stap 3: Coderen voor Arduino
![Code voor Arduino Code voor Arduino](https://i.howwhatproduce.com/images/004/image-9255-16-j.webp)
Laten we python en Arduino nu samen laten praten. Ten eerste hebben we een eenvoudig programma nodig om de Arduino gegevens over de seriële poort te laten verzenden. Het volgende programma is een eenvoudig programma dat de Arduino laat tellen en de gegevens naar de seriële poort stuurt.
Arduino-code
#include "DHT.h" float tempC; // Variabele of houdtemperatuur in C float tempF; // Variabele voor het vasthouden van temp in F float vochtigheid; // Variabele voor het vasthouden van de drukmeting
#define DHTPIN 7 // met welke digitale pin we zijn verbonden
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialiseer de DHT-sensor.
DHT dht(DHTPIN, DHTTYPE);
void setup(){Serial.begin(115200); // zet seriële monitor aan
dht.begin(); // initialiseer dht}
void loop() {tempC = dht.readTemperature(); // Zorg ervoor dat u uw variabelen declareert
vochtigheid = dht.readHumidity(); // Lees Vochtigheid
Serial.print(tempC);
Serieel.print(", ");
Seriële.afdruk (vochtigheid);
Serieel.print("\n"); // voor nieuwe linedelay (2000); // Pauze tussen metingen. }
Nadat de schets is gecompileerd, selecteert u het bord en de poort en uploadt u deze.
Stap 4: Stel Raspberry Pi in
![Raspberry Pi instellen Raspberry Pi instellen](https://i.howwhatproduce.com/images/004/image-9255-17-j.webp)
Nadat de code is geüpload, installeert u enkele bibliotheken zodat we de grafiek van gegevens kunnen plotten die serieel van Arduino Uno komen.
1. PySerial is een bibliotheek die ondersteuning biedt voor seriële verbindingen over een groot aantal verschillende apparaten. Gebruik het commando om het te installeren.
Sudo apt-get install python-serial
2. Numpy is een pakket dat een multidimensionaal array-object definieert en bijbehorende snelle wiskundige functies die erop werken. Het biedt ook eenvoudige routines voor lineaire algebra en FFT (Fast Fourier Transform) en geavanceerde generatie van willekeurige getallen. Je kunt het op veel manieren installeren, ofwel met het apt-pakket of met pip. Hier ben ik aan het installeren met pip, daarvoor moeten we eerst pip installeren
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
of als je het apt-pakket wilt gebruiken
sudo apt install python-numpy
3. Matplotlib is een 2D-plotbibliotheek die een objectgeoriënteerde API biedt voor het inbedden van plots in toepassingen met behulp van algemene GUI-toolkits zoals Tkinter, wxPython, Qt of GTK+. Om het te installeren gebruik commando
sudo pip install matplotlib
of
sudo apt install python-matplotlib
4. Drawnow wordt over het algemeen gebruikt om de resultaten na elke iteratie te zien, aangezien we "imshow" gebruiken in MATLAB. Om het te installeren gebruik commando
sudo pip install Drawow
Stap 5: Python-script
![Python-script Python-script](https://i.howwhatproduce.com/images/004/image-9255-18-j.webp)
![Python-script Python-script](https://i.howwhatproduce.com/images/004/image-9255-19-j.webp)
De volgende stap is het schrijven van een python-script waarvoor je elke editor kunt gebruiken om het te schrijven.
1. Plot gegevens in één grafiek
importeer serienummer # importeer seriële bibliotheek
import numpy # Importeer numpy
importeer matplotlib.pyplot als plt #import matplotlib bibliotheek
van getekendeow import *
tempC = #Empty arrayhumidity =
arduino = serieel. Serial("/dev/ttyACM0", 115200)
plt.ion() # interactieve modus om live datacount te plotten = 0
def makeFig(): #Maak een functie die onze gewenste plot maakt
plt.ylim(20, 30) #Set y min en max waarden
plt.title('Real Time DHT11 Data') #Plot de titel
plt.grid(True) #Schakel het raster in
plt.ylabel('Temp C') #Set ylabel
plt.plot(tempC, 'b^-', label='Grade C') #plot de temperatuur
plt.legend(loc='rechtsboven') #plot the legend
plt2=plt.twinx() #Maak een tweede y-as
plt.ylim(50, 70) #Stel de limieten van de tweede y-as in
plt2.plot(vochtigheid, 'g*-', label='Vochtigheid') #plot drukgegevens
plt2.set_ylabel('Vochtigheid') #label tweede y-as
plt2.ticklabel_format(useOffset=False)
plt2.legend(loc='linksboven')
while True: # While-lus die voor altijd doorloopt
while (arduino.inWaiting()==0): #Wacht hier totdat er gegevens zijn
pas #niets doen
arduinoString = arduino.readline()
dataArray = arduinoString.split(', ') #Split het in een array
temp = zwevend(dataArray[0])
brom = float(dataArray[1])
tempC.toevoegen(temp)
vochtigheid.append(hum)
getekende (makeFig)
plt.pauze(.000001)
count=count+1 if(count>20): #neem alleen de laatste 20 gegevens als er meer gegevens zijn, deze zullen eerst verschijnen
tempC.pop(0)
vochtigheid.pop(0)
2. Om vochtigheid en temperatuur afzonderlijk te plotten
importeer serienummer # importeer seriële bibliotheek
import numpy # Importeer numpy
importeer matplotlib.pyplot als plt #import matplotlib bibliotheek
van getekendeow import *
tempC = #Lege array
vochtigheid =
arduino = serial. Serial("/dev/ttyACM0", 115200) #Seriële poort waarop Arduino is aangesloten en Baudrate
plt.ion() #Vertel matplotlib dat u in de interactieve modus live gegevens wilt plotten
def CreatePlot(): #Maak een functie die onze gewenste plot maakt
plt.subplot(2, 1, 1) #Hoogte, Breedte, Eerste plot
plt.ylim(22, 34) #Stel y min en max waarden in
plt.title('Real Time DHT11 Data') #Plot de titel
plt.grid(True) #Schakel het raster in
plt.ylabel('Temp C') #Set ylabels
plt.plot(tempC, 'b^-', label='Grade C') #plot de temperatuur
plt.legend(loc='upper center') #plot the legend
plt.subplot(2, 1, 2) # Hoogte, Breedte, Tweede plot
plt.grid (waar)
plt.ylim(45, 70) #Stel de limieten van de tweede y-as in
plt.plot(humidity, 'g*-', label='Vochtigheid (g/m^3)') #plot vochtigheidsgegevens
plt.ylabel('Vochtigheid (g/m^3)') #label tweede y-as
plt.ticklabel_format(useOffset=False) #om het automatisch schalen van de y-as te stoppen
plt.legend(loc='bovenste midden')
while True: # While-lus die voor altijd doorloopt
while (arduino.inWaiting()==0): #Wacht hier tot er een gegevenspas is #niets doen
arduinoString = arduino.readline() #lees de gegevens van de seriële poort
dataArray = arduinoString.split(', ') #Split het in een array
temp = float(dataArray[0]) #Converteer eerste element naar zwevend getal en zet in temp
hum = float(dataArray[1]) #Converteer tweede element naar zwevend getal en zet in hum
tempC.append(temp) #Bouw onze tempC-array door tijdelijke uitlezing toe te voegen
vochtigheid.append(hum) #Ons vochtigheidsarray bouwen door bromwaarde toe te voegen
Drawow(CreatePlot)
plt.pauze(.000001)
tel = tel+1
if(count>20): #neem alleen de laatste 20 gegevens als er meer gegevens zijn, wordt het eerst weergegeven
tempC.pop(0) # pop-out eerste element
vochtigheid.pop(0)
Stap 6: Schakelschema
![Schakelschema Schakelschema](https://i.howwhatproduce.com/images/004/image-9255-20-j.webp)
![Schakelschema Schakelschema](https://i.howwhatproduce.com/images/004/image-9255-21-j.webp)
![Schakelschema Schakelschema](https://i.howwhatproduce.com/images/004/image-9255-22-j.webp)
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> UIT
Aanbevolen:
Realtime grafiek plotten op Android vanaf Arduino via HC-05: 3 stappen
![Realtime grafiek plotten op Android vanaf Arduino via HC-05: 3 stappen Realtime grafiek plotten op Android vanaf Arduino via HC-05: 3 stappen](https://i.howwhatproduce.com/images/001/image-2837-9-j.webp)
Realtime grafiek plotten op Android van Arduino via HC-05: Hallo, hier is een tutorial over hoe je een realtime grafiek met waarden van een microcontroller zoals een Arduino naar de app kunt plotten. Het gebruikt een Bluetooth-module zoals de HC-05 om te fungeren als een berichtenapparaat om de gegevens tussen de Ar
Een DHT11/DHT22-sensor verbinden met de cloud met een op ESP8266 gebaseerd bord: 9 stappen
![Een DHT11/DHT22-sensor verbinden met de cloud met een op ESP8266 gebaseerd bord: 9 stappen Een DHT11/DHT22-sensor verbinden met de cloud met een op ESP8266 gebaseerd bord: 9 stappen](https://i.howwhatproduce.com/images/002/image-3715-52-j.webp)
Een DHT11/DHT22-sensor verbinden met de cloud met een op ESP8266 gebaseerd bord: In het vorige artikel heb ik mijn op ESP8266 gebaseerde NodeMCU-bord aangesloten op een Cloud4RPi-service. Nu is het tijd voor een echt project
Interface DHT11 met Arduino: 4 stappen
![Interface DHT11 met Arduino: 4 stappen Interface DHT11 met Arduino: 4 stappen](https://i.howwhatproduce.com/images/002/image-5564-25-j.webp)
Interface DHT11 met Arduino: In deze Instructables leert u hoe u de DHT11-vochtigheids- en temperatuursensor op uw Arduino UNO kunt instellen. En leer hoe de vochtigheidssensor werkt en hoe u de uitgangswaarden van de seriële monitor kunt controleren Beschrijving: De DHT11 detecteert wa
Dht11 met Arduino: 4 stappen
![Dht11 met Arduino: 4 stappen Dht11 met Arduino: 4 stappen](https://i.howwhatproduce.com/images/003/image-6737-21-j.webp)
Dht11 Con Arduino: Hola bienvenidos, en este apartado se enseñara como usar el módulodhl11 para Arduino ya sea que tengas el original de Adafruit o el chino o genérico ambos funcionan igual y sus pines; N
Pro-mini programmeren met Uno (Arduino Basics): 7 stappen (met afbeeldingen)
![Pro-mini programmeren met Uno (Arduino Basics): 7 stappen (met afbeeldingen) Pro-mini programmeren met Uno (Arduino Basics): 7 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/001/image-08-102-j.webp)
Programma Pro-mini met Uno (Arduino Basics): Hallo allemaal, In deze instructable wil ik je mijn ervaring delen met mijn onlangs gekochte Arduino pro-mini en hoe ik erin slaagde om de code er voor de eerste keer naar te uploaden, met behulp van mijn oude Arduino Uno.Arduino pro-mini heeft de volgende kenmerken:Het is i