Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы: 6 кадам
Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы: 6 кадам
Anonim
Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы
Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы
Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы
Raspberry Pi Климаттын Мониторинг жана Контролдоо Системасы

Адамдар үйүнүн ичинде жайлуу болгусу келет. Биздин аймактын климаты өзүбүзгө туура келбеши үчүн, биз үй ичиндеги ден соолукту чыңдоо үчүн көптөгөн приборлорду колдонобуз: жылыткыч, аба муздатуучу, нымдагыч, нымдандыргыч, тазалагыч ж. Б. айлана -чөйрөнү сезүү жана өздөрүн көзөмөлдөө режими. Бирок:

  • Алардын көбү ашыкча баада/ акчага татыктуу эмес.
  • Алардын электрдик микросхемалары кадимки механикалык тетиктерге караганда бузулушу оңой жана алмаштыруу кыйын
  • Приборлорду өндүрүүчүнүн колдонмосу башкарышы керек. Үйүңүздө бир нече акылдуу шаймандар бар жана алардын ар биринин өз колдонмосу бар. Алардын чечими - бул колдонмону Alexa, Google Assistant жана IFTTT сыяктуу платформаларга интеграциялоо, андыктан бизде "борборлоштурулган" контролер бар.
  • Эң негизгиси, өндүрүүчүлөрдө биздин маалыматтар бар, ал эми Google/Amazon/IFTTT/ж.б биздин маалыматтарга ээ. Биз эмес. Сиз купуялуулукка маани бербешиңиз мүмкүн, бирок кээде баарыбыз уктоочу бөлмөнүн нымдуулугун карап көргүбүз келиши мүмкүн, мисалы, терезелерди кайсы убакта ачуу керектигин чечүү үчүн.

Бул үйрөткүчтө мен Raspberry Pi негизиндеги жабык климаттын контролерунун прототибин түзөм. RPi перифериялык түзүлүштөр менен SPI/I2C/USB интерфейстери аркылуу байланышат:

  • Атмосфералык сенсор температураны, нымдуулукту жана абанын басымын чогултуу үчүн колдонулат.
  • Жогорку тактыктагы аба сапатынын сенсору аба сапатынын индексин (AQI) эсептөө үчүн колдонулган атмосфералык бөлүкчөлөрдү (PM2.5 жана PM10) берет.

Контроллер алынган маалыматты иштетет жана колдоого алынган WiFi Smart штепсельдерин көзөмөлдөгөн IFTTT Webhook автоматташтыруу кызматына сурамдарды жөнөтүү менен түзмөктүн аракеттерин козгойт.

Прототип башка сенсорлорду, приборлорду жана автоматташтыруу кызматтарын оңой кошо тургандай кылып курулган.

1 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Муну куруу үчүн сунушталган жабдыктар:

  1. WiFi менен Raspberry Pi (каалаган версиясы). Мен муну RPi B+менен курам. RPi ZeroW болгону жакшы болмок жана ~ 15 доллар турат
  2. Температура, нымдуулук, абанын басымы үчүн BME280 сенсор ~ 5 $
  3. A Nova SDS011 Жогорку Тактык Лазердик PM2.5/PM10 аба сапатын аныктоочу сенсор модулу ~ 25 $
  4. LED/LCD дисплей. Мен SSD1305 2.23 дюймдук OLED экранды колдондум ~ 15 $
  5. Кээ бир WiFi/ZigBee/Z-Wave Smart Sockets. Ар бири 10-20 доллар
  6. Механикалык өчүргүчтөрү бар аба тазалагыч, нымдагыч, нымдандыргыч, жылыткыч, муздаткыч ж.б. Мисалы, мен бул окуу куралын жасоо үчүн арзан аба тазалагычты колдондум

Жогорудагы жалпы наркы <100 $, оңой эле 200 $ турган акылдуу тазалагычтан алда канча аз.

2 -кадам: Raspbery Pi'ге зым тартуу

Raspbery Pi менен байланышуу
Raspbery Pi менен байланышуу

Райондук диаграмма IPC интерфейсин колдонуп BME280 сенсорун жана SPI интерфейсин колдонуп OLED дисплейи менен RPiди кантип өткөрүүнү көрсөтөт.

Waveshare OLED HAT GPIO үстүнө тиркелиши мүмкүн, бирок башка перифериялык түзүлүштөр менен бөлүшүү үчүн сизге GPIO бөлгүч керек. Бул I2Cди арткы жагындагы резисторлорду ширетүү менен конфигурацияланган болушу мүмкүн.

SSD1305 OLED HAT жөнүндө кошумча маалыматты бул жерден тапса болот.

I2C жана SPI интерфейстерин RPiде иштетүү керек:

sudo raspi-config

Nova SDS011 Чаң сенсору RPiге USB порт аркылуу туташат (Сериялык-USB адаптери менен).

3 -кадам: сенсорлордон маалыматтарды чогултуу

Абдан жөнөкөй көрүнгөн атмосфералык маалыматтар BME280 сенсорунан питон скриптинен чогултулган.

21-Ноябрь-20 19:19:25-ИНФО-компенсацияланган_окуу (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, убакыт белгиси = 2020-11-21 19: 19: 25.604317, темп = 20.956 ° C, басым = 1019.08 гПа, нымдуулук = 49.23 % rH)

Чаң сенсорунун маалыматы дагы бир аз иштетүүгө муктаж. Сенсордук модуль бөлүкчөлөрдү аныктоо үчүн кээ бир аба үлгүлөрүн сорот, андыктан ишенимдүү жыйынтыктарга ээ болуу үчүн ал бир аз убакыт (30с) иштеши керек. Менин байкоом боюнча, мен акыркы 3 үлгүдөгү орточо эсепке алам. Бул процесс бул скриптте жеткиликтүү.

21 -Ноябрь -20 19:21:07 - Мүчүлүштүктөр - 0. PM2.5: 2.8, PM10: 5.9

21-Ноябрь-20 19:21:09- Мүчүлүштүктөр- 1. PM2.5: 2.9, PM10: 6.0 21-Nov-20 19:21:11- DEBUG- 2. PM2.5: 2.9, PM10: 6.0 21- Nov-20 19:21:13- Мүчүлүштүктөр- 3. PM2.5: 2.9, PM10: 6.3 21-Nov-20 19:21:15- DEBUG- 4. PM2.5: 3.0, PM10: 6.2 21-Nov- 20 19:21:17 - Мүчүлүштүктөр - 5. PM2.5: 2.9, PM10: 6.4 21 -Nov -20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21 -Nov -20 19: 21: 21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21 -Nov -20 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 21 -Nov -20 19:21: 25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 21 -Nov -20 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 21 -Nov -20 19:21:30 - Мүчүлүштүктөр - 11. PM2.5: 3.2, PM10: 6.9 21 -Ноябрь -20 19:21:32 - Мүчүлүштүктөр - 12. PM2.5: 3.3, PM10: 7.0 21 -Ноябрь -20 19:21:34 - Мүчүлүштүктөр - 13. PM2.5: 3.3, PM10: 7.1 21 -Nov -20 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1

Чаң сенсору PM2.5 жана PM10 индекстерин гана камсыз кылат. AQIди эсептөө үчүн бизге python-aqi модулу керек:

aqi_index = aqi.to_aqi ([(aqi. POLLUTANT_PM25, dust_data [0]), (aqi. POLLUTANT_PM10, dust_data [1])])

Маалыматтарды чогултуу, көрсөтүү жана шаймандарды көзөмөлдөө бир убакта жана асинхрондуу түрдө аткарылат. Маалыматтар жергиликтүү маалымат базасында сакталат. Айлана өтө бат өзгөрбөсө, биз аларды тез -тез иштетүүнүн кажети жок. Мен үчүн 15 мүнөт аралык убакыт жетиштүү. Мындан тышкары, чаң сенсорунун модулунда чаң топтолот, андыктан тазалоо тапшырмасын аткарбоо үчүн аны ашыкча колдонбошубуз керек.

4 -кадам: Үйдү автоматташтыруу кызматын орнотуу

Үйдү автоматташтыруу кызматын жөндөө
Үйдү автоматташтыруу кызматын жөндөө
Үйдү автоматташтыруу кызматын жөндөө
Үйдү автоматташтыруу кызматын жөндөө

Ал жерде көптөгөн үй автоматташтыруу платформасы бар жана сизде акылдуу розетка колдогон платформаны орнотушу керек. Эгерде сиз купуялыкка байланыштуу болсоңуз, анда өзүңүздүн системаңызды орнотушуңуз керек. Болбосо, көпчүлүк WiFi акылдуу розеткалары колдогон популярдуу платформаларды колдоно аласыз: Google Assistant, Alexa же IFTTT. Өз ара аракеттенүү үчүн API менен розетка платформасын тандап көрүңүз (Webhook бул үчүн идеалдуу)

Мен бул үйрөткүчтө IFTTT колдонуп жатам, анткени жаңылар үчүн да колдонуу абдан оңой. Бирок билиңиз: 1. IFTTTди колдобогон көптөгөн акылдуу розеткалар бар, жана 2. Мен муну жазган учурда, IFTTT сизге 3 апплетти (автоматташтыруу тапшырмаларын) бекер түзүүгө мүмкүндүк берет, бул 1 үчүн жетиштүү. шайман.

Бул кадамдар:

1. Webhook кызматын колдонуп, шайманды күйгүзүү жана өчүрүү үчүн IFTTTде эки апплет түзүңүз. Чоо -жайын бул жерден тапса болот.

2. API ачкычын көчүрүү жана python скриптине көчүрүү. Мен аны коопсуздук үчүн өзүнчө файлда сактоону сунуштаар элем.

3. Башкы скрипттеги башкаруу логикасын/параметрлерин аныктаңыз.

5 -кадам: Жыйынтыктар

Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар

Макул, азыр биз системаны сынайбыз.

OLED дисплей учурдагы Темп, Нымдуулукту жана Абанын Сапатынын Индексин (AQI) көрсөтөт. Ошондой эле акыркы 12 саатта минималдуу жана максималдуу маанини көрсөтөт.

Бир нече күндүн ичинде AQIнин убакыт сериясындагы маалыматтар кызыктуу нерсени көрсөтүп турат. AQI үлгүсүндөгү толкундарга көңүл бургула? Бул күнүнө эки жолу болгон, кичинекей чоку саат 12:00 чамасында, бийик чоку 19:00 чамасында. Ойлоп көрсөңүз, бул биз тамак жасаганда, айланасына көптөгөн бөлүкчөлөрдү чачып жибергенибиз. Күнүмдүк ишибиз ички чөйрөгө кандай таасир этерин көрүү кызык.

Ошондой эле, көрсөткүчтөгү акыркы толкун мурдагыларга караганда бир топ кыска убакытка созулган. ошондо биз системага аба тазалагычты кошобуз. RPi климат контролери AQI> 50 болгондо PURIFIER_ON сурамын жана AQI <20 болгондо PURIFIER_OFF жөнөтөт. Сиз ошол учурда IFTTT Webhook триггерин көрө аласыз.

6 -кадам: Жыйынтык

Дал ушул!

Чогултулган маалыматтар аба жылыткычтарын, муздаткычтарды, (нымдагычтарды) ж.б. башкаруу үчүн да колдонулушу мүмкүн. Сиз жөн гана көбүрөөк акылдуу розеткаларды сатып алышыңыз керек жана ар бир эски шайман "акылдуу" болуп калат.

Эгерде сиз көптөгөн приборлорду башкаргыңыз келсе, кайсы үйдү автоматташтыруу кызматын колдонууну ойлонушуңуз керек. Мен ачык булактай үйдү автоматташтыруу платформасын түзүүнү сунуштаар элем, бирок бул өтө татаал болсо, Google Assistant жана IFTTT Webhook же Zigbee акылдуу розеткаларын колдонуу сыяктуу жөнөкөй чечимдер бар.

Бул прототиптин толук аткарылышын Github репозиторийинен тапса болот:

github.com/vuva/IndoorClimateControl

Көңүл ачуу !!!

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