Mündəricat:
- Addım 1: Layihə üçün lazım olan şeylər
- Addım 2: Raspberry Pi -də Arduino IDE -ni yükləyin və quraşdırın
- Addım 3: Arduino üçün kod
- Addım 4: Raspberry Pi qurun
- Addım 5: Python Scipt
- Addım 6: Dövrə Şeması
- Addım 7: Nəticə
Video: Raspberry Pi və Arduino UNO -dan istifadə edərək DHT11 məlumatlarını tərtib edin: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu təlimat, Arduino Uno və Raspberry Pi istifadə edərək DHT11 temperatur sensoru məlumatlarını necə qurduğumu izah edir. Bu vəziyyətdə sensor Arduino Uno ilə, Arduino Uno isə Raspberry Pi ilə ardıcıl olaraq bağlanır. Raspberry Pi Side -də matplotlib, numpy və drawow kitabxanaları qrafik qurmaq üçün istifadə olunur.
Addım 1: Layihə üçün lazım olan şeylər
1. Moruq Pi
2. Arduino Uno
3. DHT11 Temperatur Sensoru
4. Jumper Telləri
5. Çörək lövhəsi
Addım 2: Raspberry Pi -də Arduino IDE -ni yükləyin və quraşdırın
Qeyd:- Arduino UNO-da eskiz yükləmək üçün Windows, Linux və ya Mac Arduino IDE-dən istifadə edə bilərsiniz.
İlk addım, Raspberry Pi -də həmin açıq brauzer üçün Arduino IDE -ni qurmaq və aşağıda göstərilən linki açmaqdır
Arduino Əvvəlki IDE
Sonra Linux ARM versiyasını yükləyin və əmrdən istifadə edərək çıxarın
tar -xf fayl adı
Çıxardıqdan sonra yeni bir kataloq görəcəksiniz. Burada arduino-1.8.2 IDE istifadə edirəm. Sonra əmrdən istifadə edərək qovluğa gedin.
cd arduino-1.8.1
Arduino IDE-ni işə salmaq üçün bu əmri arduino-1.8.2 qovluğunda istifadə edin
./arduino
Kitabxanalardan necə istifadə etmək olar
Arduino -da hər hansı bir kitabxana qurmaq üçün sadəcə kitabxananı yükləyin və arduino 1.8.2 ==> kitabxana qovluğuna yapışdırın.
QEYD:-Kitabxana qovluğunda (DHT sensoru) (-) olmadığından əmin olun. Əgər (-) varsa, adını dəyişin.
bu təlimat verən iki kitabxanadan istifadə edəcəyik, DHT_Sensor və Adafruit_Sensor
Addım 3: Arduino üçün kod
Gəlin python və Arduino ilə birlikdə danışaq. Birincisi, Arduino -nun serial port üzərindən məlumat göndərməsi üçün sadə bir proqrama ehtiyacımız var. Aşağıdakı proqram Arduino sayacaq və məlumatları serial portuna göndərəcək sadə bir proqramdır.
Arduino kodu
#"DHT.h" float tempC daxil edin; // C float tempF -də dəyişkən və ya saxlama tempi; // F float rütubətində tempi saxlamaq üçün dəyişən; // Təzyiq oxunuşunu saxlamaq üçün dəyişən
#deftine DHTPIN 7 // hansı rəqəmsal pinlə bağlıyıq
#DHTTYPE DHT11 // DHT 11 təyin edin
//#DHTTYPE DHT22 təyin edin // DHT 22 (AM2302), AM2321
//#DHTTYPE DHT21 təyin edin // DHT 21 (AM2301)
// DHT sensorunu işə salın.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // serial monitoru yandırın
dht.begin (); // başlat dht}
void loop () {tempC = dht.readTemperature (); // Dəyişənlərinizi elan etdiyinizə əmin olun
rütubət = dht.readHumidity (); // Nəmliyi oxuyun
Serial.print (tempC);
Serial.print (",");
Serial çap (rütubət);
Serial.print ("\ n"); // yeni gün üçün (2000); // Oxumalar arasında fasilə verin. }
Eskiz tərtib edildikdən sonra lövhəni və portu seçin və yükləyin.
Addım 4: Raspberry Pi qurun
Kod yükləndikdən sonra Arduino Uno -dan ardıcıl olaraq gələn məlumatların qrafikini qura biləcəyimiz üçün bəzi kitabxanaları quraşdırın.
1. PySerial, müxtəlif qurğular üzərində ardıcıl bağlantılara dəstək verən bir kitabxanadır. Qurmaq üçün əmrdən istifadə edin.
Sudo apt-get python-serial yükləyin
2. Numpy, çoxölçülü bir sıra obyekti və üzərində işləyən əlaqəli sürətli riyazi funksiyaları təyin edən bir paketdir. Həm də xətti cəbr və FFT (Fast Fourier Transform) və mürəkkəb təsadüfi ədədlər istehsalı üçün sadə rutinlər təqdim edir. Apt paketi və ya pip istifadə edərək bir çox şəkildə qura bilərsiniz. Burada pip istifadə edərək quraşdırıram, bunun üçün əvvəlcə pip quraşdırmalıyıq
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
və ya apt paketindən istifadə etmək istəyirsinizsə
sudo apt install python-numpy
3. Matplotlib, Tkinter, wxPython, Qt və ya GTK+kimi ümumi təyinatlı GUI alət dəstlərindən istifadə edərək, proqramların arasına proqramlar yerləşdirmək üçün obyekt yönümlü bir API təmin edən 2D təsvir kitabxanasıdır. Qurmaq üçün əmrdən istifadə edin
sudo pip matplotlib quraşdırın
və ya
sudo apt install python-matplotlib
4. Drawnow ümumiyyətlə MATLAB -da "imshow" istifadə etdiyimiz üçün hər bir təkrarlamadan sonra nəticələri görmək üçün istifadə olunur. Qurmaq üçün əmrdən istifadə edin
sudo pip drawow quraşdırın
Addım 5: Python Scipt
Növbəti addım, hər hansı bir redaktordan istifadə edə biləcəyiniz bir python skriptini yazmaqdır.
1. Verilənləri bir qrafikdə qurun
serial # idxal Serial Kitabxana
idxal numpy # İdxal numpy
matplotlib.pyplot'u plt kimi #idxal matplotlib kitabxanasına daxil edin
çəkilmiş idxaldan *
tempC = #Boş arrayhumidity =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # interaktiv rejim canlı datacount = 0 qurmaq üçün
def makeFig (): #İstədiyimiz planı yaradan bir funksiya yaradın
plt.ylim (20, 30) #Min və maksimum dəyərləri təyin edin
plt.title ('Real Time DHT11 Data') #Başlığı tərtib edin
plt.grid (True) #Şəbəkəni yandırın
plt.ylabel ('Temp C') #Etiket et
plt.plot (tempC, 'b^-', label = 'C dərəcəsi') #temperaturun ölçüsü
plt.legend (loc = 'yuxarı sağ') #əfsanəni qur
plt2 = plt.twinx () #İkinci y oxu yaradın
plt.ylim (50, 70) #İkinci y oxunun sərhədlərini təyin edin
plt2.plot (rütubət, 'g*-', etiket = 'Rütubət') #sahə təzyiq məlumatları
plt2.set_ylabel ('Nəmlik') #etiket ikinci y oxu
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'yuxarı sol')
while True: # Əbədi döngə edən loop
while (arduino.inWaiting () == 0): #Məlumat olana qədər burada gözləyin
#heç nə etmə
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Bir sıra bölün
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
rütubət
çəkilmiş (makeFig)
plt.pause (.000001)
count = count+1 if (count> 20): #data daha çox olarsa ilk olaraq son 20 məlumatı götür
tempC.pop (0)
rütubət.pop (0)
2. Rütubət və temperaturu ayrıca qurmaq
serial # idxal Serial Kitabxana
idxal numpy # İdxal numpy
matplotlib.pyplot'u plt kimi #idxal matplotlib kitabxanasına daxil edin
çəkilmiş idxaldan *
tempC = #Boş massiv
rütubət =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Arduinonun qoşulduğu seriya portu və Baudrate
plt.ion () #İnteraktiv rejimin canlı məlumatları qurmasını istədiyiniz matplotlib deyin
def CreatePlot (): #İstədiyimiz planı yaradan bir funksiya yaradın
plt.subplot (2, 1, 1) #Hündürlük, Genişlik, İlk süjet
plt.ylim (22, 34) #Min və maksimum dəyərləri təyin et
plt.title ('Real Time DHT11 Data') #Başlığı tərtib edin
plt.grid (True) #Şəbəkəni yandırın
plt.ylabel ('Temp C') #Etiketləri təyin edin
plt.plot (tempC, 'b^-', label = 'C dərəcəsi') #temperaturun ölçüsü
plt.legend (loc = 'üst mərkəz') #əfsanəni qur
plt.subplot (2, 1, 2) # Boy, Genişlik, İkinci sahə
plt.grid (Doğru)
plt.ylim (45, 70) #İkinci y oxunun sərhədlərini təyin et
plt.plot (rütubət, 'g*-', etiket = 'Rütubət (g/m^3)') #plot rütubət məlumatları
plt.ylabel ('Rütubət (g/m^3)') #etiket ikinci y oxu
plt.ticklabel_format (useOffset = False) #avtomatik ölçülü y oxunu dayandırmaq üçün
plt.legend (loc = 'yuxarı mərkəz')
while True: # Əbədi döngə edən loop
while (arduino.inWaiting () == 0): #Məlumat ötürülənə qədər burada gözlə #heç nə etmə
arduinoString = arduino.readline () #serial portundan məlumatları oxuyun
dataArray = arduinoString.split (',') #Bir sıra bölün
temp = float (dataArray [0]) #İlk elementi üzən nömrəyə çevirin və temp qoyun
hum = float (dataArray [1]) #İkinci elementi üzən nömrəyə çevirin və zümzümə edin
tempC.append (temp) #temp oxu əlavə edərək tempC cərgəmizi yaradın
moist.append (hum) #Zümzümə oxumasını əlavə edərək rütubət cərgəmizi qurun
Drawow (CreatePlot)
plt.pause (.000001)
say = say+1
if (count> 20): #yalnız son 20 məlumatı götürün, əgər məlumat daha çox olarsa, ilk olaraq açılacaq
tempC.pop (0) # ilk elementi çıxarın
rütubət.pop (0)
Addım 6: Dövrə Şeması
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> Çıxdı
Tövsiyə:
(IOT Layihəsi) ESP8266 və Openweather API -dən istifadə edərək Hava Məlumatlarını əldə edin: 5 addım
(IOT Layihəsi) ESP8266 və Openweather API -dən istifadə edərək Hava Məlumatlarını əldə edin: Bu təlimatda şəhərimizin hava məlumatlarını openweather.com/api saytından əldə edən və Qenerasiya proqramını istifadə edərək nümayiş etdirən sadə bir IOT layihəsi hazırlayacağıq
Android / Arduino / PfodApp istifadə edərək sadə uzaqdan məlumatların tərtib edilməsi: 6 addım
Android/Arduino/PfodApp -dan istifadə edərək sadə Uzaqdan Məlumat Planlaması: Yalnız Arduino millisini () istifadə edərək Tarixə/Zamana qarşı Məlumat Planlaşdırmaq üçün bu InstructableArduino Tarixi/Millis () və PfodApp -dan istifadə edərək Planlaşdırma/Qeydiyyata baxın.Bu Təlimat Arduino sensor məlumatlarını necə quracağınızı göstərir. Android mobil və onu ələ keçirin
NodeMCU istifadə edərək DHT11 məlumatlarını MySQL Serverə necə göndərmək olar: 6 addım
NodeMCU istifadə edərək DHT11 Məlumatlarını MySQL Serverə Necə Göndərmək olar: Bu Layihədə DHT11 -i nodemcu ilə əlaqələndirdik və sonra phpmyadmin verilənlər bazasına rütubət və temperatur olan dht11 məlumatlarını göndəririk
Arduino, Python istifadə edərək Dht11 məlumatlarını MySQL Serverə (PHPMYADMIN) göndərir: 5 addım
Arduino Python istifadə edərək Dht11 Məlumatlarını MySQL Serverinə (PHPMYADMIN) Göndərir: Bu Layihədə DHT11 -i arduino ilə əlaqələndirdim və sonra phpmyadmin verilənlər bazasına rütubət və temperatur olan dht11 məlumatlarını göndərirəm. Əvvəlki layihəmizdən fərqli olaraq, bu vəziyyətdə heç bir ethernet qalxanı istifadə etmirik, burada yalnız oxuyuruq
Autodesk EAGLE -dən istifadə edərək sxemləri necə tərtib etmək və bir PCB yaratmaq olar: 9 addım
Dövrləri necə tərtib etmək və Autodesk EAGLE istifadə edərək bir PCB yaratmaq: PCB (Çaplı Devre Kartları) dizayn etməyə və hazırlamağa kömək edə biləcək bir çox növ CAD (Kompüterli Dizayn) proqramı var, yeganə problem onların əksəriyyətinin Onlardan necə istifadə ediləcəyini və nələr edə biləcəyini həqiqətən izah edin. Çox istifadə etdim