Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Kailangan para sa Proyekto
- Hakbang 2: I-download at I-install ang Arduino IDE sa Raspberry Pi
- Hakbang 3: Code para sa Arduino
- Hakbang 4: I-setup ang Raspberry Pi
- Hakbang 5: Python Scipt
- Hakbang 6: Diagram ng Circuit
- Hakbang 7: Resulta
Video: Plot DHT11 Data Gamit ang Raspberry Pi at Arduino UNO: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ipinapaliwanag ng tagubilin na ito kung paano ko binabalangkas ang data ng sensor ng temperatura DHT11 gamit ang Arduino Uno at Raspberry Pi. Sa temperatura sensor na ito ay konektado sa Arduino Uno at Arduino Uno ay konektado serally sa Raspberry Pi. Sa Raspberry Pi Side, ang mga library ng matplotlib, numpy at drawnow ay ginagamit upang magplano ng mga grap.
Hakbang 1: Mga Bagay na Kailangan para sa Proyekto
1. Raspberry Pi
2. Arduino Uno
3. DHT11 Temperatura Sensor
4. Mga Jumper Wires
5. Breadboard
Hakbang 2: I-download at I-install ang Arduino IDE sa Raspberry Pi
Tandaan: - Maaari mong gamitin ang Arduino IDE ng mga windows, Linux o Mac upang mag-upload ng sketch sa Arduino UNO.
Ang unang hakbang ay ang pag-install ng Arduino IDE para sa bukas na browser sa Raspberry Pi at buksan ang link na ibinigay sa ibaba
Arduino Nakaraang IDE
Pagkatapos i-download ang bersyon ng Linux ARM at kunin ito gamit ang command
tar -xf pangalan ng file
Pagkatapos ng pagkuha ay makikita mo ang isang bagong direktoryo. Narito gumagamit ako ng arduino-1.8.2 IDE. Pagkatapos ay pumunta sa direktoryo sa pamamagitan ng paggamit ng utos.
cd arduino-1.8.1
Upang patakbuhin ang Arduino IDE, gamitin ang utos na ito sa direktoryo ng arduino-1.8.2
./arduino
Paano gumamit ng mga aklatan
Upang mai-install ang anumang mga aklatan sa Arduino, i-download lamang ang library at i-paste sa arduino 1.8.2 ==> folder ng mga aklatan.
TANDAAN: - Siguraduhing walang (-) sa folder ng library para sa ex (DHT-sensor). Kung mayroong (-), palitan ang pangalan.
gagamitin namin ang dalawang aklatan sa itinuturo na ito, DHT_Sensor at Adafruit_Sensor
Hakbang 3: Code para sa Arduino
Ngayon, hinayaan nating magkasama ang pag-uusap ng sawa at Arduino. Una kailangan namin ng isang simpleng programa upang makuha ang pagpapadala ng Arduino ng data sa serial port. Ang sumusunod na programa ay isang simpleng programa na magkakaroon ng bilang ng Arduino at ipadala ang data sa serial port.
Code ng Arduino
# isama ang "DHT.h" float tempC; // Variable o holding temp sa C float tempF; // Variable para sa paghawak ng temp sa F float na halumigmig; // Variable para sa pagpindot sa pagbabasa ng presyon
#define DHTPIN 7 // kung anong digital pin ang nakakonekta sa amin
# tukuyin ang DHTTYPE DHT11 // DHT 11
// # tukuyin ang DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # tukuyin ang DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialize DHT sensor.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // i-on ang serial monitor
dht.begin (); // initialize dht}
void loop () {tempC = dht.readTemperature (); // Siguraduhing ideklara ang iyong mga variable
halumigmig = dht.readHumidity (); // Basahin ang Humidity
Serial.print (tempC);
Serial.print (",");
Serial.print (halumigmig);
Serial.print ("\ n"); // para sa bagong linedelay (2000); // I-pause sa pagitan ng mga pagbasa. }
Kapag naipon ang sketch, piliin ang board at port at i-upload ito.
Hakbang 4: I-setup ang Raspberry Pi
Kapag na-upload na ang code, Mag-install ng ilang mga aklatan upang makapagplano kami ng graph ng data na darating nang serial mula sa Arduino Uno.
1. Ang PySerial ay isang silid-aklatan na nagbibigay ng suporta para sa mga serial na koneksyon sa iba't ibang mga iba't ibang mga aparato. Upang mai-install ito gumamit ng utos.
Sudo apt-get install python-serial
2. Ang Numpy ay isang pakete na tumutukoy sa isang multi-dimensional na object ng array at nauugnay na mga mabilis na pag-andar ng matematika na gumana dito. Nagbibigay din ito ng mga simpleng gawain para sa linear algebra at FFT (Fast Fourier Transform) at sopistikadong henerasyon na random-number. Maaari mo itong mai-install sa maraming paraan alinman sa gumamit ng apt package o pip. Narito ang aking pag-install gamit ang pip para sa unang kailangan naming mag-install ng pip
sudo apt-get install python-pip python-dev build-mahalaga
sudo pip install numpy
o kung nais mong gumamit ng apt package
sudo apt i-install ang python-numpy
3. Ang Matplotlib ay isang 2D na paglalagay ng silid-aklatan na nagbibigay ng isang object na nakatuon sa API para sa pag-embed ng mga plots sa mga application gamit ang mga pangkalahatang layunin na toolkit ng GUI tulad ng Tkinter, wxPython, Qt, o GTK +. Upang mai-install ito gumamit ng utos
sudo pip install matplotlib
o
sudo apt i-install ang python-matplotlib
4. Ang drawnow ay karaniwang ginagamit upang makita ang mga resulta pagkatapos ng bawat pag-ulit habang gumagamit kami ng "imshow" sa MATLAB. Upang mai-install ito gumamit ng utos
sudo pip install drawnow
Hakbang 5: Python Scipt
Susunod na hakbang ay ang pagsulat ng isang script ng sawa para sa na maaari mong gamitin ang anumang editor upang isulat ito.
1. Plot data sa isang grap
i-import ang serial # import Serial Library
i-import ang numpy # I-import ang numpy
i-import ang matplotlib.pyplot bilang plt #import matplotlib library
mula sa drawnow import *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # interactive mode upang magplano ng live na datacount = 0
def makeFig (): # Lumikha ng isang pagpapaandar na gumagawa ng aming nais na balangkas
plt.ylim (20, 30) #Set y min at max na mga halaga
plt.title ('Real Time DHT11 Data') #Iplay ang pamagat
plt.grid (True) #I-on ang grid
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b ^ -', label = 'Degree C') #plot ang temperatura
plt.legend (loc = 'itaas na kanan') #plot the legend
plt2 = plt.twinx () # Lumikha ng pangalawang y axis
plt.ylim (50, 70) #Itakda ang mga limitasyon ng pangalawang y axis
plt2.plot (halumigmig, 'g * -', label = 'Humidity') #plot pressure data
plt2.set_ylabel ('Humidity') #label pangalawang y axis
plt2.ticklabel_format (useOffset = Mali)
plt2.legend (loc = 'itaas na kaliwa')
habang Totoo: # Habang loop na loop na magpakailanman
habang (arduino.inWaiting () == 0): # Maghintay dito hanggang sa mayroong data
ipasa ang # walang anuman
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Split ito sa isang array
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
halumigmig.append (hum)
drawnow (makeFig)
plt.pause (.000001)
count = count + 1 kung (count> 20): # Tanging magtagal ng huling 20 data kung ang data ay higit na ito ay pop muna
tempC.pop (0)
halumigmig.pop (0)
2. Upang magkahiwalay na balangkas ng kahalumigmigan at temperatura
i-import ang serial # import Serial Library
i-import ang numpy # I-import ang numpy
i-import ang matplotlib.pyplot bilang plt #import matplotlib library
mula sa drawnow import *
tempC = #Mga sintomas ng array
halumigmig =
arduino = serial. Serial ("/ dev / ttyACM0", 115200) #Serial port kung saan ang arduino ay konektado at Baudrate
plt.ion () #Sabihin matplotlib na nais mong interactive mode upang magbalangkas ng live na data
def CreatePlot (): # Lumikha ng isang pagpapaandar na gumagawa ng aming nais na balangkas
plt.subplot (2, 1, 1) # Taas, Lapad, Unang balangkas
plt.ylim (22, 34) #Set y min at max na mga halaga
plt.title ('Real Time DHT11 Data') #Iplay ang pamagat
plt.grid (True) #I-on ang grid
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b ^ -', label = 'Degree C') #plot ang temperatura
plt.legend (loc = 'itaas na gitna') #plot ang alamat
plt.subplot (2, 1, 2) # Taas, Lapad, Pangalawang balangkas
plt.grid (Totoo)
plt.ylim (45, 70) #Itakda ang mga limitasyon ng pangalawang y axis
plt.plot (kahalumigmigan, 'g * -', label = 'Humidity (g / m ^ 3)') #plot data ng kahalumigmigan
plt.ylabel ('Humidity (g / m ^ 3)') #label pangalawang y axis
plt.ticklabel_format (useOffset = Mali) #to ihinto ang autoscale y axis
plt.legend (loc = 'itaas na gitna')
habang Totoo: # Habang loop na loop na magpakailanman
habang (arduino.inWaiting () == 0): # Maghintay dito hanggang sa may dumaan na data #walan ng anuman
arduinoString = arduino.readline () #read the data from serial port
dataArray = arduinoString.split (',') #Split ito sa isang array
temp = float (dataArray [0]) # I-convert ang unang elemento sa lumulutang na numero at ilagay sa temp
hum = float (dataArray [1]) # I-convert ang pangalawang elemento sa lumulutang na numero at ilagay sa hum
tempC.append (temp) #Buo ang aming tempC array sa pamamagitan ng pagdaragdag ng pagbabasa ng temp
halumigmig.append (hum) #Pagbuo ng aming hanay ng kahalumigmigan sa pamamagitan ng pagdaragdag ng pagbabasa ng hum
drawnow (CreatePlot)
plt.pause (.000001)
bilangin = bilangin + 1
kung (count> 20): # Tanging kumuha ng huling 20 data kung ang data ay higit na ito ay pop muna
tempC.pop (0) # pop out first element
halumigmig.pop (0)
Hakbang 6: Diagram ng Circuit
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> LABAS
Inirerekumendang:
DIY -- Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: 6 Mga Hakbang
DIY || Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: Habang gumagawa ng isang Spider robot, maaaring malaman ng maraming mga bagay tungkol sa robot. Tulad ng paggawa ng Robots ay Nakakaaliw pati na rin ang mapaghamong. Sa video na ito ipapakita namin sa iyo kung paano gumawa ng isang Spider robot, na maaari naming mapatakbo gamit ang aming smartphone (Androi
Manatiling Ligtas Gamit ang Bikelight na Ito Gamit ang Mga Senyas na Pagliko: 5 Hakbang (na may Mga Larawan)
Manatiling Ligtas Gamit ang Bikelight na Ito Gamit ang Mga Sinyales na Pag-turn: Gustong-gusto kong sumakay ng bisikleta, karaniwang ginagamit ko ito upang makarating sa paaralan. Sa oras ng taglamig, madalas na madilim pa rin sa labas at mahirap para sa ibang mga sasakyan na makita ang mga signal ng aking kamay na lumiliko. Samakatuwid ito ay isang malaking panganib dahil maaaring hindi makita ng mga trak na nais kong
Paano Gumawa ng isang Drone Gamit ang Arduino UNO - Gumawa ng isang Quadcopter Gamit ang Microcontroller: 8 Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Drone Gamit ang Arduino UNO | Gumawa ng isang Quadcopter Gamit ang Microcontroller: PanimulaBisitahin ang Aking Youtube Channel Ang isang Drone ay isang napakamahal na gadget (produkto) na bibilhin. Sa post na ito tatalakayin ko, kung paano ko ito magagawa sa murang ?? At Paano mo magagawa ang iyong sarili tulad nito sa murang presyo … Sa India ang lahat ng mga materyales (motor, ESC
Nagpapadala ang Arduino ng Data ng Dht11 sa MySQL Server (PHPMYADMIN) Gamit ang Python: 5 Hakbang
Ang Arduino ay Nagpapadala ng Data ng Dht11 sa MySQL Server (PHPMYADMIN) Gamit ang Python: Sa Proyekto na ito ay nakipag-interfaced ako sa DHT11 sa arduino at pagkatapos ay nagpapadala ako ng data ng dht11 na kung saan ay halumigmig at temperatura sa phpmyadmin database. Hindi tulad ng aming nakaraang proyekto hindi kami gumagamit ng anumang ethernet na kalasag sa kasong ito, narito binabasa lamang namin ang
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c