Cuprins:

Sistem de monitorizare și control al climatului interior Raspberry Pi: 6 pași
Sistem de monitorizare și control al climatului interior Raspberry Pi: 6 pași

Video: Sistem de monitorizare și control al climatului interior Raspberry Pi: 6 pași

Video: Sistem de monitorizare și control al climatului interior Raspberry Pi: 6 pași
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Noiembrie
Anonim
Sistem de monitorizare și control al climei Raspberry Pi
Sistem de monitorizare și control al climei Raspberry Pi
Sistem de monitorizare și control al climei Raspberry Pi
Sistem de monitorizare și control al climei Raspberry Pi

Oamenii vor să se simtă confortabil în interiorul casei lor. Deoarece climatul din zona noastră s-ar putea să nu se potrivească cu noi înșine, folosim multe aparate pentru a menține un mediu interior sănătos: încălzitor, răcitor de aer, umidificator, dezumidificator, purificator etc. În zilele noastre, este obișnuit să găsim unele dintre dispozitivele echipate cu auto- modul de a simți mediul și de a se controla. In orice caz:

  • Multe dintre ele sunt supraevaluate / nu merită banii.
  • Circuitele lor electrice sunt mai ușor de rupt și mai greu de înlocuit decât piesele mecanice convenționale
  • Aparatele trebuie să fie gestionate de aplicația producătorului. Este obișnuit să aveți câteva aparate inteligente în casa dvs. și fiecare dintre ele are propria aplicație. Soluția lor este integrarea aplicației în platforme precum Alexa, Google Assistant și IFTTT, astfel încât să avem un controler „centralizat”
  • Cel mai important, producătorii au datele noastre, iar Google / Amazon / IFTTT / etc au datele noastre. Noi nu. S-ar putea să nu vă pese de confidențialitate, dar uneori este posibil să ne dorim cu toții să ne uităm la modelul de umiditate al dormitorului dvs., de exemplu, pentru a decide la ce oră să deschideți ferestrele.

În acest tutorial, construiesc un prototip al unui controler de climatizare interior bazat pe Raspberry Pi, cu un cost relativ scăzut. RPi comunică cu perifericele prin interfețe SPI / I2C / USB:

  • Un senzor atmosferic este utilizat pentru a colecta temperatura, umiditatea și presiunea aerului.
  • Un senzor de înaltă precizie a calității aerului oferă date de particule atmosferice (PM2.5 și PM10) utilizate pentru calcularea indicelui calității aerului (AQI)

Controlorul procesează datele dobândite și declanșează acțiunile dispozitivului prin trimiterea de cereri către serviciul de automatizare IFTTT Webhook care controlează mufele inteligente WiFi acceptate.

Prototipul este construit astfel încât să puteți adăuga cu ușurință alți senzori, aparate și servicii de automatizare.

Pasul 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hardware-ul recomandat pentru a construi acest lucru:

  1. Un Raspberry Pi (orice versiune) cu WiFi. Am construit acest lucru folosind RPi B +. RPi ZeroW ar merge bine și ar costa ~ 15 $
  2. Un senzor BME280 pentru temperatură, umiditate, presiunea aerului ~ 5 $
  3. A Nova SDS011 Laser de înaltă precizie PM2.5 / PM10 Modul senzor de detectare a calității aerului ~ 25 $
  4. Un afișaj LED / LCD. Am folosit ecranul OLED SSD1305 de 2,23 inch ~ 15 $
  5. Unele prize inteligente WiFi / ZigBee / Z-Wave. 10-20 $ fiecare
  6. Purificator de aer, umidificator, dezumidificator, încălzitor, răcitor etc. cu comutatoare mecanice. De exemplu, am folosit un purificator de aer ieftin pentru a face acest tutorial

Costul total de mai sus este <100 $, mult mai mic decât, să zicem, un purificator inteligent care ar putea costa cu ușurință 200 $.

Pasul 2: Cablarea Raspbery Pi

Cablarea Raspbery Pi
Cablarea Raspbery Pi

Diagrama circuitului arată cum să conectați RPi cu senzorul BME280 utilizând interfața I2C și afișajul OLED HAT utilizând interfața SPI.

Waveshare OLED HAT ar putea fi atașat deasupra GPIO, dar aveți nevoie de un splitter GPIO pentru al partaja cu alte periferice. Ar putea fi configurat pentru a utiliza I2C prin lipirea rezistențelor din spate.

Informații suplimentare despre SSD1305 OLED HAT pot fi găsite aici.

Ambele interfețe I2C și SPI trebuie să fie activate în RPi cu:

sudo raspi-config

Senzorul Nova SDS011 Dust este conectat la RPi prin portul USB (cu un adaptor Serial-USB).

Pasul 3: Colectarea datelor de la senzori

Datele atmosferice, care arată destul de simplu, sunt colectate de la senzorul BME280 din scriptul python.

21-Nov-20 19:19:25 - INFO - citire_compensată (id = 6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, timestamp = 2020-11-21 19: 19: 25.604317, temp = 20.956 ° C, presiune = 1019.08 hPa, umiditate = 49.23% rH)

Datele senzorului de praf necesită ceva mai multă procesare. Modulul senzor aspiră unele probe de aer pentru a detecta particulele, deci ar trebui să funcționeze o perioadă (30 de ani) pentru a avea rezultate fiabile. Din observația mea, iau în considerare doar media ultimelor 3 probe. Procesul este disponibil în acest 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- 20 noiembrie 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

Senzorul de praf oferă doar indicii PM2.5 și PM10. Pentru a calcula AQI avem nevoie de modulul python-aqi:

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

Colectarea datelor, afișarea și controlul dispozitivelor sunt executate simultan și asincron. Datele sunt salvate într-o bază de date locală. Nu este nevoie să le rulăm frecvent dacă mediul nu se schimbă prea repede. Pentru mine este suficient un interval de 15 minute. Mai mult, modulul senzorului de praf acumulează praf în interior, deci nu ar trebui să-l folosim în exces pentru a evita sarcina de curățare.

Pasul 4: Configurarea serviciului de automatizare la domiciliu

Configurarea serviciului de automatizare la domiciliu
Configurarea serviciului de automatizare la domiciliu
Configurarea serviciului de automatizare la domiciliu
Configurarea serviciului de automatizare la domiciliu

Există multe platforme de automatizare pentru acasă și ar trebui să instaleze platforma care este acceptată de socket-ul inteligent pe care îl aveți. Dacă vă preocupă confidențialitatea, ar trebui să vă configurați propriul sistem. În caz contrar, puteți utiliza platformele populare care sunt acceptate de majoritatea prizelor inteligente WiFi: Asistent Google, Alexa sau IFTTT. Încercați să selectați platforma socket cu un API pentru a interacționa (Webhook este perfect în acest scop)

Folosesc IFTTT în acest tutorial, deoarece este foarte ușor de utilizat chiar și pentru începători. Dar rețineți că: 1. există multe prize inteligente care nu acceptă IFTTT și 2. La momentul în care scriu acest lucru, IFTTT vă permite să creați 3 applet-uri (sarcini de automatizare) gratuit, ceea ce este suficient doar pentru 1 aparat.

Iată pașii:

1. Creați două applet-uri în IFTTT, pentru pornirea și oprirea aparatului, utilizând serviciul Webhook. Detaliile pot fi găsite aici.

2. Copiați cheia API și copiați-o în scriptul python. Aș sugera păstrarea acestuia într-un fișier separat din motive de securitate.

3. Definiți logica / parametrii de control în scriptul principal.

Pasul 5: Rezultate

Rezultate
Rezultate
Rezultate
Rezultate
Rezultate
Rezultate
Rezultate
Rezultate

OK, acum testăm sistemul.

Afișajul OLED arată temperatura, umiditatea și indicele calității aerului (AQI) curent. De asemenea, afișează valoarea minimă și maximă în ultimele 12 ore.

Datele din seria AQI din câteva zile arată ceva interesant. Observați creșterile în modelul AQI? S-a întâmplat de două ori pe zi, vârful mic în jurul orei 12:00 și vârful cel mare este în jurul orei 19:00. Ei bine, ați ghicit, atunci am gătit, răspândind o mulțime de particule în jur. Este interesant să vedem cum activitatea noastră zilnică afectează mediul interior.

De asemenea, ultima creștere a cifrei a durat mult mai scurt decât cele precedente. atunci adăugăm purificatorul de aer în sistem. Controlerul climatic RPi trimite cererea PURIFIER_ON când AQI> 50 și PURIFIER_OFF când AQI <20. Puteți vedea declanșatorul IFTTT Webhook în acel moment.

Pasul 6: Concluzie

Asta e!

Datele colectate pot fi folosite și pentru a controla încălzitoarele de aer, răcitoarele, (de) umidificatoarele etc. Trebuie doar să cumpărați mai multe prize inteligente și fiecare aparat vechi va deveni „inteligent”.

Dacă doriți să controlați multe aparate, poate fi necesar să vă gândiți cu atenție ce serviciu de automatizare a locuinței doriți să utilizați. Aș sugera foarte mult să configurați o platformă de automatizare a casei open-source, dar dacă este prea complicat, există soluții mai simple, cum ar fi Google Assistant și IFTTT Webhook, sau utilizarea prizelor inteligente Zigbee.

Implementarea completă a acestui prototip poate fi găsită în depozitul Github:

github.com/vuva/IndoorClimateControl

A se distra !!!

Recomandat: