Turinys:

„Raspberry Pi“patalpų klimato stebėjimo ir kontrolės sistema: 6 žingsniai
„Raspberry Pi“patalpų klimato stebėjimo ir kontrolės sistema: 6 žingsniai

Video: „Raspberry Pi“patalpų klimato stebėjimo ir kontrolės sistema: 6 žingsniai

Video: „Raspberry Pi“patalpų klimato stebėjimo ir kontrolės sistema: 6 žingsniai
Video: Высокая плотность 2022 2024, Lapkritis
Anonim
Raspberry Pi patalpų klimato stebėjimo ir kontrolės sistema
Raspberry Pi patalpų klimato stebėjimo ir kontrolės sistema
Raspberry Pi patalpų klimato stebėjimo ir kontrolės sistema
Raspberry Pi patalpų klimato stebėjimo ir kontrolės sistema

Žmonės nori jaustis patogiai savo namuose. Kadangi mūsų regiono klimatas gali netikti mums, mes naudojame daug prietaisų, kad palaikytume sveiką patalpų aplinką: šildytuvą, oro aušintuvą, drėkintuvą, sausintuvą, valytuvą ir tt. Šiais laikais įprasta rasti kai kuriuos įrenginius su režimu pajusti aplinką ir valdyti save. Tačiau:

  • Daugelis jų yra per brangūs/ neverti pinigų.
  • Jų elektros grandines lengviau sulaužyti ir sunkiau pakeisti nei įprastas mechanines dalis
  • Prietaisus turi valdyti gamintojo programa. Įprasta, kad jūsų namuose yra keletas išmaniųjų prietaisų ir kiekvienas iš jų turi savo programą. Jų sprendimas yra integruoti programą į tokias platformas kaip „Alexa“, „Google Assistant“ir IFTTT, kad turėtume „centralizuotą“valdiklį.
  • Svarbiausia, kad gamintojai turi mūsų duomenis, o „Google“/„Amazon“/IFTTT/etc - mūsų duomenis. Mes ne. Galbūt jums nerūpi privatumas, bet kartais mes visi norėtume pažvelgti į jūsų miegamojo drėgmės modelį, pavyzdžiui, kad nuspręstume, kada atidaryti langus.

Šioje pamokoje aš sukuriu santykinai pigių „Raspberry Pi“pagrįstų patalpų klimato valdiklių prototipą. RPi bendrauja su išoriniais įrenginiais per SPI/I2C/USB sąsajas:

  • Atmosferos jutiklis naudojamas temperatūrai, drėgmei ir oro slėgiui surinkti.
  • Didelio tikslumo oro kokybės jutiklis pateikia atmosferos kietųjų dalelių (PM2.5 ir PM10) duomenis, naudojamus oro kokybės indeksui (AQI) apskaičiuoti

Valdiklis apdoroja gautus duomenis ir suaktyvina įrenginio veiksmus siunčiant užklausas IFTTT „Webhook“automatizavimo tarnybai, kuri valdo palaikomus „WiFi Smart“kištukus.

Prototipas sukurtas taip, kad būtų galima lengvai pridėti kitų jutiklių, prietaisų ir automatikos paslaugų.

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Rekomenduojama aparatūra šiam kūrimui:

  1. „Raspberry Pi“(bet kokia versija) su „WiFi“. Aš tai kuriu naudodamas RPi B+. „RPi ZeroW“puikiai tiktų ir kainuotų ~ 15 USD
  2. BME280 jutiklis, skirtas temperatūrai, drėgmei, oro slėgiui ~ 5 $
  3. A Nova SDS011 didelio tikslumo lazerio PM2.5/PM10 oro kokybės aptikimo jutiklio modulis ~ 25 $
  4. LED/LCD ekranas. Aš naudoju SSD1305 2,23 colio OLED ekraną ~ 15 $
  5. Kai kurie „WiFi“/„ZigBee“/„Z-Wave“išmanieji lizdai. 10-20 USD už kiekvieną
  6. Oro valytuvas, drėkintuvas, sausintuvas, šildytuvas, aušintuvas ir kt. Su mechaniniais jungikliais. Pavyzdžiui, šiai pamokai parengti naudojau pigų oro valytuvą

Aukščiau nurodytos bendros išlaidos yra <100 USD, daug mažesnės nei, tarkime, išmanusis valytuvas, kuris gali lengvai kainuoti 200 USD.

2 žingsnis: „Raspbery Pi“prijungimas

„Raspbery Pi“prijungimas
„Raspbery Pi“prijungimas

Grandinės schema parodo, kaip prijungti RPi su BME280 jutikliu naudojant I2C sąsają ir OLED ekraną HAT naudojant SPI sąsają.

„Waveshare“OLED skrybėlę galima pritvirtinti prie GPIO, tačiau norint ją bendrinti su kitais išoriniais įrenginiais, reikia GPIO skirstytuvo. Jis gali būti sukonfigūruotas naudoti I2C, lituojant galinėje pusėje esančius rezistorius.

Daugiau informacijos apie SSD1305 OLED HAT rasite čia.

Tiek I2C, tiek SPI sąsajos turi būti įjungtos RPi naudojant:

sudo raspi-config

„Nova SDS011“dulkių jutiklis prijungtas prie RPi per USB prievadą (naudojant serijinį USB adapterį).

3 veiksmas: duomenų rinkimas iš jutiklių

Atmosferos duomenys, kurie atrodo gana paprasti, renkami iš BME280 jutiklio iš „python“scenarijaus.

21 lapkričio 20 d. 19:19:25-INFORMACIJA-kompensuojamas skaitymas (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, laiko žyma = 2020-11-21 19: 19: 25.604317, temperatūra = 20.956 ° C, slėgis = 1019.08 hPa, drėgmė = 49.23 % rH)

Dulkių jutiklio duomenis reikia šiek tiek daugiau apdoroti. Jutiklio modulis įsiurbia kai kuriuos oro mėginius, kad aptiktų kietųjų dalelių, todėl jis turėtų veikti kurį laiką (30 sekundžių), kad būtų gauti patikimi rezultatai. Remdamasis savo pastebėjimu, atsižvelgiu tik į paskutinių 3 mėginių vidurkį. Procesas pasiekiamas šiame scenarijuje.

Lapkričio 21 d., 19:21:07 - DEBUG - 0. PM2.5: 2.8, PM10: 5.9

21 lapkričio 20 d. 19:21:09- DEBUG- 1. PM2.5: 2.9, PM10: 6.0 21-November-20 19:21:11- DEBUG- 2. PM2.5: 2.9, PM10: 6.0 21- Lapkričio 20 d. 19:21:13- DEBUG- 3. PM2.5: 2.9, PM10: 6.3 21-lap-20 19:21:15- DEBUG- 4. PM2.5: 3.0, PM10: 6.2 lapkričio 21 d. 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21 lapkričio 20 d. 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21 lapkritis 21: 21: 21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21 lapkričio 20 d. 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 Lapkričio 21 d. 19:21: 25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 Lapkričio 21 d. 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 Lapkričio 21 d. 19:21:30 - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 Lapkričio 21 d. 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 Lapkričio 21 d. 19:21:34 - DEBUG - 13. PM2.5: 3.3, PM10: 7.1 Lapkričio 21 d. 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1

Dulkių jutiklis pateikia tik PM2.5 ir PM10 indeksus. Norėdami apskaičiuoti AQI, mums reikia python-aqi modulio:

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

Duomenų rinkimas, rodymas ir prietaiso valdymas vykdomi vienu metu ir asinchroniškai. Duomenys išsaugomi vietinėje duomenų bazėje. Mums nereikia jų dažnai paleisti, jei aplinka nesikeičia per greitai. Man pakanka 15 minučių intervalo. Be to, dulkių jutiklio modulis kaupia dulkes viduje, todėl neturėtume jų per daug naudoti, kad išvengtume valymo užduoties.

4 veiksmas: namų automatizavimo paslaugos nustatymas

Namų automatikos paslaugos nustatymas
Namų automatikos paslaugos nustatymas
Namų automatikos paslaugos nustatymas
Namų automatikos paslaugos nustatymas

Yra daug namų automatizavimo platformų, todėl turėtumėte įdiegti platformą, kurią palaiko jūsų turimas išmanusis lizdas. Jei jums rūpi privatumas, turėtumėte sukurti savo sistemą. Priešingu atveju galite naudoti populiarias platformas, kurias palaiko dauguma „WiFi“išmaniųjų lizdų: „Google Assistant“, „Alexa“arba IFTTT. Pabandykite pasirinkti lizdo platformą su API, su kuria galėtumėte bendrauti („Webhook“puikiai tinka šiam tikslui)

Šioje pamokoje naudoju IFTTT, nes ją labai lengva naudoti net pradedantiesiems. Tačiau atminkite, kad: 1. yra daug išmaniųjų lizdų, kurie nepalaiko IFTTT, ir 2. tuo metu, kai rašau tai, IFTTT leidžia nemokamai sukurti tik 3 programėles (automatizavimo užduotis), kurių užtenka tik 1 prietaisas.

Tai yra šie veiksmai:

1. Naudodami „Webhook“paslaugą, IFTTT sukurkite dvi programėles, skirtas įjungti ir išjungti prietaisą. Išsamią informaciją rasite čia.

2. Nukopijuokite API raktą ir nukopijuokite jį į „python“scenarijų. Saugumo sumetimais siūlyčiau jį laikyti atskirame faile.

3. Apibrėžkite valdymo logiką/parametrus pagrindiniame scenarijuje.

5 žingsnis: Rezultatai

Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai
Rezultatai

Gerai, dabar mes išbandome sistemą.

OLED ekrane rodoma dabartinė temperatūra, drėgmė ir apskaičiuotas oro kokybės indeksas (AQI). Taip pat rodoma minimali ir maksimali vertė per pastarąsias 12 valandų.

AQI laiko eilučių duomenys per kelias dienas rodo kažką įdomaus. Ar pastebėjote AQI modelio šuolius? Tai atsitiko du kartus per dieną, maža smailė apie 12:00, o aukščiausia - apie 19:00. Na, jūs atspėjote, kad tada mes gaminame maistą, paskleisdami aplinkui daug kietųjų dalelių. Įdomu pamatyti, kaip mūsų kasdienė veikla veikia patalpų aplinką.

Be to, paskutinis figūros šuolis truko daug trumpiau nei ankstesni. tada į sistemą pridedame oro valytuvą. RPi klimato reguliatorius siunčia PURIFIER_ON užklausą, kai AQI> 50, ir PURIFIER_OFF, kai AQI <20. Tuo metu galite pamatyti IFTTT „Webhook“aktyviklį.

6 žingsnis: Išvada

Viskas!

Surinkti duomenys taip pat gali būti naudojami oro šildytuvams, aušintuvams, (de) drėkintuvams ir pan. Valdyti. Jums tereikia nusipirkti daugiau išmaniųjų lizdų ir kiekvienas senas prietaisas taps „protingas“.

Jei norite valdyti daugelį prietaisų, gali tekti gerai apsvarstyti, kuria namų automatikos paslauga norite naudotis. Aš labai siūlyčiau sukurti atviro kodo namų automatizavimo platformą, tačiau jei tai per daug sudėtinga, yra paprastesnių sprendimų, tokių kaip „Google Assistant“ir „IFTTT Webhook“, arba naudojant išmaniuosius „Zigbee“lizdus.

Visą šio prototipo įgyvendinimą galite rasti „Github“saugykloje:

github.com/vuva/IndoorClimateControl

Pasilinksmink !!!

Rekomenduojamas: