Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
İstixananız varsa və ya istixananızı mini ağıllı bir fermaya yüksəltmək üçün gələcək planlarınız varsa, temperatur və rütubətin izlənməsi vacibdir.
İlk təlimatım üçün bir prototipin necə yaradılacağını göstərəcəyəm:
- DHT11 temperatur və rütubət sensorunu Arduino Mega 2560 -a qoşun
- Sensor məlumatlarını oxumaq üçün Arduino C -ni proqramlaşdırın
- Arduino -ya qoşulmuş bir LCD -də temperatur və rütubət məlumatlarını göstərin
- Arduino -ya sensor məlumatlarını Raspberry Pi 3 Model B+ -ya göndərməyi tapşırın
- Sensor məlumatlarını göstərmək üçün Python -da kod yazın
Niyə bir RPi və Arduino birlikdə istifadə etməliyik?
Arduino -nun üstün olduğu I/O və RPi -nin daha yaxşı olduğu şəbəkə əlaqəsi/çox işləmə/vizuallara ehtiyacınız varsa, Arduino və RPi bağlantısı böyük imkanlara imkan verə bilər.
Başqa sözlə, intensiv tapşırıqları idarə etmək üçün Arduinodan istifadə edəcəyik və intensiv işləri hesablamaq üçün RPi -dən istifadə edəcəyik.
Arduinosun möhkəmləndirilmiş versiyaları Rugged-Circuits-də mövcuddur
Addım 1: Arduino və RPi Təchizatını əldə edin
Arduino başlanğıc dəstləri asanlıqla mövcuddur və müxtəlif növ sensorlar və qurğularla sınaqdan keçirməyə imkan verir. Başlanğıc dəsti almaq, müxtəlif hissələri ayrıca sifariş etmək əvəzinə daha ucuz başa gəlir. Aşağıda Banggood və Amazon US -a işarə edən bəzi ortaq bağlantılar verdim.
Arduino Başlanğıc Kit (Banggood)
Arduino Başlanğıc Kit (Amazon ABŞ)
Element14 RPi 3 B+ Anakart (Amazon ABŞ)
Raspberry Pi 3 B+ Kılıf (Amazon ABŞ)
32 GB Micro SD kart (Amazon ABŞ).
Addım 2: DHT11 və LCD -ni Arduino -ya qoşun
Addım 3: Arduino proqramlaşdırın
#arduino-dht11-lcd2004
#Müəllif: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Arduino ilə əlaqəli DHT11 -dən məlumatları oxuyur, LCD2004 -də göstərilir və məlumatları serial vasitəsilə Raspberry Pi -yə göndərir.
#daxil edin
#daxil edin
// LCD displey I2C avtobusundakı 0x27 cihaz nömrəsi olaraq təyin olunur
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 pin 8 -ə bağlıdır
DHT ilə; #defin sensorPin 8
// Raspberry Pi Serial 0 -a qoşulub
#serialPi Serialını təyin edin
boş quraşdırma () {
lcd.begin (20, 4); // LCD ekranın interfeysini işə salır və lcd.init () displeyinin ölçülərini (eni və hündürlüyü) təyin edir; lcd.lightlight (); serialPi.begin (9600); // Arduino serial monitoruna}
boşluq döngəsi () {
// Sensor məlumatlarını oxuyun
int sensorData = DHT.read11 (sensorPin); üzmə temperaturu = DHT.temperatur; üzən rütubət = DHT nəmlik;
// Çap temperaturu
lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd çap (temperatur); lcd.print ("C");
// Çap nəmliyi
lcd.setCursor (0, 1); lcd.print ("Rütubət"); lcd çap (rütubət); lcd.print (" %");
// Raspberry Pi -yə temperatur və rütubət məlumatlarını göndərin
serialPi.print ("");
// 10 saniyə gözləyin
gecikmə (10000); }
Addım 4: İş Arduino, LCD və DHT11 Quraşdırması
Addım 5: Raspberry Pi -ni Arduino -ya qoşun
Addım 6: USB Port Serial Məlumatlarını Oxumaq üçün RPi Python Kodu
#rpi-arduino-dht11
#Raspberry Pi, Arduinodan gələn temperatur və rütubət sensoru məlumatlarını oxuyur
serial, simli, vaxtı idxal edin
#Bu nümunədə /dev /ttyUSB0 istifadə olunur
#Bu, vəziyyətinizdə/dev/ttyUSB1,/dev/ttyUSB2 və s. Ser = serial olaraq dəyişə bilər. Serial ('/dev/ttyUSB0', 9600)
#Aşağıdakı kod bloku belə işləyir:
#Seriya məlumatları varsa, xətti oxuyun, UTF8 məlumatlarını deşifr edin, #… sətir simvollarının sonunu çıxarın #… məlumatları temperatur və rütubətə bölün #… başlanğıc və bitiş göstəricilərini silin () #… çıxışı çap edərkən Doğru: əgər ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') temperatur = datasplit [0]. zolaq ('') çap (temperatur) çap (rütubət)