Sisukord:

Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: 6 sammu
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: 6 sammu

Video: Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: 6 sammu

Video: Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: 6 sammu
Video: Raspberry Pi Explained in 100 Seconds 2024, November
Anonim
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem

Inimesed tahavad oma majas mugavalt tunda. Kuna meie piirkonna kliima ei pruugi meile sobida, kasutame tervisliku sisekeskkonna säilitamiseks paljusid seadmeid: kütteseadet, õhujahutit, õhuniisutajat, õhukuivatit, puhastit jne. Tänapäeval on tavaline leida mõningaid seadmeid, mis on varustatud automaatse režiimi, et tunda keskkonda ja ennast kontrollida. Kuid:

  • Paljud neist on ülehinnatud/ pole raha väärt.
  • Nende elektriahelaid on lihtsam katkestada ja raskem vahetada kui tavalisi mehaanilisi osi
  • Seadmeid peab haldama tootja rakendus. On tavaline, et teie majas on paar nutikat seadet ja igal neist on oma rakendus. Nende lahendus on integreerida rakendus sellistesse platvormidesse nagu Alexa, Google'i assistent ja IFTTT, nii et meil oleks "tsentraliseeritud" kontroller
  • Kõige tähtsam on see, et tootjad omavad meie andmeid ja Google/Amazon/IFTTT/etc omavad meie andmeid. Meil ei ole. Te ei pruugi hoolida privaatsusest, kuid mõnikord võiksime kõik soovida vaadata näiteks teie magamistoa niiskust, et otsustada, millal aknad avada.

Selles õpetuses ehitan suhteliselt odava Raspberry Pi-põhise sisekliima kontrolleri prototüübi. RPi suhtleb välisseadmetega SPI/I2C/USB -liideste kaudu:

  • Temperatuuri, niiskuse ja õhurõhu kogumiseks kasutatakse atmosfääriandurit.
  • Kõrge täpsusega õhukvaliteedi andur pakub atmosfääri tahkete osakeste (PM2.5 ja PM10) andmeid, mida kasutatakse õhukvaliteedi indeksi (AQI) arvutamiseks

Kontroller töötleb omandatud andmeid ja käivitab seadme toiminguid, saates päringuid IFTTT Webhooki automatiseerimisteenusele, mis juhib toetatud WiFi nutikaid pistikuid.

Prototüüp on ehitatud nii, et sinna saab hõlpsasti lisada muid andureid, seadmeid ja automatiseerimisteenuseid.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

Selle ehitamiseks soovitatav riistvara:

  1. Raspberry Pi (mis tahes versioon) WiFi -ga. Ehitan selle RPi B+abil. RPi ZeroW läheks hästi ja maksaks ~ 15 dollarit
  2. BME280 andur temperatuuri, niiskuse, õhurõhu jaoks ~ 5 $
  3. A Nova SDS011 ülitäpne laser PM2.5/PM10 õhukvaliteedi tuvastamise andurimoodul ~ 25 $
  4. LED/LCD ekraan. Kasutasin SSD1305 2,23 -tollist OLED -ekraani ~ 15 $
  5. Mõned WiFi/ZigBee/Z-Wave nutikad pistikupesad. 10-20 dollarit iga
  6. Õhupuhasti, õhuniisutaja, õhukuivati, kütteseade, jahuti jne koos mehaaniliste lülititega. Näiteks kasutasin selle õpetuse tegemiseks odavat õhupuhasti

Ülaltoodud kogumaksumus on <100 dollarit, palju väiksem kui näiteks nutikas puhastaja, mis võib kergesti maksta 200 dollarit.

Samm: Raspbery Pi ühendamine

Raspbery Pi ühendamine
Raspbery Pi ühendamine

Lülitusskeem näitab, kuidas RPi ühendada anduriga BME280, kasutades I2C -liidest ja OLED -ekraaniga HAT, kasutades SPI -liidest.

Waveshare OLED MÜTSi saab GPIO peale kinnitada, kuid teiste välisseadmetega jagamiseks vajate GPIO jagajat. Selle saab konfigureerida I2C kasutamiseks, jootes tagaküljel olevad takistid.

Lisateavet SSD1305 OLED MÜTSI kohta leiate siit.

Nii I2C kui ka SPI liidesed tuleb RPi -s lubada koos:

sudo raspi-config

Nova SDS011 tolmuandur on RPi-ga ühendatud USB-pordi kaudu (jada-USB-adapteriga).

Samm 3: Andmete kogumine anduritelt

Atmosfääri andmed, mis näevad välja üsna lihtsad, kogutakse python -skripti BME280 andurilt.

21. nov-20 19:19:25-INFO-kompenseeritud lugemine (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, ajatempel = 2020-11-21 19: 19: 25.604317, temp = 20.956 ° C, rõhk = 1019.08 hPa, niiskus = 49.23 % rH)

Tolmuanduri andmed vajavad veidi rohkem töötlemist. Andurimoodul imeb tahkete osakeste tuvastamiseks mõned õhuproovid sisse, seega peaks see usaldusväärsete tulemuste saamiseks mõnda aega (30 sekundit) töötama. Oma tähelepanekute põhjal arvestan ainult viimase 3 proovi keskmisega. Protsess on saadaval selles skriptis.

21. nov -20 19:21:07 - DEBUG - 0. PM2.5: 2.8, PM10: 5.9

21. nov-20 19:21:09- DEBUG- 1. PM2.5: 2.9, PM10: 6.0 21. nov-20 19:21:11- DEBUG- 2. PM2.5: 2.9, PM10: 6.0 21- 20. november 19:21:13- DEBUG- 3. PM2.5: 2.9, PM10: 6.3 21. nov-20 19:21:15- DEBUG- 4. PM2.5: 3.0, PM10: 6.2 21. november- 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21. nov -20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21. november 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 - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 21. nov -20 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 21. nov -20 19:21:34 - DEBUG - 13. PM2.5: 3.3, PM10: 7.1 21. nov -20 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1

Tolmuandur pakub ainult PM2.5 ja PM10 indeksit. AQI arvutamiseks vajame python-aqi moodulit:

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

Andmete kogumine, kuvamine ja seadme juhtimine toimub samaaegselt ja asünkroonselt. Andmed salvestatakse kohalikku andmebaasi. Meil ei ole vaja neid sageli käitada, kui keskkond ei muutu liiga kiiresti. Minu jaoks piisab 15 -minutilisest vaheajast. Lisaks kogub tolmuandurimoodul tolmu enda sisse, nii et me ei peaks seda puhastusülesande vältimiseks üle kasutama.

4. samm: koduautomaatika teenuse seadistamine

Koduautomaatika teenuse seadistamine
Koduautomaatika teenuse seadistamine
Koduautomaatika teenuse seadistamine
Koduautomaatika teenuse seadistamine

Seal on palju koduautomaatika platvorme ja need peaksid installima platvormi, mida toetab teie nutikas pistikupesa. Privaatsuse osas peaksite oma süsteemi seadistama. Vastasel juhul saate kasutada populaarseid platvorme, mida toetab enamik WiFi nutikaid pistikupesasid: Google Assistant, Alexa või IFTTT. Proovige valida API -ga pesaplatvorm, millega suhelda (Webhook sobib selleks ideaalselt)

Kasutan selles õpetuses IFTTT -d, sest seda on väga lihtne kasutada isegi algajatele. Kuid pidage meeles, et: 1. on palju nutikaid pistikupesi, mis ei toeta IFTTT -d, ja 2. selle kirjutamise ajal võimaldab IFTTT tasuta luua ainult 3 apletti (automatiseerimisülesandeid), millest piisab vaid ühele seadet.

Need on sammud:

1. Looge IFTTT -s kaks apletti seadme sisse- ja väljalülitamiseks, kasutades Webhooki teenust. Üksikasjad leiate siit.

2. Kopeerige API võti ja kopeerige see pythoni skripti. Soovitan turvalisuse kaalutlustel hoida seda eraldi failis.

3. Määrake põhiskriptis juhtimisloogika/parameetrid.

5. samm: tulemused

Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused
Tulemused

OK, nüüd testime süsteemi.

OLED -ekraan näitab praegust temperatuuri, niiskust ja arvutatud õhukvaliteedi indeksit (AQI). Samuti kuvatakse viimase 12 tunni minimaalne ja maksimaalne väärtus.

AQI aegridade andmed mõne päeva pärast näitavad midagi huvitavat. Pange tähele AQI mustri tõusu? See juhtus kaks korda päevas, väike tipp umbes kell 12.00 ja kõrgeim tipp on umbes kell 19.00. Noh, sa arvasid, et see oli siis, kui me süüa tegime, levitades ümber palju tahkeid osakesi. Huvitav on näha, kuidas meie igapäevane tegevus mõjutab sisekeskkonda.

Samuti kestis näitaja viimane tõus palju lühem kui eelmised. siis lisame süsteemi õhupuhasti. RPi kliimaseade saadab PURIFIER_ON päringu, kui AQI> 50 ja PURIFIER_OFF, kui AQI <20. Sel ajal näete IFTTT Webhooki päästikut.

6. samm: järeldus

See on kõik!

Kogutud andmeid saab kasutada ka õhksoojendite, jahutite, (de) õhuniisutajate jms juhtimiseks. Peate lihtsalt ostma rohkem nutikaid pistikupesasid ja iga vana seade muutub "targaks".

Kui soovite juhtida paljusid seadmeid, peate võib -olla hoolikalt kaaluma, millist koduautomaatika teenust soovite kasutada. Soovitan tungivalt luua avatud lähtekoodiga koduautomaatika platvorm, kuid kui see on liiga keeruline, on olemas lihtsamaid lahendusi, nagu Google Assistant ja IFTTT Webhook, või Zigbee nutipesade kasutamine.

Selle prototüübi täieliku rakendamise leiate Githubi hoidlast:

github.com/vuva/IndoorClimateControl

Lõbutse hästi !!!

Soovitan: