
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11

Hii inaelezea jinsi ninavyopanga data ya sensor ya joto ya DHT11 kwa kutumia Arduino Uno na Raspberry Pi. Katika sensor hii ya joto imeunganishwa na Arduino Uno na Arduino Uno imeunganishwa mfululizo na Raspberry Pi. Katika Raspberry Pi Side, maktaba ya matplotlib, numpy na drawnow hutumiwa kupanga grafu.
Hatua ya 1: Vitu vinahitajika kwa Mradi



1. Raspberry Pi
2. Arduino Uno
3. Sensorer ya Joto la DHT11
4. waya za jumper
5. Bodi ya mkate
Hatua ya 2: Pakua na usakinishe Arduino IDE katika Raspberry Pi



Kumbuka: - Unaweza kutumia Arduino IDE ya windows, Linux au Mac kupakia mchoro katika Arduino UNO.
Hatua ya kwanza ni kusanikisha Arduino IDE kwa kivinjari hicho wazi kwenye Raspberry Pi na ufungue kiunga kilichopewa hapa chini
Arduino Uliopita IDE
Kisha pakua toleo la Linux ARM na uiondoe kwa kutumia amri
jina la faili la tar -xf
Baada ya kuchimba utaona saraka mpya. Hapa ninatumia arduino-1.8.2 IDE. Kisha nenda kwenye saraka kwa kutumia amri.
cd arduino-1.8.1
Ili kuendesha Arduino IDE, tumia amri hii katika saraka ya arduino-1.8.2
./arduino
Jinsi ya kutumia maktaba
Ili kusanikisha maktaba zozote huko Arduino, pakua tu maktaba na ubandike katika arduino 1.8.2 ==> folda ya maktaba.
KUMBUKA: - Hakikisha hakuna (-) kwenye folda ya maktaba ya ex (sensor ya DHT). Ikiwa kuna yoyote (-), ibadilishe jina.
tutatumia maktaba mbili katika hii inayoweza kufundishwa, DHT_Sensor na Adafruit_Sensor
Hatua ya 3: Nambari ya Arduino

Sasa, wacha chatu na Arduino wazungumze pamoja. Kwanza tunahitaji programu rahisi kupata Arduino kutuma data juu ya bandari ya serial. Programu ifuatayo ni programu rahisi ambayo itakuwa na hesabu ya Arduino na kutuma data kwenye bandari ya serial.
Msimbo wa Arduino
# pamoja na "DHT.h" kuelea tempC; // Kubadilika au kushikilia temp katika C kuelea tempF; // Kubadilika kwa kushikilia muda katika unyevu wa kuelea F; // Kubadilika kwa kushikilia usomaji wa shinikizo
#fafanua DHTPIN 7 // ni pini gani ya dijiti ambayo tumeunganishwa nayo
#fafanua DHTTYPE DHT11 // DHT 11
// # fafanua DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # fafanua DHTTYPE DHT21 // DHT 21 (AM2301)
// Anzisha sensorer ya DHT.
DHT dht (DHTPIN, DHTTYPE);
kuanzisha batili () {Serial.begin (115200); // washa mfuatiliaji wa serial
kuanza (); // anzisha dht}
kitanzi batili () {tempC = dht.readTemperature (); // Hakikisha kutangaza anuwai zako
unyevu = dht. soma Unyenyekevu (); // Soma Unyevu
Serial.print (tempC);
Serial.print (",");
Printa ya serial (unyevu);
Serial.print ("\ n"); // kwa linedelay mpya (2000); // Pumzika kati ya usomaji. }
Mara baada ya kuchorwa, chagua bodi na bandari na uipakie.
Hatua ya 4: Sanidi Raspberry Pi

Mara tu nambari imepakiwa, Sakinisha maktaba kadhaa ili tuweze kupanga grafu ya data ambayo inakuja mfululizo kutoka Arduino Uno.
1. PySerial ni maktaba ambayo hutoa msaada kwa unganisho la serial juu ya vifaa anuwai tofauti. Ili kuisakinisha tumia amri.
Sudo apt-get kufunga python-serial
2. Numpy ni kifurushi kinachofafanua kitu cha safu-anuwai na kazi zinazohusiana za hesabu za haraka zinazofanya kazi juu yake. Pia hutoa utaratibu rahisi wa algebra ya mstari na FFT (Fast Fourier Transform) na kizazi cha kisasa cha nambari za nasibu. Unaweza kuiweka kwa njia nyingi ama tumia kifurushi cha apt au bomba. Hapa ninaweka kutumia bomba kwa hiyo kwanza lazima tuweke pip
Sudo apt-get install python-pip python-dev kujenga-muhimu
Sudo pip kufunga numpy
au ikiwa unataka kutumia kifurushi cha apt
Sudo apt kufunga python-numpy
3. Matplotlib ni maktaba ya kupanga 2D ambayo hutoa API inayolenga vitu kwa kupachika viwanja kwenye programu kutumia vifaa vya kusudi vya jumla vya GUI kama Tkinter, wxPython, Qt, au GTK +. Ili kuisakinisha tumia amri
Sudo pip kufunga matplotlib
au
Sudo apt kufunga python-matplotlib
4. Utaftaji kwa ujumla hutumiwa kuona matokeo baada ya kila kukokota tunapotumia "imshow" katika MATLAB. Ili kuisakinisha tumia amri
Sudo pip kufunga mchoro
Hatua ya 5: Python Scipt


Hatua inayofuata ni kuandika hati ya chatu kwa ambayo unaweza kutumia mhariri wowote kuiandika.
1. Panga data katika grafu moja
kuagiza serial # kuagiza Serial Library
kuagiza numpy # Ingiza numpy
kuagiza matplotlib.pyplot kama plt #import matplotlib maktaba
kutoka kuagiza sasa
tempC = #Dalili ya unyevu =
arduino = mfululizo. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # mode ya maingiliano kupanga data ya moja kwa moja = 0
def makeFig (): #Unda kazi ambayo hufanya mpango wetu unaotaka
plt.ylim (20, 30) #Set y min na maadili ya juu
plt.title ('Real Time DHT11 Data') #Printa kichwa
grt (kweli) #Washa gridi
plt.label ('Temp C') #Weka orodha
plt.plot (tempC, 'b ^ -', label = 'Degree C') #panga joto
hadithi [loc = 'juu kulia') #panga hadithi
plt2 = plt.twinx () #Unda mhimili wa pili y
plt.ylim (50, 70) #Set mipaka ya mhimili wa pili y
plt2.plot (unyevu, 'g * -', label = 'Humidity') data ya shinikizo la #plot
plt2.set_ylabel ('Humidity') # lebo ya pili y mhimili
plt2.ticklabel_format (useOffset = Uongo)
plt2.legend (loc = 'juu kushoto')
wakati Kweli: # Wakati kitanzi ambacho kinatembea milele
wakati (arduino.inKungojea () == 0): # Subiri hapa mpaka kuwe na data
pasi #usifanye chochote
arduinoString = arduino.lineline ()
dataArray = arduinoString.split (',') #Ipange kwa safu
temp = kuelea (dataArray [0])
hum = kuelea (dataArray [1])
tempC. tumia (temp)
unyevu. tumia (hum)
tengeneza (makeFig)
kusitisha plt (.000001)
hesabu = hesabu + 1 ikiwa (hesabu> 20): #chukua tu data 20 za mwisho ikiwa data ni zaidi itatokea kwanza
tempC.pop (0)
unyevu.pop (0)
2. Kupanga unyevu na joto kando
kuagiza serial # kuagiza Serial Library
kuagiza numpy # Ingiza numpy
kuagiza matplotlib.pyplot kama plt #import matplotlib maktaba
kutoka kuagiza sasa
tempC = # safu isiyo na dalili
unyevu =
arduino = mfululizo. Serial ("/ dev / ttyACM0", 115200) # Bandari ya angani ambayo arduino imeunganishwa na Baudrate
plt.ion () #Sema matplotlib unataka hali ya maingiliano kupanga data ya moja kwa moja
def CreatePlot (): #Tengeneza kazi inayofanya mpango wetu unaotaka
plt.plplot (2, 1, 1) #Urefu, upana, njama ya kwanza
plt.ylim (22, 34) #Seti y min na maadili ya juu
plt.title ('Real Time DHT11 Data') #Printa kichwa
grt (kweli) #Washa gridi
plt.label ('Temp C') #Weka lebo
plt.plot (tempC, 'b ^ -', label = 'Degree C') #panga joto
hadithi. (loc = 'kituo cha juu') #panga hadithi
plt.plplot (2, 1, 2) # Urefu, upana, njama ya pili
grt (kweli)
plt.ylim (45, 70) #Set mipaka ya mhimili wa pili y
plt
plt.label ('Unyevu (g / m ^ 3)') # lebo ya pili y mhimili
plt.ticklabel_format (useOffset = Uongo) #kusimamisha mhimili wa autoscale y
hadithi. (loc = 'kituo cha juu')
wakati Kweli: # Wakati kitanzi ambacho kinatembea milele
wakati (arduino.inKungojea () == 0): # Subiri hapa mpaka data ipite # usifanye chochote
arduinoString = arduino.readline () #soma data kutoka bandari ya serial
dataArray = arduinoString.split (',') #Ipange kwa safu
temp = kuelea (dataArray [0]) #Badilisha kipengee cha kwanza kuwa nambari inayoelea na uweke temp
hum = kuelea (dataArray [1]) #Badilisha kipengee cha pili kuwa nambari inayoelea na uweke hum
tempC.append (temp) #Jenga safu yetu ya tempC kwa kuongezea kusoma kwa muda
unyevu.ongeza (hum) #Kuunda safu yetu ya unyevu kwa kuongeza usomaji wa hum
kuchora (CreatePlot)
kusitisha plt (.000001)
hesabu = hesabu + 1
ikiwa (hesabu> 20): #chukua tu data 20 za mwisho ikiwa data ni zaidi itatokea kwanza
tempC.pop (0) # pop kipengele cha kwanza
unyevu.pop (0)
Hatua ya 6: Mchoro wa Mzunguko



Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> NJE
Ilipendekeza:
Fanya Viwanja Vizuri kutoka kwa Takwimu za Arduino za Moja kwa moja (na Hifadhi Takwimu kwa Excel): Hatua 3

Tengeneza Viwanja Vizuri kutoka kwa Takwimu za Arduino za Moja kwa Moja (na Hifadhi Takwimu kwa Excel): Sote tunapenda kucheza na kazi yetu ya P … lotter katika IDE ya Arduino. Walakini, wakati inaweza kuwa na faida kwa matumizi ya msingi, data inafutwa zaidi vidokezo vinaongezwa na sio kupendeza macho. Mpangaji wa Arduino IDE hana
Kusoma Takwimu za Ultrasonic (HC-SR04) Takwimu kwenye LCD ya 128 × 128 na kuiona kwa kutumia Matplotlib: Hatua 8

Kusoma Takwimu za Utambuzi wa Ultrasonic (HC-SR04) kwenye LCD ya 128 × 128 na Kuiona Ukitumia Matplotlib: Katika hii inayoweza kufundishwa, tutatumia MSP432 LaunchPad + BoosterPack kuonyesha data ya sensa ya ultrasonic (HC-SR04) kwenye 128 × 128 LCD na tuma data kwa PC mfululizo na uione kwa kutumia Matplotlib
Jinsi ya Kutuma Takwimu za DHT11 kwa Seva ya MySQL Kutumia NodeMCU: 6 Hatua

Jinsi ya Kutuma Takwimu za DHT11 kwa Seva ya MySQL Kutumia NodeMCU: Katika Mradi huu tumeingiza DHT11 na nodemcu na kisha tunatuma data ya dht11 ambayo ni unyevu na joto kwa hifadhidata ya phpmyadmin
Arduino Inatuma Takwimu za Dht11 kwa Seva ya MySQL (PHPMYADMIN) Kutumia Python: Hatua 5

Arduino Inatuma Takwimu za Dht11 kwa Seva ya MySQL (PHPMYADMIN) Kutumia Python: Katika Mradi huu nimeingiliana na DHT11 na arduino halafu ninatuma data ya dht11 ambayo ni unyevu na joto kwa hifadhidata ya phpmyadmin. Tofauti na mradi wetu wa awali hatutumii ngao yoyote ya ethernet katika kesi hii, hapa tunasoma tu
Sayansi ya Takwimu ya IoT PiNet ya Takwimu za Smart Screen za Viz: Hatua 4

Sayansi ya Takwimu ya IoT PiNet ya Takwimu za Smart Screen Viz: Unaweza kuweka kwa urahisi mtandao wa IoT wa maonyesho mazuri kwa taswira ya data ili kuongeza juhudi zako za utafiti katika Sayansi ya Takwimu au uwanja wowote wa upimaji. Unaweza kupiga " kushinikiza " ya viwanja vyako kwa wateja kutoka ndani yako