Innehållsförteckning:

Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat: 6 steg
Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat: 6 steg

Video: Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat: 6 steg

Video: Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat: 6 steg
Video: Installera Home Assistant på Raspberry Pi 2024, November
Anonim
Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat
Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat
Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat
Raspberry Pi övervaknings- och kontrollsystem för inomhusklimat

Människor vill vara bekväma i sitt hus. Eftersom klimatet i vårt område kanske inte passar oss, använder vi många apparater för att upprätthålla en hälsosam inomhusmiljö: värmare, luftkylare, luftfuktare, avfuktare, renare etc. Numera är det vanligt att hitta några av enheterna utrustade med automatisk läge för att känna av miljön och kontrollera sig själva. Dock:

  • Många av dem är för dyra/ inte värda pengarna.
  • Deras elektriska kretsar är lättare att bryta och svårare att byta ut än konventionella mekaniska delar
  • Apparaterna måste hanteras av tillverkarens app. Det är vanligt att ha några smarta apparater i ditt hus och var och en har sin egen app. Deras lösning är att integrera appen i plattformar som Alexa, Google Assistant och IFTTT så att vi har en "centraliserad" controller
  • Viktigast av allt, tillverkarna har vår data, och Google/Amazon/IFTTT/etc har våra data. Det gör vi inte. Du kanske inte bryr dig om integritet, men ibland kanske vi alla vill titta på fuktmönstret i ditt sovrum, till exempel för att bestämma vid vilken tidpunkt fönstren ska öppnas.

I denna handledning bygger jag en prototyp av en relativt billig Raspberry Pi-baserad inomhusklimatkontroller. RPi kommunicerar med kringutrustning via SPI/I2C/USB -gränssnitt:

  • En atmosfärisk sensor används för att samla temperatur, luftfuktighet och lufttryck.
  • En högprecisions luftkvalitetssensor ger data från atmosfäriska partiklar (PM2.5 och PM10) som används för att beräkna luftkvalitetsindex (AQI)

Kontrollenheten behandlar inhämtad data och utlöser enhetsåtgärder genom att skicka förfrågningar till IFTTT Webhook -automationstjänsten som styr WiFi Smart -pluggar som stöds.

Prototypen är byggd på ett sätt så att man enkelt kan lägga till andra sensorer, apparater och automatiseringstjänster.

Steg 1: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Den rekommenderade hårdvaran för att bygga detta:

  1. En Raspberry Pi (vilken version som helst) med WiFi. Jag bygger detta med RPi B+. RPi ZeroW skulle klara sig bra och kosta ~ 15 $
  2. En BME280 -sensor för temperatur, luftfuktighet, lufttryck ~ 5 $
  3. En Nova SDS011 högprecisionslaser PM2.5/PM10 luftkvalitetsdetekteringssensormodul ~ 25 $
  4. En LED/LCD -display. Jag använde SSD1305 2,23 tums OLED -skärmen ~ 15 $
  5. Några WiFi/ZigBee/Z-Wave Smart-uttag. 10-20 $ styck
  6. Luftrenare, luftfuktare, avfuktare, värmare, kylare etc. med mekaniska omkopplare. Till exempel använde jag en billig luftrenare för att göra denna handledning

Ovanstående totalkostnad är <100 $, mycket mindre än, säg, en smart renare som lätt kan kosta 200 $.

Steg 2: Anslut Raspbery Pi

Anslutning av Raspbery Pi
Anslutning av Raspbery Pi

Kretsschemat visar hur man kopplar RPi med BME280 -sensorn med I2C -gränssnitt och OLED -display HAT med SPI -gränssnitt.

Waveshare OLED HAT kan fästas ovanpå GPIO, men du behöver en GPIO -splitter för att dela den med andra kringutrustning. Det kan konfigureras att använda I2C genom att löda motstånden på baksidan.

Mer information om SSD1305 OLED HAT finns här.

Både I2C- och SPI -gränssnitt måste aktiveras i RPi med:

sudo raspi-config

Nova SDS011 Dammsensor är ansluten till RPi via USB-port (med en Serial-USB-adapter).

Steg 3: Samla in data från sensorerna

Atmosfärdatan, som ser ganska enkel ut, samlas in från BME280 -sensorn från python -skriptet.

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

Dammsensordata behöver lite mer bearbetning. Sensormodulen suger in några luftprover för att detektera partiklar, så det bör gå ett tag (30s) för att få tillförlitliga resultat. Från min observation beaktar jag bara genomsnittet av de tre senaste proverna. Processen är tillgänglig i detta skript.

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

Dammsensorn tillhandahåller endast PM2.5 och PM10 index. För att beräkna AQI behöver vi python-aqi-modulen:

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

Datainsamling, visning och apparatstyrning utförs samtidigt och asynkront. Data sparas i en lokal databas. Vi behöver inte köra dem ofta om miljön inte förändras för snabbt. För mig räcker 15 min intervalltid. Dessutom samlar dammsensormodulen upp damm inuti, så vi bör inte överanvända den för att undvika rengöringsuppgiften.

Steg 4: Konfigurera hemautomationstjänst

Konfigurera hemautomationstjänst
Konfigurera hemautomationstjänst
Konfigurera hemautomationstjänst
Konfigurera hemautomationstjänst

Det finns många hemautomatiseringsplattformar där ute och bör installera plattformen som stöds av det smarta uttaget du har. Om du rör integritet bör du skapa ditt eget system. Annars kan du använda de populära plattformarna som stöds av de flesta WiFi -smarta uttag: Google Assistant, Alexa eller IFTTT. Försök att välja uttaget plattform med ett API att interagera med (Webhook är perfekt för detta ändamål)

Jag använder IFTTT i den här självstudien eftersom den är väldigt lätt att använda även för nybörjare. Men var medveten om att: 1. det finns många smarta uttag som inte stöder IFTTT, och 2. Vid den tidpunkt då jag skriver detta tillåter IFTTT bara att skapa 3 applets (automatiseringsuppgifter) gratis, vilket bara räcker för 1 apparat.

Detta är stegen:

1. Skapa två appletar i IFTTT för att slå på och stänga av apparaten med hjälp av Webhook -tjänsten. Detaljerna hittar du här.

2. Kopiera API -nyckeln och kopiera den till python -skriptet. Av säkerhetsskäl föreslår jag att du håller den i en separat fil.

3. Definiera styrlogiken/parametrarna i huvudskriptet.

Steg 5: Resultat

Resultat
Resultat
Resultat
Resultat
Resultat
Resultat
Resultat
Resultat

OK, nu testar vi systemet.

OLED -displayen visar aktuell temperatur, luftfuktighet och beräknat luftkvalitetsindex (AQI). Det visar också lägsta och högsta värde under de senaste 12 timmarna.

Tidsseriedata för AQI om några dagar visar något intressant. Lägg märke till överspänningarna i AQI -mönstret? Det hände två gånger om dagen, den lilla toppen runt 12.00 och högtoppen är cirka 19.00. Tja, du gissade det, det var när vi lagade mat och sprider mycket partiklar runt. Det är intressant att se hur vår dagliga aktivitet påverkar inomhusmiljön.

Den sista ökningen i figuren varade också mycket kortare än de föregående. det är då vi lägger till luftrenaren i systemet. RPi -klimatkontrollen skickar PURIFIER_ON -begäran när AQI> 50 och PURIFIER_OFF när AQI <20. Du kan se IFTTT Webhook -utlösaren vid den tiden.

Steg 6: Slutsats

Det är allt!

Den insamlade informationen kan också användas för att styra luftvärmare, kylare, (av) luftfuktare etc. Du behöver bara köpa fler smarta uttag och varje gammal apparat blir "smart".

Om du vill styra många apparater kan du behöva noga överväga vilken hemautomationstjänst du vill använda. Jag skulle starkt föreslå att du installerar en plattform för hemautomatisering med öppen källkod, men om det är för komplicerat finns det enklare lösningar som Google Assistant och IFTTT Webhook, eller att använda Zigbee smarta uttag.

Den fullständiga implementeringen av denna prototyp finns i Github -förvaret:

github.com/vuva/IndoorClimateControl

Ha så kul !!!

Rekommenderad: