
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Šī pamācība izskaidro, kā es uzzīmēju temperatūras sensora DHT11 datus, izmantojot Arduino Uno un Raspberry Pi. Šajā temperatūras sensors ir savienots ar Arduino Uno, un Arduino Uno ir savienots sērijveidā ar Raspberry Pi. Vietnē Raspberry Pi Side diagrammu attēlošanai tiek izmantotas matplotlib, numpy un drawow bibliotēkas.
1. solis: Projektam nepieciešamās lietas



1. Aveņu Pi
2. Arduino Uno
3. DHT11 temperatūras sensors
4. Jumper vadi
5. Maizes dēlis
2. darbība: lejupielādējiet un instalējiet Arduino IDE Raspberry Pi



Piezīme:- Lai izmantotu skices augšupielādi Arduino UNO, varat izmantot Windows, Linux vai Mac Arduino IDE.
Pirmais solis ir instalēt Arduino IDE šai atvērtajai pārlūkprogrammai Raspberry Pi un atvērt tālāk norādīto saiti
Arduino Iepriekšējā IDE
Pēc tam lejupielādējiet Linux ARM versiju un izvelciet to, izmantojot komandu
tar -xf faila nosaukums
Pēc izvilkšanas jūs redzēsit jaunu direktoriju. Šeit es izmantoju arduino-1.8.2 IDE. Pēc tam dodieties uz direktoriju, izmantojot komandu.
cd arduino-1.8.1
Lai palaistu Arduino IDE, izmantojiet šo komandu direktorijā arduino-1.8.2
./arduino
Kā izmantot bibliotēkas
Lai instalētu Arduino bibliotēkas, vienkārši lejupielādējiet bibliotēku un ielīmējiet mapē arduino 1.8.2 ==> bibliotēkas.
PIEZĪME:-Pārliecinieties, vai bibliotēkas mapē ex (DHT sensors) nav (-). Ja ir kāds (-), pārdēvējiet to.
šajā pamācībā izmantosim divas bibliotēkas - DHT_Sensor un Adafruit_Sensor
3. darbība: kods Arduino

Tagad ļaujiet Python un Arduino sarunāties kopā. Pirmkārt, mums ir nepieciešama vienkārša programma, lai Arduino nosūtītu datus pa seriālo portu. Šī programma ir vienkārša programma, kurai būs Arduino skaits un dati tiks nosūtīti uz seriālo portu.
Arduino kods
#iekļaut "DHT.h" pludiņa tempC; // Mainīga vai turēšanas temperatūra C pludiņa tempF; // Mainīgs temperatūras turēšanai F pludiņa mitrumā; // Mainīgais spiediena rādījumu noturēšanai
#define DHTPIN 7 // ar kādu ciparu tapu esam savienoti
#define DHTTYPE DHT11 // DHT 11
//#definēt DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#definēt DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicializēt DHT sensoru.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // ieslēgt seriālo monitoru
dht.begin (); // inicializēt dht}
void loop () {tempC = dht.readTemperature (); // Noteikti deklarējiet savus mainīgos
mitrums = dht.readHumidity (); // Lasīt mitrumu
Sērijas nospiedums (tempC);
Serial.print (",");
Sērijas nospiedums (mitrums);
Serial.print ("\ n"); // jaunam linedelay (2000); // Pauze starp lasījumiem. }
Kad skice ir apkopota, atlasiet dēli un portu un augšupielādējiet to.
4. darbība: iestatiet Raspberry Pi

Kad kods ir augšupielādēts, instalējiet dažas bibliotēkas, lai mēs varētu uzzīmēt datu grafiku, kas sērijveidā nāk no Arduino Uno.
1. PySerial ir bibliotēka, kas nodrošina atbalstu sērijas savienojumiem dažādās ierīcēs. Lai to instalētu, izmantojiet komandu.
Sudo apt-get install python-serial
2. Numpy ir pakete, kas definē daudzdimensiju masīva objektu un ar to saistītās ātrās matemātikas funkcijas. Tas arī nodrošina vienkāršas procedūras lineārai algebrai un FFT (ātra Furjē transformācija) un sarežģītu nejaušu skaitļu ģenerēšanu. To var instalēt daudzos veidos, izmantojot apt paketi vai pip. Šeit es instalēju, izmantojot pip, vispirms mums ir jāinstalē pip
sudo apt-get install python-pip python-dev build-essential
sudo pip instalēt numpy
vai ja vēlaties izmantot apt paketi
sudo apt instalēt python-numpy
3. Matplotlib ir 2D zīmēšanas bibliotēka, kas nodrošina objektorientētu API grafiku iegulšanai lietojumprogrammās, izmantojot vispārējas nozīmes GUI rīku komplektus, piemēram, Tkinter, wxPython, Qt vai GTK+. Lai to instalētu, izmantojiet komandu
sudo pip instalēt matplotlib
vai
sudo apt instalēt python-matplotlib
4. Drawnow parasti tiek izmantots, lai redzētu rezultātus pēc katras iterācijas, jo MATLAB lietojam "imshow". Lai to instalētu, izmantojiet komandu
sudo pip instalēšanas izvilkums
5. darbība: Python Scipt


Nākamais solis ir uzrakstīt python skriptu, kura rakstīšanai varat izmantot jebkuru redaktoru.
1. Zīmējiet datus vienā grafikā
importēt sēriju # importēt sērijas bibliotēku
import numpy # Importēt numpy
importēt matplotlib.pyplot kā plt #import matplotlib bibliotēku
no vilkšanas importa *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # interaktīvs režīms tiešo datu skaitīšanai = 0
def makeFig (): #Izveidojiet funkciju, kas veido mūsu vēlamo grafiku
plt.ylim (20, 30) #Iestatiet y min un max vērtības
plt.title ('Reālā laika DHT11 dati') #Plot virsrakstu
plt.grid (True) #Ieslēdziet režģi
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b^-', label = 'C grāds') #plotējiet temperatūru
plt.legend (loc = 'augšējais labais') #plot Leģenda
plt2 = plt.twinx () #Izveidojiet otro y asi
plt.ylim (50, 70) #Iestatiet otrās y ass robežas
plt2.plot (mitrums, 'g*-', etiķete = 'Mitrums') #plot spiediena dati
plt2.set_ylabel ('Mitrums') #iezīme otrā y ass
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'augšējais kreisais')
kamēr True: # Kamēr cilpa, kas cilpas uz visiem laikiem
while (arduino.inWaiting () == 0): #Pagaidiet šeit, līdz būs dati
iet #nedari neko
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Sadaliet to masīvā
temp = pludiņš (dataArray [0])
hum = pludiņš (dataArray [1])
tempC.append (temp)
mitrums. pievienot (hum)
izlozēts (makeFig)
plt. pauze (.000001)
skaits = skaits+1, ja (skaits> 20): #tikai ņemiet pēdējos 20 datus, ja datu ir vairāk, tie vispirms parādīsies
tempC.pop (0)
mitrums. pop (0)
2. Lai atsevišķi uzzīmētu mitrumu un temperatūru
importēt sēriju # importēt sērijas bibliotēku
import numpy # Importēt numpy
importēt matplotlib.pyplot kā plt #import matplotlib bibliotēku
no vilkšanas importa *
tempC = #Tukšs masīvs
mitrums =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Seriālais ports, kuram ir pievienots arduino, un Baudrate
plt.ion () #Pastāstiet matplotlib, ka vēlaties interaktīvo režīmu tiešo datu attēlošanai
def CreatePlot (): #Izveidojiet funkciju, kas veido mūsu vēlamo grafiku
plt.plāksne (2, 1, 1) #Augstums, Platums, Pirmais gabals
plt.ylim (22, 34) #Iestatiet y min un max vērtības
plt.title ('Reālā laika DHT11 dati') #Plot virsrakstu
plt.grid (True) #Ieslēdziet režģi
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b^-', label = 'C grāds') #plotējiet temperatūru
plt.legend (loc = 'augšējais centrs') #plot Leģenda
plt.plāksne (2, 1, 2) # Augstums, platums, otrais gabals
plt.grid (True)
plt.ylim (45, 70) #Iestatiet otrās y ass robežas
plt.plot (mitrums, 'g*-', etiķete = 'Mitrums (g/m^3)') #plot mitruma dati
plt.ylabel ('Mitrums (g/m^3)') #iezīme otrā y ass
plt.ticklabel_format (useOffset = False) #, lai apturētu automātisko mērogu y asi
plt.legend (loc = 'augšējais centrs')
kamēr True: # Kamēr cilpa, kas cilpas uz visiem laikiem
Kamēr (arduino.inWaiting () == 0): #Pagaidiet šeit, līdz tiks nodota informācija #nedariet neko
arduinoString = arduino.readline () #lasiet datus no seriālā porta
dataArray = arduinoString.split (',') #Sadaliet to masīvā
temp = pludiņš (dataArray [0]) #Pārveidojiet pirmo elementu par peldošu skaitli un ievietojiet temp
hum = pludiņš (dataArray [1]) #Pārvērtiet otro elementu par peldošu skaitli un ievietojiet hum
tempC.append (temp) #Izveidojiet mūsu tempC masīvu, pievienojot temp lasījumu
mitrums. pievienot (hum) #Veidojot mūsu mitruma masīvu, pievienojot hum lasījumu
drawow (CreatePlot)
plt. pauze (.000001)
skaits = skaits+1
ja (skaits> 20): #tikai ņemiet pēdējos 20 datus, ja datu ir vairāk, tie vispirms parādīsies
tempC.pop (0) # izlec pirmais elements
mitrums. pop (0)
6. darbība: shēmas shēma



Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> ĀRĀ
Ieteicams:
Velciet un ambientāli parādiet datus no jebkuras vietnes, izmantojot Wifi (ziemeļblāzmas indikators), izmantojot NodeMcu: 6 soļi

Izvelciet un ambientāli parādiet datus no jebkuras vietnes, izmantojot Wifi (ziemeļblāzmas indikators), izmantojot NodeMcu: Mana motivācija: Esmu redzējis DAUDZ pamācību par NodeMCU (veidots uz ESP8266 moduļa) iestatīšanu/ izmantošanu IoT (lietu interneta) projektu veidošanai . Tomēr ļoti mazām no šīm apmācībām bija visa informācija/ kods/ diagrammas ļoti iesācējiem
Kā nosūtīt DHT11 datus uz MySQL serveri, izmantojot NodeMCU: 6 soļi

Kā nosūtīt DHT11 datus uz MySQL serveri, izmantojot NodeMCU: Šajā projektā mēs esam sasaistījuši DHT11 ar nodemcu, un pēc tam mēs nosūtām datus par dht11, kas ir mitrums un temperatūra, uz phpmyadmin datu bāzi
Arduino sūta Dht11 datus uz MySQL serveri (PHPMYADMIN), izmantojot Python: 5 soļi

Arduino sūta Dht11 datus uz MySQL serveri (PHPMYADMIN), izmantojot Python: Šajā projektā es esmu sasaistījis DHT11 ar arduino, un pēc tam es sūtu datus par dht11, kas ir mitrums un temperatūra, uz phpmyadmin datu bāzi. Atšķirībā no mūsu iepriekšējā projekta šajā gadījumā mēs neizmantojam nevienu Ethernet vairogu, šeit mēs tikai lasām t
Reģistrējiet datus un uzzīmējiet grafiku tiešsaistē, izmantojot NodeMCU, MySQL, PHP un Chartjs.org: 4 soļi

Reģistrējiet datus un uzzīmējiet diagrammu tiešsaistē, izmantojot NodeMCU, MySQL, PHP un Chartjs.org. Šajā pamācībā aprakstīts, kā mēs varam izmantot Node MCU plati, lai apkopotu datus no vairākiem sensoriem, nosūtot šos datus uz mitinātu PHP failu, kas pēc tam pievieno datus MySQL datu bāze. Pēc tam datus var skatīt tiešsaistē kā grafiku, izmantojot chart.js.A ba
TCP/IP savienojums, izmantojot GPRS: Kā nosūtīt datus uz serveri, izmantojot SIM900A moduli: 4 soļi

TCP/IP savienojums, izmantojot GPRS: Kā nosūtīt datus uz serveri, izmantojot SIM900A moduli: Šajā apmācībā es jums pastāstīšu par to, kā nosūtīt datus uz TCP serveri, izmantojot sim900 moduli. Mēs arī redzēsim, kā mēs varam saņemt datus no servera uz klientu (GSM modulis)