Creazione Multi-Sensore Fumo, Temperatura, Umidità e Pressione in Home Assistant
.
Argomento: ESP8266
Livello: Esperto (Novizio,Esperto, Pro)
Difficoltà: Media (Bassa, Media, Alta)
Eccoci qua con un nuovo articolo per progetti con ESP8266.
Oggi andiamo a creare un sensore Fumo abbinato a sensore temperatura, umidità e pressione.
Stiamo Parlando dell’accoppiata MQ2 e BME280!
Introduzione
MQ2 é un sensore che fa parte della famiglia dei sensori MQ (9 tipologie). MQ2 in particolare é sensibile al Fumo, GPL, Metano e Alcool.
Il BME280 è un sensore per umidità, temperatura e pressione barometrica prodotto dalla Bosch. È in grado di effettuare misurazioni con un’accuratezza assoluta di ±3% per l’umidità, ±1 hPa per la pressione e di ±1.0°C per la temperatura.
Ho deciso di creare questo multi sensore per più motivi:
- Avendo a disposizione la potenza di un D1mini, non potevo collegare solo un sensore fumo. Ho sfruttato le sua potenzialità.
- Se c’é un principio di incendio (toccatevi a pelle :-)) possiamo contare su 2 conferme. In salita il valore di MQ2 e anche quello della temperatura.
- Il sensore BME280 é molto sensibile, avendolo posizionato in alto sopra alla cappa cucina, nel fianco di un pensile (dove arriva prima il calore) quando cucino la temperatura sale velocemente. Posso così sapere quando cucino. Stessa cosa capita con l’accensione del riscaldamento in casa. Non é consigliabile mettere un sensore fumo sopra a una zona dove si cucina perché può causare falsi allarmi, ma, in base ai test che vedrete a fine guida, sono soddisfatto dell’istallazione in questo ambiente.
- Con il sensore MQ2 riesco a capire anche la “qualità dell’aria”. Non parlo di qualità nel vero senso del termine. Per quella ci sono altri sensori come anche MQ135, ma diciamo che riesco a capire quando é ora di “arieggiare” casa. A fine guida vi farò vedere la raccolta dati.
Materiali
- D1 Mini (venduto già con connettori maschi)
- MQ2
- BME280 3.3V
- Case m3Dg #D1_MQ2_BME280 file STL di stampa.
Per alimentare D1 Mini (anche se di solito si trovano in casa) vi servirà chiaramente un cavetto microUSB e un caricatore USB da muro (un comune caricatore per cellulari).
Se invece volete alimentarlo direttamente alla 220 vi servirà un convertitore 220 a 5V. ATTENZIONE CON LA CORRENTE NON SI SCHERZA. Il case non é progettato per la 220V.
Utili anche saldatore a stagno, cavetti Arduino (femmina-femmina), pinzette, pinze, cacciavite.
Trovate i prodotti anche su Amazon a voi la scelta
Modifiche e Saldature
Per iniziare, dovete sapere, che il case ha 4 colonne di appoggio per il D1 mini (cerchiate in rosso). Il foro vicino alla colonna in alto a sinistra é il foro per il led.
Le colonnine di appoggio hanno la stessa altezza della plastica dei connettori.
Perciò nel caso in cui voleste utilizzare i connettori maschi, come in questa guida, dovrete prima spostarne la plastica tutta da un lato con delle pinze, come in foto.
A questo punto, posizionate i connettori nel D1 mini e saldateli. Attenzione però: Nel case, il D1, andrà posizionato con il led e il microcontollore wifi verso il basso, perciò posizionate e saldate i connettori come nel collage di foto in seguito.
Dopodiché saldate i connettori anche al BME280. In questo caso potete mantenerli originali e saldarli nella parte corta come in foto.
A questo punto prendete il sensore MQ2 (che vi arriverà con i connettori già saldati), e delicatamente, con una pinza, piegate i connettori verso l’alto
Questo sarà il risultato
Cablaggio
Ora passiamo al cablaggio che potete fare con i cavetti arduino senza saldare nulla (togliete però il cappuccio nero dai cavetti, facendo leva con un cacciavite sulla stanghetta di bloccaggio. Altrimenti il case non si chiuderà)
Collegate Mq2 al D1 come segue:
A0 — A0
GND — GND
VCC — 3V3
Collegate BME280 al D1 come segue:
SCL — D1
SDA — D2
GND — GND
VCC — 3V3
Avendo a disposizione sul D1 un solo GND e 3V3 sarete costretti a saldarli, come ho fatto io, altrimenti acquistate dei mammut per sdoppiarli. I più piccoli che trovate in commercio. Nel case ci staranno senza problemi.
EXTRA: Vi ricordo che Mq2 ha anche il sensore digitale D0 che non abbiamo utilizzato. Scatta a seconda della regolazione che date al potenziometro. Magari potete utilizzarlo per collegarci un led per un allarme visivo superata una certa soglia. O un allarme Buzzer. Con questi progetti c’é da sbizzarrirsi a personalizzazioni.
Installazione Firmware e configurazione
Per la parte Firmware rimango fedele confermando la stabilità e semplicità del firmware SmartHome, utilizzato anche in una guida precedente per la configurazione di un sensore pioggia
Detto ciò, installiamo SmartHome (vedi guida)
NOTA: Installate il firmware e fate la configurazione di base compresa quella MQTT per comunicare con Home Assistant.
Qui configuriamo i nodi. Un nodo sensore per MQ2 e un nodo termostato per BME280. Il Topic chiaramente a vostro piacimento.
Salvate la configurazione.
Attenzione: Il sensore MQ2 ha un valore analogico di tensione che varia da 0 a 1024 in base all’ambiente che trova. Un valore di base sopra a 800, in un ambiente “sano”, significa che il sensore potrebbe essere danneggiato. Infatti il mio si aggira da 100 a 180 (ora in foto é 150).
In ogni caso i valori variano in base al sensore e a ogni ambiente. Per testarne il corretto funzionamento, avvicinatevi con il gas dell’accendino o del fumo come nel test a fine guida.
Comunque questo sarà il risultato
Se avete configurato tutto correttamente troverete i sensori collegati ad Home Assistant in: Impostazioni —> Integrazioni —> Mqtt
Su Home Assistant troverete anche l’entità della pressione atmosferica, che in interfaccia smarthome (almeno in questa versione) non é visibile.
Posizionamento nel Case
A questo punto iniziamo a posizionare il D1 nel case come in foto. Appoggiate la parte posteriore contro le colonne di sostegno (che lo bloccano nella parte superiore).
Dopodiché premete la parte frontale della USB fino ad allineamento completo.
A questo punto inserite MQ2 nel suo foro. Prendete BME280 con delle pinzette e inseritelo nel foro laterale per posizionarlo nel suo ambiente. Come in foto.
Questo sarà il risultato finale.
I due fori del BME280 combaceranno con il case per il ricircolo dell’aria. E i cavetti posizionati nelle colonne di blocco laterali, in modo che non venga impedita la chiusura del coperchio scorrevole a binario.
Dopodiché, nel mio caso, l’ho installato nella cucina, sopra alla cappa, a bordo del pensile.
Ho optato per il case in Grigio.
Grazie al Led Blu del D1 possiamo vedere se siamo connessi wifi e MQTT (disattivabile a piacere)
Con 2 lampeggi, sia la wifi che mqtt sono correttamente connessi. Con 3 lampeggi ok wifi non connesso mqtt. 4 lampeggi non é connesso alla wifi.
Inoltre la luce Rossa del sensore MQ2 che esce dalla dissipazione, ci permette di capire che é correttamente alimentato e funzionante.
Detto ciò, abbiamo tutte le informazioni necessarie (e più importanti!) a colpo d’occhio!
Offset di Temperatura
Abbiamo un case che contiene un D1 e un MQ2 che emettono calore. Addirittura lo stesso BME emette calore.
Anche se il Case, dopo svariati test, é stato progettato per dissipare il calore e per tenere il BME280 il più lontano possibile da esso, abbiamo bisogno di un Offset di temperatura.
Per prima cosa posizionate il case. Il calore del D1 e MQ2 andrà verso l’alto, perciò, se lo posizionerete sul muro, pensile o mobile come nel mio caso, tenete il BME280 sotto di essi.
Attendete 20 minuti che BME si stabilizzi dopodiché individuate il valore di offset da impostare.
Grazie al Case sono riuscito ad avere un offset di -0.8 gradi ad altezza termostato di casa. Posizionandolo in alto (dove c’é più calore), sono stato costretto a un -1.5 gradi.
ESEMPIO: Il BME280 vi segnerà una temperatura di 25 gradi, quando in casa sono 23, dovremmo inviare un offset di -2.0 gradi.
Ora vediamo come impostare l’offset con SmartHome con una semplice pubblicazione MQTT.
Basterà recarsi su strumenti sviluppatori di HA, poi su “servizi” e chiamare il servizio con: Topic del sensore e payload di o=offset come da foto
Test Finali
Ho testato per oltre tre mesi il sensore MQ2 registrando i suoi cambi di stato con orario su foglio exel google sheet (online su account google)
Se vuoi monitorare anche tu i tuoi sensori, per chi mi conosce, io utilizzo Node-Red. Ecco la guida youtube:
Guida Nodi Gsheet e api google – Con Node-Red scriviamo e interroghiamo fogli exel
Torniamo a noi… Vi avevo detto che il sensore era comodo anche per capire quando arieggiare casa. Infatti il valore con il tempo tende a salire, poi si stabilizza. Quando alla mattina arieggio casa il valore scende. Andiamo da un valore di circa 180 (aria pesante) a 130 (arieggiato)
Ho un salotto-cucina di 20mq e immaginate voi quando si cucina il pollo! Quando si apre lo sportello del forno per capire se é cotto, soprattutto verso fine cottura, fa tanto fumo!
Diciamo che é la cottura in casa che mi genera più fumo anche con cappa accesa. Supero di poco i 200.
Ma ora veniamo al vero test, quello del “fumo da incendio”… ho fatto del mio meglio 🙂 In questo video ho bruciato della carta per stampanti e ho fatto arrivare il fumo nei pressi del sensore. Il valore é arrivato in pochi secondi oltre 440 poi é tornato stabile in poco tempo!
Direi ottimo!
Conclusioni
Sono pienamente soddisfatto di questo sensore visto il basso costo e la quantità di informazioni che mi mette a disposizione.
Unica pecca é il bisogno di corrente. Fortunatamente, nei luoghi dove va installato, é anche semplice trovarne l’alimentazione.
Io ho installato 3 sensori:
- In Salotto/Cucina, sopra alla cappa a bordo di un pensile (prendo corrente dalla cappa)
- In corridoio a lato dell’armadio nella parte alta (siamo ad una buona altezza di 2.70 e dietro un armadio di solito si trova sempre una presa)
- In Garage, Sopra alla stampante 3D
E’ consigliabile un sensore per ogni piano della casa, meglio nelle zone notte e di passaggio.
Qui vi lascio e vi auguro un buon divertimento! Dato che i progetti ESP portano dipendenza! 🙂
Ricordatevi il mio motto! 🙂 Le automazioni (Per questo sensore o per qualsiasi device all’interno del vostro Home Assistant) si fanno in semplicità con Node-Red! Vi lascio il link alle Guide Node-Red
PRIMA DI INIZIARE:
Seguire guide Node-Red senza capirne il flusso d’automazione, non é utile a nessuno. Node-Red ha un metodo tutto suo.
Consiglio di iniziare dal Corso 1 Node-Red in italiano, ecco il link al MODULO per richiederlo. E’ gratuito.
Per qualsiasi domanda non esitate a contattarmi.
Telegram Manuel Del Gada
Iscrivetevi ai canali “Node-Red italia” : Gruppo Facebook – Canale Youtube – Gruppo Telegram
bme280 case d1 detektor domotica esp8266 firmware fumo guida hassio Hass.io Hassio HassioHelp home asistant Home Assistant Homeassistant m3dg mq2 mqtt multisensor multisensore personalizzazioni pressione sensor sensore smarthome smoke stampa 3d temperatura thingiverse umidità wemos
15 risposte
Bellissimo progetto!
Se uno volesse realizzarne uno simile, ma con MQ135, SmartHome sarebbe comunque adatto?
Grazie in anticipo!
La ringrazio! SmartHome non fa altro che leggere la tensione da A0. Perciò MQ135 é adatto.
MQ135 come sensore dovrebbe restituire 4 valore che corrispondono a gas, ammoniaca, zolfo e benzene, infatti ci sono progetti arduino dove si hanno questi valori distinti segnalati, ed ho verificato con il d1 mini caricando il progetto a vedere determinati valori, però caricando il vostro progetto, che mi è utile per l’integrazione home assistant, ricevo come risposta un solo valore che va intoro a 400/500 che non riesco ad interpretare
In questo caso riceve un solo valore
Noto 2 stranezze in questo progetto:
1. Il sensore MQ-2 va alimentato a 5V. Alimentato a 3.3V non lavora bene.
2. Il livello massimo di ingresso della Wemos D1 è 1V, per cui la lettura proveniente da MQ-2 andrebbe scalata opportunamente.
Il sensore in qualche modo lavora, ma le letture sono fuori scala.
dai datasheet che ho visto in giro D1 accetta fino a 3,2volt in entrata non 1volt, quindi alimentando il sensore a 3,3 probabilmente rimani nei range della porta. Sono invece daccordo sul fatto che mq-2 viene sotto alimentato e quindi non saprei quanto sia affidabile.
Come da test che ho effettuato funziona. Ad oggi è ancora funzionante e le misurazioni sono stabili. Sia con fumo che quando arieggio casa.
Salve… Mi interessava che facesse il suo lavoro da rilevatore fumo come da test che ho effettuato. Perciò le letture in scala non erano di mio interesse nel progetto. Attualmente é ancora montato e stabile. La ringrazio comunque per la precisazione
Grazie per questo bello e utile progetto.
Ho comprato tutto e configurato il D1 e nel frattempo, in attesa del sensore fumo, ho installato il termostato BMP280.
Su SmartHome ottengo sempre i stessi valori:
Temperatura nan ºC
Umidità 0.00 %
Cosa sbaglio ?
Grazie
Qui si parla di BME280 non BMP280.
Al momento non credo sia supportato da Smarthome, provi a chiedere nei gruppi dedicati. Trova i link nella guida di installazione.
Salve, complimenti per il firmware, volevo sapere ho un mq135 potrei integrarlo con smarthome?
Certo, collegato allo stesso modo le restituirà un solo valore da interpretare come “qualità dell’aria”.
Buongiorno, vedo che Offset di Temperatura funziona ma ad ogni riavvio di HA si azzera, c’è modo din renderlo permanente?
grazie
Ciao,
complimenti per il progetto. Ho installato correttamente, almeno credo, il firmware. Dall’interfaccia riesco a vedere i valori di rilevazione fumo e temperatura e pressione ma su home assistant i sensori visibili sono solo fumo e potenza wifi. Dove sbaglio? Grazie
scusate, come non detto, sensore creato. Però ho un altro problema, il sensore fumo ha un valore “normale” che oscilla tra 20 e 30. Se avvicino un accendino arriva a 200 ma temo sia troppo poco sensibile.