Sadržaj:

Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru: 6 koraka
Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru: 6 koraka

Video: Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru: 6 koraka

Video: Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru: 6 koraka
Video: CS50 2013 - Week 10, continued 2024, Novembar
Anonim
Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru
Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru
Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru
Raspberry Pi sistem za nadzor i kontrolu klime u zatvorenom prostoru

Ljudi žele biti udobni u svojoj kući. Kako nam klima na našem području možda ne odgovara, koristimo mnoge aparate za održavanje zdravog unutrašnjeg okruženja: grijač, hladnjak zraka, ovlaživač zraka, odvlaživač zraka, pročišćivač itd. U današnje vrijeme uobičajeno je pronaći neke od uređaja opremljenih automatskim način da osjete okruženje i da se kontrolišu. Kako god:

  • Mnogi od njih su preskupi/ ne vrijede novca.
  • Njihova električna kola lakše se prekidaju i teže zamjenjuju od konvencionalnih mehaničkih dijelova
  • Uređajima mora upravljati aplikacija proizvođača. Uobičajeno je da u kući imate nekoliko pametnih uređaja, a svaki od njih ima svoju aplikaciju. Njihovo rješenje je integracija aplikacije u platforme poput Alexa, Google Assistant i IFTTT tako da imamo "centralizirani" kontroler
  • Ono što je najvažnije, proizvođači imaju naše podatke, a Google/Amazon/IFTTT/itd. Naše podatke. Mi ne znamo. Možda vam nije stalo do privatnosti, ali ponekad bismo svi mogli htjeti pogledati primjer vlažnosti vaše spavaće sobe, na primjer, kako bismo odlučili u koje vrijeme otvoriti prozore.

U ovom vodiču konstruišem prototip relativno jeftinog unutrašnjeg kontrolera klime zasnovanog na Raspberry Pi. RPi komunicira s perifernim uređajima putem SPI/I2C/USB sučelja:

  • Atmosferski senzor se koristi za prikupljanje temperature, vlažnosti i tlaka zraka.
  • Senzor kvalitete zraka visoke preciznosti pruža podatke o atmosferskim česticama (PM2,5 i PM10) koji se koriste za izračun indeksa kvalitete zraka (AQI)

Kontroler obrađuje prikupljene podatke i pokreće radnje uređaja slanjem zahtjeva na uslugu automatizacije IFTTT Webhook koja kontrolira podržane WiFi Smart priključke.

Prototip je izgrađen na način da se lako mogu dodati drugi senzori, uređaji i usluge automatizacije.

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Preporučeni hardver za izgradnju ovog:

  1. Raspberry Pi (bilo koja verzija) s WiFi -jem. Ovo pravim koristeći RPi B+. RPi ZeroW bi bio sasvim u redu i koštao bi ~ 15 $
  2. BME280 senzor za temperaturu, vlažnost, pritisak zraka ~ 5 USD
  3. A Nova SDS011 Laserski visokoprecizni laserski PM2.5/PM10 modul senzora za otkrivanje kvalitete zraka ~ 25 $
  4. LED/LCD ekran. Koristio sam SSD1305 2.23 inčni OLED ekran ~ 15 $
  5. Neke WiFi/ZigBee/Z-Wave pametne utičnice. 10-20 USD svaki
  6. Pročišćivač zraka, ovlaživač zraka, odvlaživač zraka, grijač, hladnjak itd. S mehaničkim prekidačima. Na primjer, za izradu ovog vodiča koristio sam jeftin pročišćivač zraka

Gore navedeni ukupni troškovi su <100 USD, mnogo manje od, recimo, pametnog pročišćivača koji bi lako mogao koštati 200 USD.

Korak 2: Ožičenje Raspbery Pi

Ožičenje Raspbery Pi
Ožičenje Raspbery Pi

Dijagram kola prikazuje kako spojiti RPi sa senzorom BME280 koristeći I2C sučelje i OLED prikaz HAT pomoću SPI sučelja.

Waveshare OLED HAT mogao bi se pričvrstiti na GPIO, ali potreban vam je GPIO razdjelnik za dijeljenje s drugim perifernim uređajima. Može se konfigurirati za upotrebu I2C lemljenjem otpornika na stražnjoj strani.

Dodatne informacije o SSD1305 OLED ŠEŠIRU možete pronaći ovdje.

I I2C i SPI interfejsi moraju biti omogućeni u RPi sa:

sudo raspi-config

Senzor prašine Nova SDS011 spojen je na RPi putem USB priključka (sa serijskim USB adapterom).

Korak 3: Prikupljanje podataka sa senzora

Podaci o atmosferi, koji izgledaju prilično jednostavni, prikupljaju se sa BME280 senzora iz python skripte.

21-Nov-20 19:19:25-INFO-kompenzirano čitanje (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, vremenska oznaka = 2020-11-21 19: 19: 25,604317, temp = 20,956 ° C, pritisak = 1019,08 hPa, vlažnost = 49,23 % rH)

Podaci senzora prašine trebaju malo više obrade. Senzorski modul usisava neke uzorke zraka kako bi otkrio čestice, pa bi trebao raditi neko vrijeme (30 sekundi) kako bi imao pouzdane rezultate. Iz mojih zapažanja uzimam u obzir samo prosjek posljednja 3 uzorka. Proces je dostupan u ovoj skripti.

21. studenog 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. studenog 19:21:13- DEBUG- 3. PM2.5: 2.9, PM10: 6.3 21. studenog 20 19:21:15- DEBUG- 4. PM2.5: 3.0, PM10: 6.2 21. studenog- 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

Senzor prašine pruža samo indeks PM2.5 i PM10. Za izračun AQI potreban nam je python-aqi modul:

aqi_index = aqi.to_aqi ([((aqi. POLLUTANT_PM25, podaci o prašini [0]), (aqi. POLLUTANT_PM10, podaci o prašini [1])])

Prikupljanje podataka, prikaz i upravljanje uređajem izvode se istovremeno i asinhrono. Podaci se spremaju u lokalnu bazu podataka. Ne moramo ih često pokretati ako se okruženje ne promijeni prebrzo. Za mene je interval od 15 minuta dovoljan. Nadalje, modul senzora za prašinu akumulira prašinu unutra, pa ga ne bismo trebali pretjerano koristiti kako bismo izbjegli čišćenje.

Korak 4: Postavljanje usluge kućne automatizacije

Postavljanje usluge kućne automatizacije
Postavljanje usluge kućne automatizacije
Postavljanje usluge kućne automatizacije
Postavljanje usluge kućne automatizacije

Postoji mnogo platformi za kućnu automatizaciju i trebale bi instalirati platformu koju podržava pametna utičnica koju imate. Ako se brinete o privatnosti, trebali biste postaviti vlastiti sistem. Inače, možete koristiti popularne platforme koje podržava većina WiFi pametnih utičnica: Google pomoćnik, Alexa ili IFTTT. Pokušajte odabrati platformu utičnice s API -jem za interakciju (Webhook je savršen za ovu svrhu)

U ovom vodiču koristim IFTTT jer je vrlo jednostavan za korištenje čak i za početnike. Ali imajte na umu da: 1. postoji mnogo pametnih utičnica koje ne podržavaju IFTTT, i 2. u vrijeme dok ovo pišem, IFTTT vam dopušta samo stvaranje 3 apleta (zadaci automatizacije) besplatno, što je dovoljno samo za 1 aparatom.

Ovo su koraci:

1. Napravite dva apleta u IFTTT -u za uključivanje i isključivanje uređaja pomoću usluge Webhook. Detalje možete pronaći ovdje.

2. Kopirajte API ključ i kopirajte ga u python skriptu. Predlažem da se to sačuva u zasebnoj datoteci iz sigurnosnih razloga.

3. Definirajte kontrolnu logiku/parametre u glavnom skriptu.

Korak 5: Rezultati

Rezultati
Rezultati
Rezultati
Rezultati
Rezultati
Rezultati
Rezultati
Rezultati

U redu, sada testiramo sistem.

OLED ekran prikazuje trenutnu temperaturu, vlažnost i izračunati indeks kvalitete zraka (AQI). Također prikazuje minimalnu i maksimalnu vrijednost u posljednjih 12 sati.

Podaci o vremenskim serijama AQI-a za nekoliko dana pokazuju nešto zanimljivo. Primjećujete li skokove u AQI uzorku? To se događalo dva puta dnevno, mali vrh oko 12:00, a visoki vrh oko 19:00. Pa, pogađate, to je bilo kad smo kuhali, raznoseći puno čestica okolo. Zanimljivo je vidjeti kako naše dnevne aktivnosti utječu na unutarnje okruženje.

Takođe, posljednji skok u cifri trajao je mnogo kraće od prethodnih. tada u sistem dodajemo pročišćivač zraka. RPi kontroler klime šalje PURIFIER_ON zahtjev kada je AQI> 50 i PURIFIER_OFF kada je AQI <20. Tada možete vidjeti pokretač IFTTT Webhook.

Korak 6: Zaključak

To je to!

Prikupljeni podaci mogu se koristiti i za upravljanje grijačima zraka, hladnjacima, (de) ovlaživačima zraka itd. Samo trebate kupiti više pametnih utičnica i svaki će stari uređaj postati "pametan".

Ako želite kontrolirati mnoge uređaje, možda ćete morati pažljivo razmisliti koju uslugu kućne automatizacije želite koristiti. Toplo bih predložio postavljanje platforme za kućnu automatizaciju otvorenog koda, ali ako je previše komplicirano, postoje jednostavnija rješenja kao što su Google pomoćnik i IFTTT Webhook ili korištenje pametnih utičnica Zigbee.

Potpuna implementacija ovog prototipa može se pronaći u spremištu Github:

github.com/vuva/IndoorClimateControl

Zabavi se !!!

Preporučuje se: