Mündəricat:

Arduinodan Raspberry Pi -yə qədər temperatur və rütubət: 6 addım
Arduinodan Raspberry Pi -yə qədər temperatur və rütubət: 6 addım

Video: Arduinodan Raspberry Pi -yə qədər temperatur və rütubət: 6 addım

Video: Arduinodan Raspberry Pi -yə qədər temperatur və rütubət: 6 addım
Video: Lesson 15: Using Soil Moisture Sensor with Arduino SunFounder Kit | Robojax 2024, Noyabr
Anonim
Arduino -dan Raspberry Pi -yə qədər temperatur və rütubət
Arduino -dan Raspberry Pi -yə qədər temperatur və rütubət

İ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

DHT11 və LCD -ni Arduino -ya qoşun
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ı

İş Arduino, LCD və DHT11 Quraşdırması
İş Arduino, LCD və DHT11 Quraşdırması

Addım 5: Raspberry Pi -ni Arduino -ya qoşun

Raspberry Pi -ni Arduino -ya qoşun
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)

Tövsiyə: