Innholdsfortegnelse:

Raspberry Pi innendørs klimaovervåkings- og kontrollsystem: 6 trinn
Raspberry Pi innendørs klimaovervåkings- og kontrollsystem: 6 trinn

Video: Raspberry Pi innendørs klimaovervåkings- og kontrollsystem: 6 trinn

Video: Raspberry Pi innendørs klimaovervåkings- og kontrollsystem: 6 trinn
Video: Работа с крупноформатной плиткой. Оборудование. Бесшовная укладка. Клей. 2024, Juli
Anonim
Raspberry Pi innendørs klimaovervåkings- og kontrollsystem
Raspberry Pi innendørs klimaovervåkings- og kontrollsystem
Raspberry Pi innendørs klimaovervåkings- og kontrollsystem
Raspberry Pi innendørs klimaovervåkings- og kontrollsystem

Folk vil være komfortable inne i huset sitt. Siden klimaet i vårt område kanskje ikke passer for oss selv, bruker vi mange apparater for å opprettholde et sunt innemiljø: varmeapparat, luftkjøler, luftfukter, avfukter, renser, etc. I dag er det vanlig å finne noen av enhetene utstyrt med automatisk modus for å føle miljøet og kontrollere seg selv. Derimot:

  • Mange av dem er overpriset/ ikke verdt pengene.
  • Deres elektriske kretser er lettere å bryte og vanskeligere å bytte ut enn konvensjonelle mekaniske deler
  • Apparatene må administreres av produsentens app. Det er vanlig å ha noen smarte apparater i huset ditt, og hver av dem har sin egen app. Løsningen deres er å integrere appen i plattformer som Alexa, Google Assistant og IFTTT slik at vi har en "sentralisert" kontroller
  • Viktigst av alt har produsentene våre data, og Google/Amazon/IFTTT/etc har dataene våre. Det gjør vi ikke. Du bryr deg kanskje ikke om personvernet, men noen ganger vil vi alle kanskje se på fuktighetsmønsteret på soverommet ditt, for eksempel å bestemme når vi skal åpne vinduene.

I denne opplæringen bygger jeg en prototype av en relativt rimelig Raspberry Pi-basert inneklimakontroller. RPi kommuniserer med eksterne enheter via SPI/I2C/USB -grensesnitt:

  • En atmosfærisk sensor brukes til å samle temperatur, fuktighet og lufttrykk.
  • En luftkvalitetssensor med høy presisjon gir data fra atmosfæriske partikler (PM2.5 og PM10) som brukes til å beregne luftkvalitetsindeks (AQI)

Kontrolleren behandler innhentede data og utløser enhetshandlinger ved å sende forespørsler til IFTTT Webhook -automatiseringstjenesten som kontrollerer støttede WiFi Smart -plugger.

Prototypen er bygget på en måte slik at man enkelt kan legge til andre sensorer, apparater og automatiseringstjenester.

Trinn 1: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Den anbefalte maskinvaren for å bygge dette:

  1. En Raspberry Pi (hvilken som helst versjon) med WiFi. Jeg bygger dette ved hjelp av RPi B+. RPi ZeroW ville gjøre det fint og koste ~ 15 $
  2. En BME280 -sensor for temperatur, fuktighet, lufttrykk ~ 5 $
  3. En Nova SDS011 High Precision Laser PM2.5/PM10 luftkvalitetsdeteksjonsmodul ~ 25 $
  4. En LED/LCD -skjerm. Jeg brukte SSD1305 2,23 tommers OLED -skjerm ~ 15 $
  5. Noen WiFi/ZigBee/Z-Wave Smart Sockets. 10-20 dollar hver
  6. Luftrenser, luftfukter, avfukter, varmeapparat, kjøler, etc. med mekaniske brytere. For eksempel brukte jeg en billig luftrenser for å lage denne opplæringen

Den totale kostnaden ovenfor er <100 $, mye mindre enn for eksempel en smart renser som lett kan koste 200 $.

Trinn 2: Kabling av Raspbery Pi

Kabling av Raspbery Pi
Kabling av Raspbery Pi

Kretsdiagrammet viser hvordan du kobler RPi med BME280 -sensoren ved hjelp av I2C -grensesnitt og OLED -display HAT ved bruk av SPI -grensesnitt.

Waveshare OLED HAT kan festes på toppen av GPIO, men du trenger en GPIO -splitter for å dele den med andre eksterne enheter. Den kan konfigureres til å bruke I2C ved å lodde motstandene på baksiden.

Mer informasjon om SSD1305 OLED HAT finner du her.

Både I2C- og SPI -grensesnitt må aktiveres i RPi med:

sudo raspi-config

Nova SDS011 støvsensor er koblet til RPi via USB-port (med en seriell-USB-adapter).

Trinn 3: Innsamling av data fra sensorene

De atmosfæriske dataene, som ser ganske greie ut, er hentet fra BME280 -sensoren fra python -skriptet.

21-nov-20 19:19:25-INFO-compensated_reading (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, tidsstempel = 2020-11-21 19: 19: 25.604317, temp = 20.956 ° C, trykk = 1019.08 hPa, fuktighet = 49.23 % rH)

Støvsensordata trenger litt mer behandling. Sensormodulen suger inn noen luftprøver for å oppdage partikler, så den bør gå en stund (30s) for å få pålitelige resultater. Fra min observasjon vurderer jeg bare gjennomsnittet av de tre siste prøvene. Prosessen er tilgjengelig i dette skriptet.

21. nov.2019 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- Nov-20 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-Nov- 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 -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 - 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

Støvsensoren gir bare PM2.5 og PM10 indeks. For å beregne AQI trenger vi python-aqi-modulen:

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

Datainnsamling, visning og apparatstyring utføres samtidig og asynkront. Data lagres i en lokal database. Vi trenger ikke å kjøre dem ofte hvis miljøet ikke endres for raskt. For meg er 15 min intervall tid nok. Videre samler støvsensormodulen støv inni, så vi bør ikke bruke for mye for å unngå rengjøringsoppgaven.

Trinn 4: Konfigurere hjemmeautomatiseringstjeneste

Sette opp hjemmeautomatiseringstjeneste
Sette opp hjemmeautomatiseringstjeneste
Sette opp hjemmeautomatiseringstjeneste
Sette opp hjemmeautomatiseringstjeneste

Det er mange hjemmeautomatiseringsplattformer der ute og bør installere plattformen som støttes av den smarte kontakten du har. Hvis du angår personvern, bør du sette opp ditt eget system. Ellers kan du bruke de populære plattformene som støttes av de fleste WiFi smarte stikkontakter: Google Assistant, Alexa eller IFTTT. Prøv å velge socket -plattformen med et API å samhandle med (Webhook er perfekt for dette formålet)

Jeg bruker IFTTT i denne opplæringen fordi den er veldig enkel å bruke selv for nybegynnere. Men vær oppmerksom på at: 1. det er mange smarte stikkontakter som ikke støtter IFTTT, og 2. På det tidspunktet jeg skriver dette, lar IFTTT deg bare lage 3 applets (automatiseringsoppgaver) gratis, noe som bare er nok for 1 apparatet.

Dette er trinnene:

1. Opprett to appleter i IFTTT, for å slå apparatet på og av ved hjelp av Webhook -tjenesten. Detaljene finner du her.

2. Kopier API -nøkkelen og kopier den til python -skriptet. Jeg vil foreslå å holde den i en egen fil av sikkerhetshensyn.

3. Definer kontrolllogikken/parameterne i hovedskriptet.

Trinn 5: Resultater

Resultater
Resultater
Resultater
Resultater
Resultater
Resultater
Resultater
Resultater

OK, nå tester vi systemet.

OLED -displayet viser gjeldende temperatur, fuktighet og beregnet luftkvalitetsindeks (AQI). Den viser også minimums- og maksimumsverdien de siste 12 timene.

Tidsseriedataene til AQI om noen dager viser noe interessant. Legg merke til overspenningen i AQI -mønsteret? Det skjedde to ganger om dagen, den lille toppen rundt 12.00 og høyden er rundt 19.00. Vel, du gjettet det, det var da vi lagde mat og spredte mye partikler rundt. Det er interessant å se hvordan vår daglige aktivitet påvirker innemiljøet.

Den siste økningen i figuren varte også mye kortere enn de forrige. det er da vi legger til luftrenser i systemet. RPi -klimakontrolleren sender PURIFIER_ON -forespørsel når AQI> 50 og PURIFIER_OFF når AQI <20. Du kan se IFTTT Webhook -utløseren på det tidspunktet.

Trinn 6: Konklusjon

Det er det!

De innsamlede dataene kan også brukes til å kontrollere luftvarmere, kjølere, (de) luftfuktere osv. Du trenger bare å kjøpe flere smarte stikkontakter, og hvert gammelt apparat blir "smart".

Hvis du vil kontrollere mange apparater, må du kanskje vurdere nøye hvilken hjemmeautomatiseringstjeneste du vil bruke. Jeg vil sterkt foreslå å sette opp en åpen kildekode-hjemmeautomatiseringsplattform, men hvis det er for komplisert, er det enklere løsninger som Google Assistant og IFTTT Webhook, eller bruk av Zigbee smart-kontakter.

Den fulle implementeringen av denne prototypen finnes i Github -depotet:

github.com/vuva/IndoorClimateControl

Ha det gøy !!!

Anbefalt: