Indholdsfortegnelse:

Raspberry Pi indeklimaovervågnings- og kontrolsystem: 6 trin
Raspberry Pi indeklimaovervågnings- og kontrolsystem: 6 trin

Video: Raspberry Pi indeklimaovervågnings- og kontrolsystem: 6 trin

Video: Raspberry Pi indeklimaovervågnings- og kontrolsystem: 6 trin
Video: BlitzWolf BW-IS22 - Сигнализация, wi-fi + GSM, Tuya Smart, интеграция и управление в Home Assistant 2024, November
Anonim
Raspberry Pi indeklimaovervågnings- og kontrolsystem
Raspberry Pi indeklimaovervågnings- og kontrolsystem
Raspberry Pi indeklimaovervågnings- og kontrolsystem
Raspberry Pi indeklimaovervågnings- og kontrolsystem

Folk vil have det godt inde i deres hus. Da klimaet i vores område måske ikke passer til os selv, bruger vi mange apparater til at opretholde et sundt indendørs miljø: varmeapparat, luftkøler, befugter, affugter, renser osv. I dag er det almindeligt at finde nogle af apparaterne udstyret med auto- tilstand til at mærke miljøet og kontrollere sig selv. Imidlertid:

  • Mange af dem er overpris/ ikke pengene værd.
  • Deres elektriske kredsløb er lettere at bryde og sværere at udskifte end konventionelle mekaniske dele
  • Apparaterne skal administreres af producentens app. Det er almindeligt at have et par smarte apparater i dit hus, og hver af dem har sin egen app. Deres løsning er at integrere appen i platforme som Alexa, Google Assistant og IFTTT, så vi har en "centraliseret" controller
  • Vigtigst er det, at producenterne har vores data, og Google/Amazon/IFTTT/etc har vores data. Det gør vi ikke. Du er måske ligeglad med privatlivets fred, men nogle gange vil vi alle måske se på fugtighedsmønsteret i dit soveværelse, for eksempel at beslutte, hvornår vinduerne skal åbnes.

I denne vejledning bygger jeg en prototype af en relativt billig Raspberry Pi-baseret indeklimastyring. RPi kommunikerer med periferienheder via SPI/I2C/USB -interfaces:

  • En atmosfærisk sensor bruges til at indsamle temperatur, fugtighed og lufttryk.
  • En luftkvalitetssensor med høj præcision leverer data fra atmosfæriske partikler (PM2.5 og PM10), der bruges til at beregne luftkvalitetsindeks (AQI)

Controlleren behandler erhvervede data og udløser enhedshandlinger ved at sende anmodninger til IFTTT Webhook -automatiseringstjenesten, som styrer understøttede WiFi Smart -stik.

Prototypen er bygget på en måde, så man let kan tilføje andre sensorer, apparater og automatiseringstjenester.

Trin 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Den anbefalede hardware til at bygge dette:

  1. En Raspberry Pi (enhver version) med WiFi. Jeg bygger dette ved hjælp af RPi B+. RPi ZeroW ville klare sig fint og koste ~ 15 $
  2. En BME280 -sensor til temperatur, fugtighed, lufttryk ~ 5 $
  3. Et Nova SDS011 High Precision Laser PM2.5/PM10 luftkvalitetsdetektionssensormodul ~ 25 $
  4. En LED/LCD -skærm. Jeg brugte SSD1305 2,23 tommer OLED -skærmen ~ 15 $
  5. Nogle WiFi/ZigBee/Z-Wave Smart Sockets. 10-20 $ hver
  6. Luftrenser, luftfugter, affugter, varmelegeme, kølere osv. Med mekaniske kontakter. For eksempel brugte jeg en billig luftrenser til at lave denne vejledning

Ovenstående samlede pris er <100 $, meget mindre end for eksempel en smart renser, der let kan koste 200 $.

Trin 2: Tilslutning af Raspbery Pi

Tilslutning af Raspbery Pi
Tilslutning af Raspbery Pi

Kredsløbsdiagrammet viser, hvordan man tilslutter RPi'en med BME280 -sensoren ved hjælp af I2C -interface og OLED -display HAT ved hjælp af SPI -interface.

Waveshare OLED HAT kunne fastgøres oven på GPIO, men du skal bruge en GPIO -splitter for at dele den med andre eksterne enheder. Det kunne konfigureres til at bruge I2C ved at lodde modstandene på bagsiden.

Yderligere oplysninger om SSD1305 OLED HAT findes her.

Både I2C- og SPI -grænseflader skal aktiveres i RPi med:

sudo raspi-config

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

Trin 3: Indsamling af data fra sensorerne

De atmosfæriske data, der ser ganske ligetil ud, indsamles fra BME280 -sensoren fra python -scriptet.

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, tryk = 1019.08 hPa, luftfugtighed = 49.23 % rH)

Støvfølerens data har brug for lidt mere behandling. Sensormodulet suger nogle luftprøver ind for at detektere partikler, så det bør køre et stykke tid (30s) for at få pålidelige resultater. Fra min observation overvejer jeg kun gennemsnittet af de sidste 3 prøver. Processen er tilgængelig i dette script.

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- 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øvføler giver kun PM2.5 og PM10 indeks. For at beregne AQI har vi brug for python-aqi modulet:

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

Dataindsamling, visning og apparatstyring udføres samtidigt og asynkront. Data gemmes i en lokal database. Vi behøver ikke at køre dem ofte, hvis miljøet ikke ændres for hurtigt. For mig er 15 min interval tid nok. Desuden akkumulerer støvsensormodulet støv indeni, så vi bør ikke bruge det for meget for at undgå rengøringsopgaven.

Trin 4: Opsætning af hjemmeautomatiseringstjeneste

Opsætning af hjemmeautomatiseringstjeneste
Opsætning af hjemmeautomatiseringstjeneste
Opsætning af hjemmeautomatiseringstjeneste
Opsætning af hjemmeautomatiseringstjeneste

Der er mange hjemmeautomatiseringsplatforme derude og bør installere den platform, der understøttes af den smarte stikdåse, du har. Hvis du angår privatliv, skal du oprette dit eget system. Ellers kan du bruge de populære platforme, der understøttes af de fleste WiFi -smarte sockets: Google Assistant, Alexa eller IFTTT. Prøv at vælge socket -platformen med en API at interagere med (Webhook er perfekt til dette formål)

Jeg bruger IFTTT i denne vejledning, fordi den er meget let at bruge selv for nybegyndere. Men vær opmærksom på, at: 1. der er mange smarte stikkontakter, der ikke understøtter IFTTT, og 2. På det tidspunkt, jeg skriver dette, giver IFTTT dig kun mulighed for at oprette 3 applets (automatiseringsopgaver) gratis, hvilket kun er nok til 1 apparat.

Dette er trinene:

1. Opret to applets i IFTTT til at tænde og slukke for apparatet ved hjælp af Webhook -service. Detaljerne kan findes her.

2. Kopier API -nøglen, og kopier den til python -scriptet. Jeg vil foreslå at gemme den i en separat fil af sikkerhedsmæssige årsager.

3. Definer kontrollogikken/parametrene i hovedscriptet.

Trin 5: Resultater

Resultater
Resultater
Resultater
Resultater
Resultater
Resultater
Resultater
Resultater

OK, nu tester vi systemet.

OLED -displayet viser den aktuelle temperatur, luftfugtighed og det beregnede luftkvalitetsindeks (AQI). Det viser også minimums- og maksimumværdien i de sidste 12 timer.

Tidsseriedataene for AQI om et par dage viser noget interessant. Læg mærke til stigningerne i AQI -mønster? Det skete to gange om dagen, den lille top omkring kl. 12.00 og højtoppen er omkring kl. 19.00. Nå, du gættede det, det var da vi lavede mad og spredte meget partikler rundt. Det er interessant at se, hvordan vores daglige aktivitet påvirker indeklimaet.

Den sidste stigning i tallet varede også meget kortere end de foregående. det er, når vi tilføjer luftrenser i systemet. RPi klimastyringen sender PURIFIER_ON anmodning når AQI> 50 og PURIFIER_OFF når AQI <20. Du kan se IFTTT Webhook -udløseren på det tidspunkt.

Trin 6: Konklusion

Det er det!

De indsamlede data kan også bruges til at styre luftvarmere, kølere, (de) befugtere osv. Du skal bare købe flere smarte stikkontakter, og hvert gammelt apparat bliver "smart".

Hvis du vil styre mange apparater, skal du muligvis nøje overveje, hvilken hjemmeautomatiseringstjeneste du vil bruge. Jeg vil meget anbefale at oprette en open-source hjemmeautomatiseringsplatform, men hvis det er for kompliceret, er der enklere løsninger som f.eks. Google Assistant og IFTTT Webhook eller brug af Zigbee smart-sockets.

Den fulde implementering af denne prototype findes i Github -depotet:

github.com/vuva/IndoorClimateControl

Hav det sjovt !!!

Anbefalede: