Sisällysluettelo:
- Vaihe 1: Projektissa tarvittavat asiat
- Vaihe 2: Lataa ja asenna Arduino IDE Raspberry Pi: hen
- Vaihe 3: Arduinon koodi
- Vaihe 4: Asenna Raspberry Pi
- Vaihe 5: Python Scipt
- Vaihe 6: Piirikaavio
- Vaihe 7: Tulos
Video: Piirrä DHT11 -tiedot Raspberry Pi: n ja Arduino UNO: n avulla: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tämä opettavainen selittää, miten piirrän lämpötila -anturin DHT11 -tiedot Arduino Unon ja Raspberry Pi: n avulla. Tässä lämpötila -anturi on liitetty Arduino Unoon ja Arduino Uno on kytketty sarjaan Raspberry Pi: hen. Raspberry Pi Sivulla matplotlib-, numpy- ja drawow -kirjastoja käytetään kaavioiden piirtämiseen.
Vaihe 1: Projektissa tarvittavat asiat
1. Vadelma Pi
2. Arduino Uno
3. DHT11 -lämpötila -anturi
4. Hyppyjohdot
5. Leipälauta
Vaihe 2: Lataa ja asenna Arduino IDE Raspberry Pi: hen
Huomautus:- Voit käyttää luonnoksia Arduino UNO -ohjelmassa Windowsin, Linuxin tai Macin Arduino IDE: n avulla.
Ensimmäinen askel on asentaa Arduino IDE kyseiselle avoimelle selaimelle Raspberry Pi: ssä ja avata alla oleva linkki
Arduino Edellinen IDE
Lataa sitten Linux ARM -versio ja pura se komennolla
tar -xf tiedostonimi
Purkamisen jälkeen näet uuden hakemiston. Tässä käytän arduino-1.8.2 IDE: tä. Siirry sitten hakemistoon komennolla.
cd arduino-1.8.1
Jos haluat suorittaa Arduino IDE: n, käytä tätä komentoa arduino-1.8.2-hakemistossa
./arduino
Kuinka käyttää kirjastoja
Jos haluat asentaa Arduinon kirjastoja, lataa kirjasto ja liitä se arduino 1.8.2 ==> kirjastojen kansioon.
HUOMAUTUS:-Varmista, että ex (DHT-anturi) -kirjaston kansiossa ei ole (-). Jos on (-), nimeä se uudelleen.
käytämme kahta kirjastoa tässä ohjeessa, DHT_Sensor ja Adafruit_Sensor
Vaihe 3: Arduinon koodi
Anna nyt python ja Arduino puhua yhdessä. Ensinnäkin tarvitsemme yksinkertaisen ohjelman saadaksemme Arduinon lähettämään tietoja sarjaportin kautta. Seuraava ohjelma on yksinkertainen ohjelma, joka laskee Arduinon ja lähettää tiedot sarjaporttiin.
Arduino -koodi
#Sisällytä "DHT.h" float tempC; // Muuttuva tai pitolämpötila C float tempF; // Muuttuja lämpötilan pitämiseen F -kellun kosteudessa; // Muuttuja painelukeman pitämiseen
#define DHTPIN 7 // mihin digitaaliseen nastaan olemme yhteydessä
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Alusta DHT -anturi.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // kytke sarjavalvonta päälle
dht.begin (); // alustaa dht}
void loop () {tempC = dht.readTemperature (); // Muista ilmoittaa muuttujasi
kosteus = dht.readHumidity (); // Lue kosteus
Serial.print (tempC);
Serial.print (",");
Sarjajälki (kosteus);
Serial.print ("\ n"); // new linedelay (2000); // Tauko lukemien välillä. }
Kun luonnos on koottu, valitse levy ja portti ja lähetä se.
Vaihe 4: Asenna Raspberry Pi
Kun koodi on ladattu, asenna joitain kirjastoja, jotta voimme piirtää kaavion Arduino Unon sarjatuotteista.
1. PySerial on kirjasto, joka tukee sarjayhteyksiä useilla eri laitteilla. Asenna se komennolla.
Sudo apt-get install python-serial
2. Numpy on paketti, joka määrittää moniulotteisen taulukko-objektin ja siihen liittyvät nopeat matemaattiset funktiot. Se tarjoaa myös yksinkertaisia rutiineja lineaariselle algebralle ja FFT: lle (Fast Fourier Transform) ja hienostuneelle satunnaislukujen generoinnille. Voit asentaa sen monella tavalla joko apt -paketin tai pipin avulla. Tässä asennan pipillä, että meidän on ensin asennettava pip
sudo apt-get install python-pip python-dev build-essential
sudo pip asenna numpy
tai jos haluat käyttää apt -pakettia
sudo apt install python-numpy
3. Matplotlib on 2D-piirtokirjasto, joka tarjoaa olio-ohjelmoidun sovellusliittymän kaavioiden upottamiseen sovelluksiin käyttämällä yleiskäyttöisiä graafisia käyttöliittymiä, kuten Tkinter, wxPython, Qt tai GTK+. Asenna se komennolla
sudo pip asenna matplotlib
tai
sudo apt asentaa python-matplotlib
4. Drawnowa käytetään yleensä tulosten katsomiseen jokaisen iteroinnin jälkeen, kun käytämme "imshow" MATLABissa. Asenna se komennolla
sudo pip asenna piirustus
Vaihe 5: Python Scipt
Seuraava vaihe on kirjoittaa python -skripti, jonka voit kirjoittaa millä tahansa editorilla.
1. Piirrä tiedot yhdeksi kuvaajaksi
tuoda sarjanumero # tuoda sarjakirjasto
import numpy # Tuo numpy
Tuo matplotlib.pyplot plt #import matplotlib -kirjastoksi
vedetystä tuonnista *
tempC = #Empty arrayhumidity =
arduino = sarja. Sarja ("/dev/ttyACM0", 115200)
plt.ion () # interaktiivinen tila reaaliaikaisen datan laskemiseksi = 0
def makeFig (): #Luo funktio, joka tekee halutun juonen
plt.ylim (20, 30) #Aseta y min ja max arvot
plt.title ('Real Time DHT11 Data') #Plot the title
plt.grid (True) #Kytke ruudukko päälle
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b^-', label = 'Degree C') #plot lämpötila
plt.legend (loc = 'oikeassa yläkulmassa') #plot selite
plt2 = plt.twinx () #Luo toinen y -akseli
plt.ylim (50, 70) #Aseta toisen y -akselin rajat
plt2.plot (kosteus, 'g*-', etiketti = 'Kosteus') #plot paineen tiedot
plt2.set_ylabel ('Kosteus') #label toinen y -akseli
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'vasen yläkulma')
Vaikka totta: # Vaikka silmukka, joka silmukoita ikuisesti
while (arduino.inWaiting () == 0): #Odota täällä, kunnes tietoja on
pass #älä tee mitään
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Split it to a array
temp = kelluva (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
kosteus. lisäys (hum)
piirretty (makeFig)
plt.pause (.000001)
count = count+1 if (count> 20): #ota vain viimeiset 20 dataa, jos dataa on enemmän, se ponnahtaa ensin
tempC.pop (0)
kosteus. pop (0)
2. Kuvata kosteus ja lämpötila erikseen
tuoda sarjanumero # tuoda sarjakirjasto
import numpy # Tuo numpy
Tuo matplotlib.pyplot plt #import matplotlib -kirjastoksi
vedetystä tuonnista *
tempC = #Tyhjä taulukko
kosteus =
arduino = sarja. Sarja ("/dev/ttyACM0", 115200) #Sarjaportti, johon arduino on kytketty ja Baudrate
plt.ion () #Kerro matplotlib, että haluat interaktiivisen tilan piirtää reaaliaikaisia tietoja
def CreatePlot (): #Luo funktio, joka tekee halutun juonen
plt. osa (2, 1, 1) #Height, Width, First plot
plt.ylim (22, 34) #Aseta y min ja max arvot
plt.title ('Real Time DHT11 Data') #Plot the title
plt.grid (True) #Kytke ruudukko päälle
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b^-', label = 'C-aste') #plot the temperature
plt.legend (loc = 'ylempi keskikohta') #plot selite
plt. osa (2, 1, 2) # Korkeus, Leveys, Toinen kuvaaja
plt.grid (tosi)
plt.ylim (45, 70) #Aseta toisen y -akselin rajat
plt.plot (kosteus, 'g*-', etiketti = 'Kosteus (g/m^3)') #plot kosteustiedot
plt.ylabel ('Kosteus (g/m^3)') #label toinen y -akseli
plt.ticklabel_format (useOffset = False) #lopettaaksesi automaattisen skaalauksen y -akselin
plt.legend (loc = 'ylempi keskikohta')
Vaikka totta: # Vaikka silmukka, joka silmukoita ikuisesti
while (arduino.inWaiting () == 0): #odota täällä, kunnes data on läpäissyt #älä tee mitään
arduinoString = arduino.readline () #lue tiedot sarjaportista
dataArray = arduinoString.split (',') #Split it to a array
temp = kelluva (dataArray [0]) #Muunna ensimmäinen elementti kelluvaksi numeroksi ja lisää lämpötila
hum = float (dataArray [1]) #Muunna toinen elementti kelluvaksi numeroksi ja laita hum
tempC.append (temp) #Rakenna tempC -matriisi lisäämällä temp -lukema
kosteus. liitä (hum) #Rakenna kosteusjärjestelmämme liittämällä hum -lukema
drawow (CreatePlot)
plt.pause (.000001)
count = count+1
if (count> 20): #ota vain viimeiset 20 dataa, jos dataa on enemmän, se ponnahtaa ensin
tempC.pop (0) # ponnahtaa esiin ensimmäinen elementti
kosteus. pop (0)
Vaihe 6: Piirikaavio
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> ULOS
Suositeltava:
Kuinka tehdä kosteuden ja lämpötilan reaaliaikainen tietojen tallennin Arduino UNO: n ja SD-kortin avulla - DHT11-tiedonkeruusimulaatio Proteuksessa: 5 vaihetta
Kuinka tehdä kosteuden ja lämpötilan reaaliaikainen tietojen tallennin Arduino UNO: n ja SD-kortin avulla | DHT11-tiedonkeruusimulaatio Proteuksessa: Johdanto: Hei, tämä on Liono Maker, tässä on YouTube-linkki. Teemme luovaa projektia Arduinon kanssa ja työskentelemme sulautettujen järjestelmien parissa
Suuntautumisen opiskelu Raspberry Pi: n ja MXC6226XU: n avulla Pythonin avulla: 6 vaihetta
Suuntautumisen opiskelu Raspberry Pi: n ja MXC6226XU: n avulla Pythonin avulla: Äänet ovat yksinkertaisesti osa ajoneuvon työskentelyä. Hyvin viritetyn ajoneuvomoottorin humina on upea ääni. Renkaiden kulutuspinnat nurisevat tietä vasten, tuuli huutaa peilien, muovikappaleiden ja kojelaudan kappaleiden ympäri
Kiihtyvyyden seuranta Raspberry Pi: n ja AIS328DQTR: n avulla Pythonin avulla: 6 vaihetta
Kiihtyvyyden seuranta Raspberry Pi: n ja AIS328DQTR: n avulla Pythonin avulla: Kiihtyvyys on rajallinen, mielestäni joidenkin fysiikan lakien mukaan.- Terry Riley Gepardi käyttää hämmästyttävää kiihtyvyyttä ja nopeita nopeuden muutoksia jahtaessaan. Nopein olento rannalla silloin tällöin käyttää huipputahdiaan saaliin saamiseen
Kiihtyvyyden vaihtelujen seuranta Raspberry Pi: n ja MMA7455: n avulla Pythonin avulla: 6 vaihetta
Kiihtyvyyden vaihtelujen seuranta Raspberry Pi: n ja MMA7455: n avulla Pythonin avulla: En kompastunut, testasin painovoimaa. Se toimii edelleen … Esitys kiihtyvästä avaruussukkulastä selvensi, että sukkulan korkeimmassa kohdassa oleva kello valitsee nopeammin kuin tukikohdan painovoima -ajan laajenemisen vuoksi. Jonkin verran
Lue ja kirjoita sarjaportista Raspberry Pi: n avulla Wemosin avulla: 5 vaihetta
Lue ja kirjoita sarjaportista Raspberry Pi: n avulla Wemosin käyttäminen: Viestintä Raspberry Pi: n kanssa Wemos D1 mini R2: n avulla