Blog migrato su nuova piattaforma

Disclaimer

Prestare sempre attenzione a seguire le indicazioni fornite in questo blog, soprattutto se si tratta di apparecchiature elettriche collegate alla tensione di 220V. Non mi ritengo responsabile di danni causati dall'aver seguito i consigli qui pubblicati.
Grazie
Visualizzazione post con etichetta sensore umidità. Mostra tutti i post
Visualizzazione post con etichetta sensore umidità. Mostra tutti i post

lunedì 24 dicembre 2018

Home Automation System - L'inscatolamento continua...




Eccomi tornato a scrivere dopo un po' di tempo...
...tempo che, ultimamente, per motivi lavorativi, scarseggia (da un certo punto di vista direi "fortunatamente"...) e non mi permette di dedicarmi costantemente al mio hobby preferito (oddio...di hobby preferiti ne ho tanti...troppi, ma è umanamente impossibile coltivarli tutti come si deve).

Comunque, testa alta e avanti un passettino alla volta; prima o poi raggiungerò i traguardi prefissati; traguardi che al momento non conosco neanche io dettagliatamente...😂 navigo a vista.

Torniamo a noi: obiettivo di oggi è l'inscatolamento del dispositivo di monitoraggio della produzione dei pannelli fotovoltaici e del consumo del piano interrato...con la piccola aggiunta di un semplice sensore di temperatura ed umidità.

Qui di seguito il link ad un post precedente, per capire di cosa sto parlando...

https://domoticaduino.blogspot.com/2018/10/home-automation-system-due-pzem-004t.html

Come vedete dalla foto della situazione attuale, il tutto è molto disordinato...e soprattutto i fili dell'alta tensione (per alta tensione intendo la banale 220v) ed il PZEM-004T (il misuratore di consumi) sono poco protetti...non il massimo!


Appurato che il tutto funziona abbastanza bene ed è relativamente stabile, è arrivato il momento di confezionare il prodotto finito, chiaramente nei limiti di quello che sono in grado di fare 😉
Ricapitolando, devo sistemare due schede PZEM-004T e un ESP 8266, lasciar passare i cavi di collegamento dei segnali a bassa tensione e collegare l'alimentazione a tutte le schede.

Userò due scatoline:



Quella grande dovrebbe contenere entrambi i PZEM-004T, mentre quella piccola l'ESP 8266.
Con l'abilità che mi contraddistingue 😇 pratico dei fori nella plastica per il passaggio dei cavi



e sistemo le schede sulle relative basi. Ecco il dettaglio dei due PZEM-004T sulla base della scatola grande...ci stiamo giusti giusti


Chiudo il tutto e ricollego i cavi, ricordandomi anche di lasciare i collegamenti esterni per il sensore di temperatura ed umidità.
Ecco il risultato finale, un pò più in ordine di prima.


Quello che dovrò fare è solo tassellare le scatole nel muro (adesso sono solo appoggiate) e far passare i cavi della corrente in maniera più pulita.

Per adesso sono soddisfatto del risultato e del fatto che è tutto più in sicurezza.

-----------------------------------------------------
Oggetti simili usati in questo progetto
-----------------------------------------------------


3Pcs Geekcreit® NodeMcu Lua WIFI Internet Things Development Board Based ESP8266 CP2102 Wireless Module

12,66€
Geekcreit® NodeMcu Lua WIFI Internet Things Development Board Based ESP8266 CP2102 Wireless Module

4,11€
3Pcs Geekcreit® NodeMcu Lua ESP8266 ESP-12E WIFI Development Board

13,58€
AC Digital Multifunction Meter Ammeter TTL Current Tester Module PZEM-004T With Coil 100A 80-260V

5,25€
10pcs 100 x 80 x 32mm DIY Electronic Plastic Housing Junction Box Power Supply Box Instrument Case Jig Box XL-39

11,60€
2pcs 75 x 54 x 27mm DIY Plastic Project Housing Electronic Junction Case Power Supply Box

1,73€
5Pcs KY-015 DHT11 Temperature Humidity Sensor Module For Arduino

7,67€
10Pcs DHT11 Digital Temperature Humidity Sensor Module For Arduino

9,31€


venerdì 26 ottobre 2018

Home Automation System - Domotizziamo una lampada






Continuiamo, un passettino alla volta, la costruzione del nostro Home Automation System, basato su OpenHAB.

Questa volta tocca ad una lampada da pavimento che abbiamo in soggiorno, da rendere SMART attraverso un semplice SONOFF BASIC.

Ecco una parte del mio arsenale:



Per chi non lo conoscesse, il SONOFF è un semplice "pulsante wifi" che permette di pilotare dei carichi in remoto. Il modello Basic é la versione più semplice in quanto contiene un solo relè, quindi permette di pilotare un solo carico.

Lavoretto relativamente semplice questa volta in quanto non dobbiamo andare alla ricerca di passaggi strani nei tubi dell'impianto attuale e soprattutto non abbiamo bisogno di cercare uno spazio dove inserire il SONOFF.

Operiamo alla luce del sole...

Quello che si deve fare è andare a sostituire il pulsante della lampada con il SONOFF...taglio quindi il filo ai capi del pulsante e lo sfilo via...la parte di filo che va alla presa di corrente verrà collegata all'INPUT del SONOFF, mentre il filo che va verso la lampada sarà collegato all'OUTPUT. Detto fatto...

Complichiamo un pochino la faccenda: sul Wiki di TASMOTA (https://github.com/arendst/Sonoff-Tasmota/wiki/DHT11-Wiring---Sonoff-Basic), il firmware custom caricato sui miei SONOFF, che ne permette, tra le altre cose, l'integrazione in OpenHAB tramite protocollo MQTT, apprendo che questo firmware è in grado di gestire anche un sensore di temperatura / umidità connesso ad un pin di INPUT libero nel SONOFF, il GPIO14. Fortunatamente il sensore gestito è il DHT11 e io ne possiedo un paio.


Questo sensore ha 3 pin, Vin, GND e OUT. Connetto quindi al Vin e al GND i rispettivi segnali presi dal SONOFF e al pin di OUT collego il GPIO14...scopro dove sono fisicamente collocati questi pin sul SONOFF sempre dal solito Wiki di TASMOTA (https://github.com/arendst/Sonoff-Tasmota/wiki/GPIO-Locations)

Ecco i tre fili saldati e protetti da guaina termorestringente




Adesso non mi resta che saldare l'altro capo dei fili al sensore DHT11...



Anche qui, metto della guaina per protezione...i contatti sono molto vicino tra loro



Ed ecco il nostro SONOFF al completo...



Adesso non mi rimane che fare un piccolo foro nel coperchio del SONOFF per far passare i fili, chiudere tutto e collegarlo alla corrente



Ed ecco la lampada, con il SONOFF in basso a destra e il sensore di temperatura temporaneamente appeso al palo...



Adesso tocca alla configurazione software...tramite il solito pannello web del SONOFF, andiamo a dire che abbiamo connesso un sensore al GPIO14


e poi inseriamo le solite informazioni per la comunicazione MQTT e altro...(nulla di diverso dagli altri SONOFF)

Tornando alla home page dell'interfaccia WEB si vede che nella parte alta sono apparse le informazioni rilevate dal sensore DHT11


Passiamo ad OpenHAB...devo, come sempre, definire gli items agganciati al topic MQTT con il quale il SONOFF invia e riceve le informazioni dal mondo esterno...

Nel mio caso il topic che ho scelto è smarthome/light_env/%topic%/%prefix%/

Sniffando la console del SONOFF si vede che, oltre al solito invio di informazioni circa lo stato del pulsante, viene inviato anche lo stato del sensore, con un prefix diverso



Sarà questo topic che dovrò agganciare agli item di OpenHAB per ricevere le informazioni di temperatura ed umidità rilevate dal DHT11

Ecco il risultato sull'applicazione




Ed ecco la dashboard di Grafana




Per quanto riguarda il pulsante per accendere la lampada, nulla di diverso rispetto al solito


-----------------------------------------------------
Oggetti simili usati in questo progetto
-----------------------------------------------------

venerdì 5 ottobre 2018

Home Automation System - Due PZEM-004T con unico ESP8266




Dopo il successo degli esperimenti fatti con il PZEM-004T connesso ad un Nodemcu ESP8266 per la misurazione dei consumi tramite pinza amperometrica (metodo poco invasivo...), sistema attualmente funzionante nel mio impianto per il monitoraggio dei consumi del piano terra (vedere https://domoticaduino.blogspot.com/2018/05/home-automation-system-misurazione-dei.html), ho deciso di aggiornare l'attuale sistema di monitoraggio della produzione dei pannelli fotovoltaici, basato su un ricevitore Wifi 433Mhz (vedere https://domoticaduino.blogspot.com/2017/08/home-automation-system-mqtt-e-rf433-per.html).

L'attuale sistema ha un problema dovuto al fatto che quando l'inverter è spento viene rilevato un passaggio di corrente anomalo che porta ad un'indicazione di circa 250W di consumo / produzione.

L'idea è quella di utilizzare lo stesso circuito usato per il monitoraggio dei consumi del piano terra...quindi un PZEM-004T, la sua pinza amperometrica e un Nodemcu ESP8266 per l'acquisizione delle informazioni e il loro invio verso il server MQTT.

Per chi non sapesse di cosa sto parlando, questi sono i dispositivi:

NODEMCU ESP8266

PZEM-004T

Poichè l'inverter è vicino al quadro elettrico in garage, decido di complicare un po' la cosa, a scopo di ottimizzazione, cercando di gestire due PZEM-004T con la stessa scheda ESP8266, in modo tale da poter monitorare anche il consumo del piano seminterrato.

E, dulcis in fundo, perchè non inserire anche un sensore di temperatura e umidità nello stesso circuito?

Faccio al volo due prove per verificare che effettivamente due PZEM-004T siano gestibili dalla stessa scheda e, verificatone il corretto funzionamento, creo il circuito definitivo, per adesso su breadboard.

Ecco il primo PZEM-004T connesso, tramite la sonda, al cavo di fase all'uscita dell'inverter...sulla destra si può notare anche il sensore di temperatura e umidità DHT11 (sensore non precisissimo, ma non male per le misure che voglio fare io...)


Questo invece è il secondo PZEM-004T connesso al cavo di fase del piano seminterrato, all'interno del quadro elettrico


Vista d'insieme:


Adesso non rimane altro che scrivere il software e fare qualche prova. Operazione relativamente semplice in quanto il codice è molto simile a quanto già fatto in precedenza.

Battezzo i topic MQTT per la gestione del dato su OpenHAB e creo i soliti items e oggetti all'interno di una sitemap...

Ecco il risultato sulla BASIC UI di OpenHAB



Il valore di Energy Consumption è dato dalla somma dei consumi dei 3 piani...due dei quali sono già monitorati (i valori non coincidono tra i due screenshot perchè sono stati presi in momenti diversi...)


Essendo informazioni che possono avere anche una loro valenza storica, ho creato i rispettivi grafici temporali sulla dashboard di Grafana


L'obiettivo principale è stato raggiunto: ad inverter spento la produzione passa a circa 0 W...


sabato 25 novembre 2017

Home Automation System - I primi sensori...




Dopo aver fatto un pò di esperimenti e preso dimestichezza con OpenHAB è arrivato il momento di costruire il primo sensore da inserire nel nostro sistema di Home Automation.

Partiamo dalla cucina, dove voglio inserire un rilevatore di gas, un sensore di temperature e di umidità.

Il tutto verrà controllato da una scheda ESP8266 NodeMcu. Ho scelto questa scheda in quanto ha già il Wifi integrato, gestisce numerosi ingressi digitali più uno analogico, è programmabile come Arduino e soprattutto...costa molto poco...Su Banggood sono riuscito a portarne due a casa al costo di € 2,76 l'una, non male...

Per chi fosse interessato qui c'è il link del prodotto:

Geekcreit-Doit-NodeMcu-Lua-ESP8266 su Banggood.com


I sensori che andrò ad utilizzare sono i seguenti:

- Sensore di Gas MQ-4: sensibile principalmente al metano (quello che interessa a me...) e anche al propano e butano. Questo sensore lo avevo già utilizzato per qualche esperimento con Arduino qualche mese fa. Eccolo


Sensore Gas MQ-4 su Banggood.com

- Sensore di Temperatura / Umidità DHT11: è un sensore molto economico (con poco più di 5 euro ne ho acquistati 5) e il rilevamento della temperatura ha un errore di +/- 2°C e misura solo temperature positive. La temperatura viene rilevata con massima precisione di 1°C, quindi niente cifre decimali...A causa di queste limitazioni ho deciso di acquistare ed utilizzare i sensori della Dallas, i ds18b20 (sia per esterno che per interno...)...questo DHT11 lo utilizzerò solo per l'umidità


Pacco da 5 su Banggood.com

Pacco da 3 su Banggood.com

Sensore singolo su Banggood.com

- Sensore di Temperatura Dallas ds18b20: rispetto al precedente ha una precisione di mezzo grado e permette di misurare anche temperature negative, quindi è l'ideale per misurare temperature esterne (cosa che ho in progetto di fare...utilizzando la versione sonda da esterno)


Sensore singolo su Banggood.com

Pacco da 5 su Banggood.com

Sonda da esterno su Banggood.com

Faccio qualche prova con i diversi sensori utilizzando una breadboard...


...finchè non trovo la configurazione corretta...quindi mi creo una schedina "definitiva" in maniera un pò artigianale...



Oltre alla scheda ESP8266 e ai sensori, ho aggiunto un led di indicazione della trasmissione dei dati e un connettore per l'alimentazione esterna. La scheda infatti viene alimentata attraverso un piccolo alimentatore 5V 450mA, connesso alla morsettiera azzurra vicino alla scheda. In questo modo, oltre ad alimentare al scheda, alimento anche i diversi sensori.

Il led, il ds18b20 e il DHT11 sono connessi ad ingressi/uscite digitali mentre il sensore del gas MQ-4 è connesso all'unico ingresso analogico presente sulla scheda.

E' arrivato il momento di scrivere il software di gestione...come ambiente di sviluppo ho deciso di utilizzare Visual Studio Code, con estensione Platformio...lo trovo molto comodo e leggero, rispetto all'IDE di Arduino...La scelta è ricaduta su questo ambiente anche perchè esiste un plugin per OpenHAB, che permette di editare in maniera evoluta i file di configurazione (tipo Eclipse SmartHome Designer, ma molto più user-friendly...parere soggettivo...). In questo modo ho un unico ambiente per tutto.

Il software fa in modo che la schedina, tramite il wifi di casa, si connetta al broker MQTT di OpenHAB, acquisisca i dati dei sensori ed invii un messaggio in formato Json sul topic nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state.

La campionatura dei sensori avviene ogni 5 secondi mentre ogni minuto la media delle campionature viene inviata al server. Al momento dell'invio dei dati al server, il led verde lampeggia 3 volte per indicare l'attività di rete in corso.

Ecco un esempio di messaggio inviato dal device al broker MQTT:

{"gas":{"error":"","sensorValue":46.33333,"ppm":0.431016,"percentage":0.000043,"realValue":829.0371},"tempHum":{"error":"","humidity":63.66667,"tempC":22,"tempF":71.59999,"heatIndexC":21.91774,"heatIndexF":71.45234},"temp":{"error":"","tempC":21.66667,"tempF":70.99999}}


Il blocco gas è relativo al sensore MQ-4, il blocco tempHum al DHT11 e il blocco temp al ds18b20

Per adesso ho deciso di mantenere i dati di temperatura di entrambi i sensori per metterli a confronto e vedere come si comportano.

Bene, sembra tutto funzionare...metto quindi il dispositivo al suo posto in cucina


Adesso tocca ad OpenHAB...devo configurarlo per permettere di ricevere i dati e pubblicarli sulla sitemap. Una volta fatto questo, posso anche configurare una nuova dashboard su Grafana, per valutare l'andamento nel tempo dei dati acquisiti.

In OpenHAB non devo far altro che aggiungere i nuovi items per ricevere le informazioni da MQTT. Creo allora un nuovo file chiamato esp8266mcu11.items (esp8266mcu11 è l'identificativo univoco che ho assegnato al dispositivo appena nato...) nella cartella /etc/openhab2/items e aggiungo le seguenti linee:

Number MainFloor_KitchenTemperature "Kitchen Temperature [%.1f °C]" <temperature>
(gPersistence)
{mqtt="<[openhabianpi-mqtt:nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state:state:JSONPATH($.tempHum.tempC)]" }

Number MainFloor_KitchenTemperatureNew "Kitchen Temperature NEW [%.1f °C]" <temperature>
(gPersistence)
{mqtt="<[openhabianpi-mqtt:nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state:state:JSONPATH($.temp.tempC)]" }

Number MainFloor_KitchenHumidity "Kitchen Humidity [%.1f %%]" <humidity>
(gPersistence)
{mqtt="<[openhabianpi-mqtt:nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state:state:JSONPATH($.tempHum.humidity)]" }

Number MainFloor_KitchenGasPpm "Kitchen Gas [%.2f ppm]" <carbondioxide>
(gPersistence)
{mqtt="<[openhabianpi-mqtt:nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state:state:JSONPATH($.gas.ppm)]" }

Number MainFloor_KitchenGasValue "Kitchen Value [%.2f]" <carbondioxide>
(gPersistence)
{mqtt="<[openhabianpi-mqtt:nodemcu/mainfloor/esp8266mcu11/temphumiditygas/state:state:JSONPATH($.gas.realValue)]" }

Tocca poi alla sitemap...aggiungo le seguenti righe:

Frame label="Gas Detection" {
Text item=MainFloor_KitchenGasPpm valuecolor=[>800="red",>600="orange",<=600="green"]

}

Frame label="Kitchen" {
Text item=MainFloor_KitchenTemperatureNew
Text item=MainFloor_KitchenHumidity
}



E questo è il risultato:


Ottimo, ho aggiunto un altro mattoncino...adesso creiamo la nuova dashboard in Grafana con i dati di temperatura, umidità e gas in cucina:


Ultimo step è quello di aggiungere il dispositivo al monitoraggio della rete...in modo tale che OpenHAB mi notifichi nel caso vada offline. Allora tramite PAPERUI aggiungo il dispositivo di rete utilizzando il Network Binding e ne creo i relativi items, linkando i channels. L'item relativo alla presenza online del dispositivo lo aggiungo al gruppo gNetworkCheck e da adesso in poi il suo stato di presenza in rete sarà monitorato da OpenHAB.