Мазмұны:

Температура мен ылғалдылық Arduino -дан Raspberry Pi -ге дейін: 6 қадам
Температура мен ылғалдылық Arduino -дан Raspberry Pi -ге дейін: 6 қадам

Бейне: Температура мен ылғалдылық Arduino -дан Raspberry Pi -ге дейін: 6 қадам

Бейне: Температура мен ылғалдылық Arduino -дан Raspberry Pi -ге дейін: 6 қадам
Бейне: Arduino İle Mutlu Çiçekler || Otomatik Sulama Sistemi Nasıl Yapılır? 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 -дан асып түсетін енгізу -шығаруды және RPi әлдеқайда жақсы болатын желілік байланысты/мульти -оқылымды/көрнекі құралдарды қажет ететін жағдайда үлкен мүмкіндіктерге мүмкіндік береді.

Басқаша айтқанда, біз қарқынды тапсырмаларды басқару үшін Arduino -ны қолданамыз және қарқынды тапсырмаларды есептеу үшін RPi -ді қолданамыз.

Arduinos-тың берік нұсқалары Rugged-Circuits-те қол жетімді

1 -қадам: Arduino және RPi аппараттық құралдарын алу

Arduino стартер жинақтары қол жетімді және әр түрлі сенсорлар мен гаджеттермен тәжірибе жасауға мүмкіндік береді. Бастапқы жинақты алу әр түрлі бөлшектерге бөлек тапсырыс берудің орнына арзанырақ болады. Мен төменде Banggood және Amazon US нұсқайтын бірнеше серіктестік сілтемелерді ұсындым.

Arduino бастауыш жинағы (Banggood)

Arduino бастауыш жинағы (Amazon Amazon)

Элемент14 RPi 3 B+ аналық плата (Amazon АҚШ)

Raspberry Pi 3 B+ корпусы (Amazon АҚШ)

32 ГБ Micro SD картасы (Amazon АҚШ).

2 -қадам: DHT11 мен СКД Arduino -ға қосыңыз

DHT11 & LCD -ді Arduino -ға қосыңыз
DHT11 & LCD -ді Arduino -ға қосыңыз

3 -қадам: Arduino бағдарламасын жасаңыз

#arduino-dht11-lcd2004

#Автор: Васу Верапен

#https://www.instructables.com/member/VasooV/ #Arduino -ға қосылған DHT11 деректерін оқиды, LCD2004 экранында көрсетіледі және Raspberry Pi -ге деректерді сериялық түрде жібереді.

#қосу

#қосу

// СКД дисплейі I2C шинасындағы 0x27 құрылғы нөмірі ретінде анықталады

LiquidCrystal_I2C LCD (0x27, 20, 4);

// DHT11 8 түйреуішке қосылған

DHT; #анықтайтын сенсорPin 8

// Raspberry Pi 0 сериясына қосылған

#сериялықPi сериясын анықтаңыз

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

lcd.begin (20, 4); // СКД экранының интерфейсін инициализациялайды және lcd.init () дисплейінің өлшемдерін (ені мен биіктігін) көрсетеді; lcd.backlight (); serialPi.begin (9600); // Arduino сериялық мониторға}

void loop () {

// Сенсор мәліметтерін оқу

int sensorData = DHT.read11 (sensorPin); қалқу температурасы = DHT.температурасы; қалқымалы ылғалдылық = 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, LCD және DHT11 орнату

Жұмыс Arduino, LCD және DHT11 қондырғысы
Жұмыс Arduino, LCD және DHT11 қондырғысы

5 -қадам: Raspberry Pi -ді Arduino -ға қосыңыз

Raspberry Pi -ді Arduino -ға қосыңыз
Raspberry Pi -ді Arduino -ға қосыңыз

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

#rpi-arduino-dht11

#Raspberry 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]. жолақ ('') басып шығару (температура) басып шығару (ылғалдылық)

Ұсынылған: