INHOUDSOPGAWE:
- Stap 1: Dinge wat nodig is vir die projek
- Stap 2: Laai en installeer Arduino IDE in Raspberry Pi
- Stap 3: Kode vir Arduino
- Stap 4: Stel Raspberry Pi op
- Stap 5: Python Scipt
- Stap 6: Kringdiagram
- Stap 7: Resultaat
Video: Stel DHT11 -data op met Raspberry Pi en Arduino UNO: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie instruksies verduidelik hoe ek die temperatuur sensor DHT11 data met behulp van Arduino Uno en Raspberry Pi plot. In hierdie temperatuursensor is verbinding met Arduino Uno en Arduino Uno is serieel verbind met Raspberry Pi. By Raspberry Pi Side word matplotlib-, numpy- en drawow -biblioteke gebruik om grafieke te teken.
Stap 1: Dinge wat nodig is vir die projek
1. Framboos Pi
2. Arduino Uno
3. DHT11 Temperatuursensor
4. Springdrade
5. Broodbord
Stap 2: Laai en installeer Arduino IDE in Raspberry Pi
Nota:- U kan Arduino IDE van Windows, Linux of Mac gebruik om skets in Arduino UNO op te laai.
Die eerste stap is om Arduino IDE vir die oop blaaier in Raspberry Pi te installeer en die onderstaande skakel oop te maak
Arduino Vorige IDE
Laai dan die Linux ARM -weergawe af en haal dit uit met die opdrag
tar -xf lêernaam
Na uittreksel sien u 'n nuwe gids. Hier gebruik ek arduino-1.8.2 IDE. Gaan dan na die gids deur die opdrag te gebruik.
cd arduino-1.8.1
Gebruik hierdie opdrag in die arduino-1.8.2-gids om Arduino IDE uit te voer
./arduino
Hoe om biblioteke te gebruik
Om 'n biblioteek in Arduino te installeer, laai die biblioteek af en plak dit in die gids arduino 1.8.2 ==> biblioteke.
OPMERKING:-Maak seker dat daar geen (-) in die biblioteekmap vir ex (DHT-sensor) is nie. As daar enige (-) is, hernoem dit.
ons sal twee biblioteke in hierdie instruksies gebruik, DHT_Sensor en Adafruit_Sensor
Stap 3: Kode vir Arduino
Laat ons nou luislang en Arduino aan die praat kry. Eerstens benodig ons 'n eenvoudige program om die Arduino -data oor die seriële poort te stuur. Die volgende program is 'n eenvoudige program met die Arduino -telling en stuur die data na die seriële poort.
Arduino -kode
#sluit 'DHT.h' vlot tempC in; // Veranderlike of hou temp in C float tempF; // Veranderlik om temperatuur in F -vlottervochtigheid te hou; // Veranderlik vir drukdrukmeting
#define DHTPIN 7 // aan watter digitale pen ons gekoppel is
#define DHTTYPE DHT11 // DHT 11
//#definieer DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#definieer DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialiseer DHT -sensor.
DHT dht (DHTPIN, DHTTYPE);
ongeldige opstelling () {Serial.begin (115200); // skakel die seriële monitor aan
dht.begin (); // initialiseer dht}
leemte -lus () {tempC = dht.readTemperature (); // Maak seker dat u u veranderlikes verklaar
humiditeit = dht.readHumidity (); // Lees Humiditeit
Serial.print (tempC);
Serial.print (",");
Reeks.afdruk (humiditeit);
Serial.print ("\ n"); // vir nuwe gevoerde lêer (2000); // Pouse tussen lesings. }
Sodra die skets saamgestel is, kies die bord en poort en laai dit op.
Stap 4: Stel Raspberry Pi op
Sodra die kode opgelaai is, installeer 'n paar biblioteke sodat ons 'n grafiek kan teken van die data wat in serie uit die Arduino Uno kom.
1. PySerial is 'n biblioteek wat ondersteuning bied vir reeksverbindings oor verskillende toestelle. Gebruik die opdrag om dit te installeer.
Sudo apt-get install python-reeks
2. Numpy is 'n pakket wat 'n multidimensionele skikkingvoorwerp en gepaardgaande vinnige wiskundige funksies definieer wat daarop werk. Dit bied ook eenvoudige roetines vir lineêre algebra en FFT (Fast Fourier Transform) en gesofistikeerde generering van ewekansige getalle. U kan dit op baie maniere installeer, met behulp van 'n geskikte pakket of pip. Hier installeer ek met behulp van pip, daarvoor moet ons eers pip installeer
sudo apt-get install python-pip python-dev build-essential
sudo pip installeer numpy
of as u 'n geskikte pakket wil gebruik
sudo apt installeer python-numpy
3. Matplotlib is 'n 2D-plotbiblioteek wat 'n objekgeoriënteerde API bied om erwe in programme in te sluit deur gebruik te maak van algemene GUI-toolkits soos Tkinter, wxPython, Qt of GTK+. Gebruik die opdrag om dit te installeer
sudo pip installeer matplotlib
of
sudo apt installeer python-matplotlib
4. Drawnow word gewoonlik gebruik om die resultate na elke herhaling te sien, aangesien ons 'imshow' in MATLAB gebruik. Gebruik die opdrag om dit te installeer
sudo pip installeer drawow
Stap 5: Python Scipt
Die volgende stap is om 'n python -script te skryf, waarvoor u enige redakteur kan gebruik om dit te skryf.
1. Teken data in een grafiek
invoer reeks # invoer reeksbiblioteek
invoer numpy # Invoer numpy
voer matplotlib.pyplot in as plt #import matplotlib biblioteek
vanaf die invoer *
tempC = #Leë reeks humiditeit =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # interaktiewe modus om lewendige datacount = 0 op te stel
def makeFig (): #Skep 'n funksie wat ons gewenste plot maak
plt.ylim (20, 30) #Stel y min en maksimum waardes
plt.title ('Real Time DHT11 -data') #Plaas die titel
plt.grid (waar) #Skakel die rooster aan
plt.ylabel ('Temp C') #Stel etiket in
plt.plot (tempC, 'b^-', label = 'Graad C') #plot die temperatuur
plt.legend (loc = 'regs bo') #plot die legende
plt2 = plt.twinx () #Skep 'n tweede y -as
plt.ylim (50, 70) #Stel die grense van die tweede y -as
plt2.plot (humiditeit, 'g*-', label = 'Humiditeit') #plotdrukdata
plt2.set_ylabel ('humiditeit') #etiket tweede y -as
plt2.ticklabel_format (useOffset = Onwaar)
plt2.legend (loc = 'links bo')
terwyl dit waar is: # Terwyl die lus vir ewig loop
terwyl (arduino.inWaiting () == 0): #Wag hier totdat daar data is
slaag #doen niks
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Verdeel dit in 'n skikking
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.aanhang (temp)
humiditeit. voeg by (neurie)
tekening (makeFig)
pouse (.000001)
count = count+1 if (count> 20): #neem slegs die laaste 20 data, as die data meer is, verskyn dit eers
tempC.pop (0)
humiditeit.pop (0)
2. Om humiditeit en temperatuur apart te teken
invoer reeks # invoer reeksbiblioteek
invoer numpy # Invoer numpy
voer matplotlib.pyplot in as plt #import matplotlib biblioteek
vanaf invoer *
tempC = #leë skikking
humiditeit =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Seriële poort waarop arduino gekoppel is en Baudrate
plt.ion () #Vertel matplotlib dat u wil hê dat die interaktiewe modus lewendige data moet opstel
def CreatePlot (): #Skep 'n funksie wat ons gewenste plot maak
plt.subplot (2, 1, 1) #Hoogte, breedte, eerste plot
plt.ylim (22, 34) #Stel y min en maksimum waardes
plt.title ('Real Time DHT11 -data') #Plaas die titel
plt.grid (waar) #Skakel die rooster aan
plt.ylabel ('Temp C') #Stel etikette
plt.plot (tempC, 'b^-', label = 'Graad C') #plot die temperatuur
plt.legend (loc = 'upper center') #plot die legende
plt.subplot (2, 1, 2) # Hoogte, breedte, tweede plot
plt.grid (waar)
plt.ylim (45, 70) #Stel die grense van die tweede y -as
plt.plot (humiditeit, 'g*-', label = 'Humiditeit (g/m^3)') #plot humiditeitsdata
plt.ylabel ('Humidity (g/m^3)') #label tweede y -as
plt.ticklabel_format (useOffset = Onwaar) #tom outoskaal y -as te stop
plt.legend (loc = 'boonste middel')
terwyl dit waar is: # Terwyl die lus vir ewig loop
while (arduino.inWaiting () == 0): #Wag hier totdat daar data slaag #doen niks
arduinoString = arduino.readline () #lees die data vanaf die seriële poort
dataArray = arduinoString.split (',') #Verdeel dit in 'n skikking
temp = float (dataArray [0]) #Skakel die eerste element om in 'n drywende getal en sit dit in temp
hum = float (dataArray [1]) #Skakel die tweede element om in 'n drywende getal en sit hum
tempC.append (temp) #Bou ons tempC -skikking op deur temp -lees by te voeg
humiditeit. voeg by (neurie) #Bou ons humiditeitsreeks op deur die neurielesing by te voeg
drawow (CreatePlot)
pouse (.000001)
tel = tel+1
as (telling> 20): #neem slegs die laaste 20 data, as die data meer is, verskyn dit eerste
tempC.pop (0) # pop -out eerste element
humiditeit.pop (0)
Stap 6: Kringdiagram
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> UIT
Aanbeveel:
Hoe om OSMC op te stel met Hyperion op Raspberry Pi met WS2812b Led Strip: 8 stappe
Hoe om OSMC op te stel met Hyperion op Raspberry Pi met WS2812b Led Strip: Soms is ek baie goed in Engels, soms nie … Eerste dinge eerste. Dit is my eerste onderrig en Engels is nie my moedertaal nie, so wees asseblief nie te hard met my nie. Dit gaan nie oor hoe om die raam te bou nie, dit is maklik. Dit gaan oor installasie
ESP32 Gebaseerde M5Stack M5stick C Weermonitor Met DHT11 - Monitor temperatuur humiditeit en hitte-indeks op M5stick-C met DHT11: 6 stappe
ESP32 -gebaseerde M5Stack M5stick C -weermonitor met DHT11 | Monitor temperatuurvochtigheid en hitte-indeks op M5stick-C Met DHT11: Hallo ouens, in hierdie instruksies leer ons hoe om 'n koppelvlak van DHT11-temperatuursensor met m5stick-C ('n ontwikkelingsbord deur m5stack) te plaas en dit op die skerm van m5stick-C te vertoon. In hierdie handleiding sal ons dus die temperatuur, humiditeit en amp lees; hitte ek
Installeer Raspbian in Raspberry Pi 3 B Sonder HDMI - Aan die gang met Raspberry Pi 3B - Stel u Framboos Pi 3: 6 -stappe op
Installeer Raspbian in Raspberry Pi 3 B Sonder HDMI | Aan die gang met Raspberry Pi 3B | Die opstel van u Raspberry Pi 3: Soos sommige van u weet Raspberry Pi-rekenaars is redelik wonderlik en u kan die hele rekenaar net op 'n klein bordjie kry. Die Raspberry Pi 3 Model B beskik oor 'n quad-core 64-bit ARM Cortex A53 geklok op 1,2 GHz. Dit bring die Pi 3 ongeveer 50
Orange PI HowTo: Stel dit in gebruik met 'n 5 "HDMI TFT LCD -skerm: 8 stappe (met foto's)
Orange PI: hoe om dit te gebruik met 'n 5 "HDMI TFT LCD -skerm Terwyl ander selfs geen struikelblokke opgemerk het nie. Die sleutel is dat daar
Stel filter vir webinhoud in vier stappe op met Ubuntu: 5 stappe
Stel webinhoudfiltering in vier stappe op met Ubuntu: As IT -man is een van die algemeenste dinge wat kollegas my vra, hoe hulle kan beheer watter webwerwe hul kinders aanlyn kan verkry. Dit is baie maklik om te doen en gratis met Ubuntu Linux, dansguardian en tinyproxy