Sommario:

Sistema di monitoraggio e controllo del clima interno Raspberry Pi: 6 passaggi
Sistema di monitoraggio e controllo del clima interno Raspberry Pi: 6 passaggi

Video: Sistema di monitoraggio e controllo del clima interno Raspberry Pi: 6 passaggi

Video: Sistema di monitoraggio e controllo del clima interno Raspberry Pi: 6 passaggi
Video: UNA GIOSTRA SI STACCA A ROMA! 2024, Dicembre
Anonim
Sistema di monitoraggio e controllo del clima interno Raspberry Pi
Sistema di monitoraggio e controllo del clima interno Raspberry Pi
Sistema di monitoraggio e controllo del clima interno Raspberry Pi
Sistema di monitoraggio e controllo del clima interno Raspberry Pi

Le persone vogliono sentirsi a proprio agio all'interno della loro casa. Poiché il clima della nostra zona potrebbe non essere adatto a noi, utilizziamo molti elettrodomestici per mantenere un ambiente interno salubre: riscaldatore, raffrescatore, umidificatore, deumidificatore, purificatore, ecc. Oggigiorno è comune trovare alcuni dispositivi dotati di auto- modalità per percepire l'ambiente e controllarsi. Però:

  • Molti di loro sono troppo cari/non valgono i soldi.
  • I loro circuiti elettrici sono più facili da rompere e più difficili da sostituire rispetto alle parti meccaniche convenzionali
  • Gli elettrodomestici devono essere gestiti dall'app del produttore. È comune avere alcuni elettrodomestici intelligenti in casa e ognuno di essi ha la propria app. La loro soluzione è integrare l'app in piattaforme come Alexa, Google Assistant e IFTTT in modo da avere un controller "centralizzato"
  • Ancora più importante, i produttori hanno i nostri dati e Google/Amazon/IFTTT/etc hanno i nostri dati. Non lo facciamo. Potresti non preoccuparti della privacy, ma a volte tutti potremmo voler guardare il modello di umidità della tua camera da letto, ad esempio, per decidere a che ora aprire le finestre.

In questo tutorial, costruisco un prototipo di un controller per il clima interno basato su Raspberry Pi relativamente a basso costo. L'RPi comunica con le periferiche tramite interfacce SPI/I2C/USB:

  • Un sensore atmosferico viene utilizzato per rilevare la temperatura, l'umidità e la pressione dell'aria.
  • Un sensore di qualità dell'aria ad alta precisione fornisce dati sul particolato atmosferico (PM2,5 e PM10) utilizzati per calcolare l'indice di qualità dell'aria (AQI)

Il controller elabora i dati acquisiti e attiva le azioni del dispositivo inviando richieste al servizio di automazione IFTTT Webhook che controlla le prese WiFi Smart supportate.

Il prototipo è costruito in modo tale da poter aggiungere facilmente altri sensori, dispositivi e servizi di automazione.

Passaggio 1: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

L'hardware consigliato per costruirlo:

  1. Un Raspberry Pi (qualsiasi versione) con WiFi. Lo costruisco usando RPi B+. RPi ZeroW andrebbe bene e costerebbe ~15$
  2. Un sensore BME280 per temperatura, umidità, pressione dell'aria ~ 5 $
  3. Un modulo sensore di rilevamento della qualità dell'aria PM2.5/PM10 laser ad alta precisione Nova SDS011 ~25$
  4. Un display LED/LCD. Ho usato lo schermo OLED SSD1305 da 2,23 pollici ~ 15 $
  5. Alcune prese intelligenti WiFi/ZigBee/Z-Wave. 10-20$ ciascuno
  6. Purificatore d'aria, umidificatore, deumidificatore, riscaldatore, raffrescatore, ecc. con interruttori meccanici. Ad esempio, ho usato un purificatore d'aria economico per realizzare questo tutorial

Il costo totale di cui sopra è <100 $, molto meno, ad esempio, di un purificatore intelligente che potrebbe facilmente costare 200 $.

Passaggio 2: cablaggio del Raspbery Pi

Cablaggio del Raspbery Pi
Cablaggio del Raspbery Pi

Lo schema del circuito mostra come cablare l'RPi con il sensore BME280 utilizzando l'interfaccia I2C e il display OLED HAT utilizzando l'interfaccia SPI.

Il Waveshare OLED HAT potrebbe essere collegato sopra il GPIO, ma è necessario uno splitter GPIO per condividerlo con altre periferiche. Potrebbe essere configurato per utilizzare I2C saldando i resistori sul retro.

Ulteriori informazioni sull'SSD1305 OLED HAT sono disponibili qui.

Entrambe le interfacce I2C e SPI devono essere abilitate in RPi con:

sudo raspi-config

Il sensore di polvere Nova SDS011 è collegato a RPi tramite porta USB (con un adattatore Serial-USB).

Passaggio 3: raccolta dei dati dai sensori

I dati atmosferici, che sembrano abbastanza semplici, sono raccolti dal sensore BME280 dallo script Python.

21-nov-20 19:19:25 - INFO - compensato_lettura(id=6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, timestamp=2020-11-21 19:19:25.604317, temp=20,956 °C, pressione=11019,08 hPa, umidità=49,23 % rH)

I dati del sensore polvere richiedono un po' più di elaborazione. Il modulo sensore aspira alcuni campioni d'aria per rilevare il particolato, quindi dovrebbe funzionare per un po' (30 secondi) per avere risultati affidabili. Dalla mia osservazione, considero solo la media degli ultimi 3 campioni. Il processo è disponibile in questo 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

Il sensore di polvere fornisce solo l'indice PM2.5 e PM10. Per calcolare AQI abbiamo bisogno del modulo python-aqi:

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

La raccolta dei dati, la visualizzazione e il controllo dell'appliance vengono eseguiti contemporaneamente e in modo asincrono. I dati vengono salvati in un database locale. Non è necessario eseguirli frequentemente se l'ambiente non cambia troppo rapidamente. Per me, un intervallo di 15 minuti è sufficiente. Inoltre, il modulo del sensore di polvere accumula polvere all'interno, quindi non dovremmo abusarne per evitare l'attività di pulizia.

Passaggio 4: configurazione del servizio di automazione domestica

Configurazione del servizio di automazione domestica
Configurazione del servizio di automazione domestica
Configurazione del servizio di automazione domestica
Configurazione del servizio di automazione domestica

Ci sono molte piattaforme di automazione domestica là fuori e dovresti installare la piattaforma supportata dalla presa intelligente che hai. Se sei preoccupato per la privacy, dovresti impostare il tuo sistema. Altrimenti, puoi utilizzare le piattaforme popolari supportate dalla maggior parte delle prese intelligenti WiFi: Google Assistant, Alexa o IFTTT. Prova a selezionare la piattaforma socket con un'API con cui interagire (Webhook è perfetto per questo scopo)

Uso IFTTT in questo tutorial perché è molto facile da usare anche per i neofiti. Ma tieni presente che: 1. ci sono molti socket intelligenti che non supportano IFTTT e 2. Al momento in cui scrivo, IFTTT ti consente solo di creare 3 applet (attività di automazione) gratuitamente, che è sufficiente solo per 1 apparecchio.

Questi sono i passaggi:

1. Creare due applet in IFTTT, per accendere e spegnere l'appliance, utilizzando il servizio Webhook. I dettagli possono essere trovati qui.

2. Copia la chiave API e copiala nello script python. Suggerirei di tenerlo in un file separato per motivi di sicurezza.

3. Definire la logica/i parametri di controllo nello script principale.

Passaggio 5: risultati

Risultati
Risultati
Risultati
Risultati
Risultati
Risultati
Risultati
Risultati

OK, ora testiamo il sistema.

Il display OLED mostra la temperatura attuale, l'umidità e l'indice di qualità dell'aria calcolato (AQI). Visualizza anche il valore minimo e massimo nelle ultime 12 ore.

I dati delle serie temporali dell'AQI in pochi giorni mostrano qualcosa di interessante. Notare i picchi nel pattern AQI? È successo due volte al giorno, il picco piccolo intorno alle 12:00 e il picco massimo intorno alle 19:00. Bene, hai indovinato, è stato allora che cuciniamo, spargendo un sacco di particolato in giro. È interessante vedere come la nostra attività quotidiana influisce sull'ambiente interno.

Inoltre, l'ultima impennata della cifra è durata molto più breve delle precedenti. questo è quando aggiungiamo il purificatore d'aria nel sistema. Il regolatore climatico RPi invia la richiesta PURIFIER_ON quando AQI>50 e PURIFIER_OFF quando AQI<20. Puoi vedere il trigger IFTTT Webhook in quel momento.

Passaggio 6: conclusione

Questo è tutto!

I dati raccolti possono essere utilizzati anche per controllare riscaldatori d'aria, raffrescatori, (de)umidificatori, ecc. Basta acquistare più prese intelligenti e ogni vecchio elettrodomestico diventerà "intelligente".

Se vuoi controllare molti elettrodomestici, potresti dover considerare attentamente quale servizio di domotica vuoi utilizzare. Consiglio vivamente di configurare una piattaforma di automazione domestica open source, ma se è troppo complicato, esistono soluzioni più semplici come Google Assistant e IFTTT Webhook o l'utilizzo di prese intelligenti Zigbee.

L'implementazione completa di questo prototipo può essere trovata nel repository Github:

github.com/vuva/IndoorClimateControl

Divertiti !!!

Consigliato: