Мазмуну:

Температура жана нымдуулук Arduino тартып Raspberry Pi чейин: 6 кадам
Температура жана нымдуулук Arduino тартып Raspberry Pi чейин: 6 кадам

Video: Температура жана нымдуулук Arduino тартып Raspberry Pi чейин: 6 кадам

Video: Температура жана нымдуулук Arduino тартып Raspberry Pi чейин: 6 кадам
Video: Как использовать термопару MAX6675 типа k с Arduino 2024, Июль
Anonim
Температура жана нымдуулук Arduino тартып Raspberry Pi чейин
Температура жана нымдуулук Arduino тартып Raspberry Pi чейин

Температураны жана нымдуулукту көзөмөлдөө сизде күнөскана болсо же келечегиңизде теплицаңызды мини акылдуу фермага жаңыртууну пландаштырса маанилүү.

Биринчи инструктаж үчүн мен прототипти кантип түзүүнү көрсөтөм:

  • DHT11 температура жана нымдуулук сенсорун Arduino Mega 2560ка туташтырыңыз
  • Сенсордук маалыматтарды окуу үчүн C тилиндеги Arduino программасы
  • Температура жана нымдуулук маалыматтарын Arduino менен туташкан ЖКда көрсөтүү
  • Arduinoго сенсор маалыматын Raspberry Pi 3 Model B+ га жөнөтүүнү тапшырыңыз
  • Сенсор маалыматын көрсөтүү үчүн Pythonго код жазыңыз

Эмне үчүн RPi менен Arduino бирге колдонулат?

Arduino жана RPi байланышы, эгер сизге Arduino мыкты болгон I/O жана RPi алда канча жакшыраак болгон тармактык байланыш/көп жактуу/көргөзмө керек болсо, чоң мүмкүнчүлүктөрдү берет.

Башкача айтканда, биз интенсивдүү иштерди көзөмөлдөө үчүн Arduino колдонобуз жана интенсивдүү тапшырмаларды аткаруу үчүн RPi колдонобуз.

Arduinosтун бышыкталган версиялары Rugged-Circuits'те жеткиликтүү

1 -кадам: Arduino & RPi жабдыктарын алуу

Arduino стартер топтомдору жеткиликтүү жана сенсорлордун жана гаджеттердин ар кандай түрлөрү менен тажрыйба жүргүзүүгө мүмкүнчүлүк берет. Баштапкы комплектти сатып алуу, ар кандай бөлүктөргө өзүнчө заказ кылуунун ордуна арзаныраак иштейт. Мен төмөндө Banggood жана Amazon US көрсөткөн кээ бир өнөктөш шилтемелерди бердим.

Arduino баштоочу комплект (Banggood)

Arduino башталгыч комплект (Amazon АКШ)

Element14 RPi 3 B+ Motherboard (Amazon US)

Raspberry Pi 3 B+ Case (Amazon US)

32GB Micro SD карта (Amazon АКШ).

2 -кадам: DHT11 & LCDди Arduino менен туташтырыңыз

DHT11 & LCDди Arduino менен туташтырыңыз
DHT11 & LCDди Arduino менен туташтырыңыз

3 -кадам: Arduino программасы

#arduino-dht11-lcd2004

#Автор: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Ардуиного туташкан DHT11ден алынган маалыматтарды окуйт, LCD2004 дисплейинде көрсөтүлөт жана маалыматтарды Raspberry Piге сериал аркылуу жөнөтөт.

#кошуу

#кошуу

// ЖК дисплей I2C шинасындагы 0x27 түзмөк номери катары аныкталат

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 8 -пинге туташкан

DHT DHT; #аныктоочу сенсорПин 8

// Raspberry Pi 0 сериясына туташкан

#Perial сериясын аныктаңыз

жараксыз орнотуу () {

lcd.begin (20, 4); // ЖК экранына интерфейсти баштайт жана дисплейдин өлчөмдөрүн (туурасы жана бийиктиги) аныктайт lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino сериялык мониторго}

void loop () {

// Сенсордук маалыматтарды окуу

int sensorData = DHT.read11 (sensorPin); сүзүү температурасы = DHT.temperature; калкып нымдуулук = DHT. нымдуулук;

// Басып чыгаруу температурасы

lcd.setCursor (0, 0); lcd.print ("Температура"); lcd.print (температура); lcd.print ("C");

// Нымдуулукту басып чыгаруу

lcd.setCursor (0, 1); lcd.print ("Нымдуулук"); lcd.print (нымдуулук); lcd.print (" %");

// Raspberry Piге температура жана нымдуулук маалыматтарын жөнөтүү

serialPi.print ("");

// 10 секунд күтө туруңуз

кечигүү (10000); }

4 -кадам: жумушчу Arduino, ЖК & DHT11 орнотуу

Жумушчу Arduino, ЖК & DHT11 орнотуусу
Жумушчу Arduino, ЖК & DHT11 орнотуусу

5 -кадам: Raspberry Pi'ди Arduino менен туташтырыңыз

Raspberry Pi'ди Arduino менен туташтырыңыз
Raspberry Pi'ди Arduino менен туташтырыңыз

6 -кадам: RPi Python коду USB портунун сериялык маалыматтарын окуу үчүн

#rpi-arduino-dht11

#Малина Pi температура жана нымдуулук сенсорунун маалыматтарын Arduinoдон окуйт

серияны, сапты, убакытты импорттоо

#Бул мисалда /dev /ttyUSB0 колдонулат

#Бул сиздин учурда өзгөрүшү мүмкүн/dev/ttyUSB1,/dev/ttyUSB2, ж.б. ser = serial. Serial ('/dev/ttyUSB0', 9600)

#Төмөнкү код блогу мындай иштейт:

#Эгерде сериялык маалыматтар бар болсо, сапты окуңуз, UTF8 маалыматын декоддоңуз, #… саптын символдорунун соңун алып салыңыз #… маалыматтарды температурага жана нымдуулукка бөлүңүз #… баштапкы жана аяктоочу көрсөткүчтөрдү алып салыңыз () #… чыгарууну басып чыгаруу учурунда Ырас: эгер ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') температура = datasplit [0]. тилке ('') басып чыгаруу (температура) басып чыгаруу (нымдуулук)

Сунушталууда: