Turinys:
- 1 žingsnis: Projektui reikalingi dalykai
- 2 veiksmas: atsisiųskite ir įdiekite „Arduino IDE“į „Raspberry Pi“
- 3 žingsnis: „Arduino“kodas
- 4 žingsnis: nustatykite „Raspberry Pi“
- 5 veiksmas: „Python Scipt“
- 6 žingsnis: grandinės schema
- 7 žingsnis: rezultatas
Video: Nubraižykite DHT11 duomenis naudodami „Raspberry Pi“ir „Arduino UNO“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Ši pamoka paaiškina, kaip aš nubraižau temperatūros jutiklio DHT11 duomenis naudodami „Arduino Uno“ir „Raspberry Pi“. Šiame temperatūros jutiklyje yra prijungtas „Arduino Uno“, o „Arduino Uno“yra nuosekliai prijungtas prie „Raspberry Pi“. „Raspberry Pi Side“grafikų braižymui naudojamos matplotlib, numpy ir drawow bibliotekos.
1 žingsnis: Projektui reikalingi dalykai
1. Avietė Pi
2. Arduino Uno
3. DHT11 temperatūros jutiklis
4. Trumpieji laidai
5. Duonos lenta
2 veiksmas: atsisiųskite ir įdiekite „Arduino IDE“į „Raspberry Pi“
Pastaba:- Norėdami įkelti eskizą į „Arduino UNO“, galite naudoti „Windows“, „Linux“ar „Mac“„Arduino IDE“.
Pirmasis žingsnis yra įdiegti „Arduino IDE“tai atidarytai naršyklei „Raspberry Pi“ir atidaryti žemiau pateiktą nuorodą
Arduino Ankstesnis IDE
Tada atsisiųskite „Linux ARM“versiją ir išskleiskite ją naudodami komandą
tar -xf failo pavadinimas
Ištraukę pamatysite naują katalogą. Čia aš naudoju arduino-1.8.2 IDE. Tada eikite į katalogą naudodami komandą.
cd arduino-1.8.1
Norėdami paleisti „Arduino IDE“, naudokite šią komandą kataloge arduino-1.8.2
./arduino
Kaip naudotis bibliotekomis
Norėdami įdiegti visas „Arduino“bibliotekas, tiesiog atsisiųskite biblioteką ir įklijuokite į arduino 1.8.2 ==> bibliotekų aplanką.
PASTABA:-Įsitikinkite, kad bibliotekos aplanke nėra (-) ex (DHT jutiklis). Jei yra (-), pervardykite.
šioje instrukcijoje naudosime dvi bibliotekas: DHT_Sensor ir Adafruit_Sensor
3 žingsnis: „Arduino“kodas
Dabar leiskite Python ir Arduino kalbėtis kartu. Pirmiausia mums reikia paprastos programos, kad „Arduino“siustų duomenis per nuoseklųjį prievadą. Ši programa yra paprasta programa, kuri turės „Arduino“skaičių ir siunčia duomenis į nuoseklųjį prievadą.
Arduino kodas
#įtraukti „DHT.h“plūdės tempC; // Kintama arba laikymo temperatūra C float tempF; // Kintamasis temperatūros palaikymui F plūdės drėgmėje; // Kintamasis slėgio rodmenims palaikyti
#define DHTPIN 7 // prie kokio skaitmeninio kaiščio esame prisijungę
#define DHTTYPE DHT11 // DHT 11
//#apibrėžti DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#apibrėžti DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicijuokite DHT jutiklį.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // įjunkite serijinį monitorių
dht.begin (); // inicijuoti dht}
void loop () {tempC = dht.readTemperature (); // Būtinai deklaruokite savo kintamuosius
drėgmė = dht.readHumidity (); // Skaitykite Drėgmė
Serial.print (tempC);
Serial.print (",");
Serijinis atspaudas (drėgmė);
Serial.print ("\ n"); // new linedelay (2000); // Pauzė tarp skaitymų. }
Kai eskizas bus sudarytas, pasirinkite lentą ir prievadą ir įkelkite jį.
4 žingsnis: nustatykite „Raspberry Pi“
Įkėlę kodą, įdiekite kai kurias bibliotekas, kad galėtume sudaryti nuosekliai iš „Arduino Uno“gaunamų duomenų grafiką.
1. „PySerial“yra biblioteka, palaikanti serijinius ryšius naudojant įvairius įrenginius. Norėdami jį įdiegti, naudokite komandą.
Sudo apt-get install python-serial
2. „Numpy“yra paketas, kuris apibrėžia daugiamatį masyvo objektą ir su juo susijusias greitos matematikos funkcijas. Jame taip pat pateikiamos paprastos linijinės algebros ir FFT (greito Furjė transformacijos) bei sudėtingos atsitiktinių skaičių generavimo procedūros. Galite ją įdiegti įvairiais būdais naudodami apt paketą arba pip. Čia aš diegiu naudodamas pip, kad pirmiausia turėtume įdiegti pip
sudo apt-get install python-pip python-dev build-essential
sudo pip įdiegti numpy
arba jei norite naudoti apt paketą
sudo apt įdiegti python-numpy
3. „Matplotlib“yra 2D braižymo biblioteka, kurioje pateikiama į objektą orientuota API, skirta įterpti sklypus į programas naudojant bendrosios paskirties GUI įrankių rinkinius, tokius kaip „Tkinter“, „wxPython“, „Qt“ar „GTK+“. Norėdami jį įdiegti, naudokite komandą
sudo pip įdiegti matplotlib
arba
sudo apt įdiegti python-matplotlib
4. „Drawnow“paprastai naudojamas rezultatams pamatyti po kiekvienos iteracijos, nes MATLAB naudojame „imshow“. Norėdami jį įdiegti, naudokite komandą
sudo pip įdiegti ištraukiamas
5 veiksmas: „Python Scipt“
Kitas žingsnis yra parašyti „python“scenarijų, kuriam parašyti galite naudoti bet kurį redaktorių.
1. Nubraižykite duomenis vienoje diagramoje
importuoti serijos numerį # importuoti serijos biblioteką
import numpy # Importuoti numpy
importuokite matplotlib.pyplot kaip plt #import matplotlib biblioteką
iš ištraukto importo *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # interaktyvusis režimas, skirtas nubrėžti tiesioginį duomenų skaičių = 0
def makeFig (): #Sukurkite funkciją, kuri sukuria norimą brėžinį
plt.ylim (20, 30) #Nustatykite y min ir max reikšmes
plt.title („Realiojo laiko DHT11 duomenys“) #Plot the title
plt.grid (tiesa) #Įjunkite tinklelį
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b^-', label = 'C laipsnis') #plot temperatūra
plt.legend (loc = 'viršutinė dešinė') #plot legenda
plt2 = plt.twinx () #Sukurkite antrąją y ašį
plt.ylim (50, 70) #Nustatykite antrosios y ašies ribas
plt2.plot (drėgmė, 'g*-', etiketė = 'drėgmė') #plot slėgio duomenys
plt2.set_ylabel ('Drėgmė') #label antroji y ašis
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'viršutinis kairysis')
Nors tiesa: # Nors kilpa, kuri tęsiasi amžinai
while (arduino.inWaiting () == 0): #Palaukite, kol bus duomenų
praeiti #nieko nedaryti
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Skaidykite jį į masyvą
temp = plūdė (dataArray [0])
hum = plūdė (dataArray [1])
tempC.append (temp)
drėgmė. pridėti (hum)
ištrauktas (makeFig)
plt.pause (.000001)
skaičius = skaičius+1, jei (skaičius> 20): #tik paimkite paskutinius 20 duomenų, jei duomenų yra daugiau, jie pirmiausia pasirodys
tempC.pop (0)
drėgmė.pop (0)
2. Atskirai pavaizduoti drėgmę ir temperatūrą
importuoti serijos numerį # importuoti serijos biblioteką
import numpy # Importuoti numpy
importuokite matplotlib.pyplot kaip plt #import matplotlib biblioteką
iš ištraukto importo *
tempC = #Tuščias masyvas
drėgmė =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Serijos prievadas, prie kurio prijungtas arduino ir Baudrate
plt.ion () #Pasakykite matplotlib, kad norite, kad interaktyvusis režimas sudarytų tiesioginius duomenis
def CreatePlot (): #Sukurkite funkciją, kuri sukuria norimą brėžinį
plt.sublot (2, 1, 1) #Height, Width, First plot
plt.ylim (22, 34) #Nustatykite y min ir max reikšmes
plt.title („Realiojo laiko DHT11 duomenys“) #Plot the title
plt.grid (tiesa) #Įjunkite tinklelį
plt.ylabel ('Temp C') #Nustatyti etiketes
plt.plot (tempC, 'b^-', label = 'C laipsnis') #plot temperatūra
plt.legend (loc = 'viršutinis centras') #plot legenda
plt.subplot (2, 1, 2) # Aukštis, plotis, antrasis brėžinys
plt.grid (tiesa)
plt.ylim (45, 70) #Nustatykite antrosios y ašies ribas
plt.plot (drėgmė, 'g*-', etiketė = 'Drėgmė (g/m^3)') #plot drėgmės duomenys
plt.ylabel ('Drėgmė (g/m^3)') #etiketė antroji y ašis
plt.ticklabel_format (useOffset = False) #, kad sustabdytumėte automatinę mastelio y ašį
plt.legend (loc = 'viršutinis centras')
Nors tiesa: # Nors kilpa, kuri tęsiasi amžinai
Nors (arduino.inWaiting () == 0): #Palaukite, kol bus perduoti duomenys #nieko nedaryti
arduinoString = arduino.readline () #perskaitykite duomenis iš nuoseklaus prievado
dataArray = arduinoString.split (',') #Skaidykite jį į masyvą
temp = plūdė (dataArray [0]) #Konvertuokite pirmąjį elementą į kintantį skaičių ir įveskite temp
hum = plūdė (dataArray [1]) #Konvertuokite antrąjį elementą į kintantį skaičių ir įdėkite hum
tempC.append (temp) #Sukurkite mūsų tempC masyvą pridėdami temp rodmenį
drėgmė.pridėti (hum) #Kuriant mūsų drėgmės masyvą pridedant triukšmo rodmenis
drawow („CreatePlot“)
plt.pause (.000001)
skaičiuoti = skaičiuoti+1
jei (skaičius> 20): #tik paimkite paskutinius 20 duomenų, jei duomenų yra daugiau, jie pirmiausia pasirodys
tempC.pop (0) # pasirodo pirmasis elementas
drėgmė.pop (0)
6 žingsnis: grandinės schema
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> OUT
Rekomenduojamas:
(IOT projektas) Gaukite orų duomenis naudodami ESP8266 ir „Openweather“API: 5 žingsniai
(IOT projektas) Gaukite orų duomenis naudodami ESP8266 ir „Openweather“API: Šioje instrukcijoje mes sukursime paprastą IOT projektą, kurio metu iš mūsų svetainės „openweather.com/api“nuskaitysime orų duomenis ir parodysime juos naudodami apdorojimo programinę įrangą
IOT - Skelbkite duomenis į „Thingspeak“naudodami ESP8266: 3 veiksmai
IOT | Skelbti duomenis į dalykų kalbą naudojant ESP8266: Šiais laikais „IoT“yra tendencija ir daugelis mašinų turi duomenų, kuriuos galima įkelti per debesį ir analizuoti duomenis. Maži jutikliai atnaujina duomenis apie debesį, o pavara veikia kitame gale. Aš paaiškinsiu vieną iš IoT pavyzdžių. Aš šį straipsnį ir
Fotografuokite ir siųskite vaizdus naudodami ESP32-Cam naudodami ESP8266 „WeMos D1 R1“„Wifi“procesorių su „Uno“: 7 žingsniai
Fotografuokite ir siųskite vaizdus naudodami ESP32-Cam naudodami ESP8266 „WeMos D1 R1“„Wi-Fi“procesorių su „Uno“: fiksuokite vaizdą naudodami „ESP32-Cam“(OV2640) naudodami „ESP8266 WeMos D1 R1 WiFI“procesorių su „Uno“ir nusiųskite jį el. Paštu, išsaugokite „Google“diske ir išsiųskite į „Whatsapp“naudojant „Twilio“. Reikalavimai: ESP8266 „WeMos D1 R1“„WiFI“procesorius su „Uno“(https: // protosupplies
Prisijunkite prie duomenų ir nubraižykite grafiką internete naudodami „NodeMCU“, „MySQL“, PHP ir „Chartjs.org“: 4 žingsniai
Prisijunkite prie duomenų ir nubraižykite grafiką internete naudodami „NodeMCU“, „MySQL“, PHP ir „Chartjs.org“: šioje instrukcijoje aprašoma, kaip galime naudoti „Node MCU“plokštę duomenims iš kelių jutiklių rinkti, nusiųsti šiuos duomenis į priglobtą PHP failą, kuris tada prideda duomenis prie „MySQL“duomenų bazę. Tada duomenis galima peržiūrėti internete kaip diagramą, naudojant chart.js.A ba
Išsaugokite „Arduino“jutiklio duomenis į „MYsql“naudodami apdorojimą: 6 veiksmai
Išsaugokite „Arduino“jutiklio duomenis į „MYsql“naudodami apdorojimą: Sąžiningai, sunku saugoti „Arduino“duomenis tiesiai į „MySQL“, kad priklausydamas nuo „Arduino IDE“naudojau apdorojimo IDE, kuris yra panašus į „Arduino IDE“, tačiau buvo naudojamas įvairiai ir galite jį koduoti java.Pastaba: nepaleiskite „Arduino“serijos moni