community italiana di domotica personale
 
Realizzare una sonda di assorbimento elettrico domotica tramite PZEM, ESP8266 e Tasmota

Realizzare una sonda di assorbimento elettrico domotica tramite PZEM, ESP8266 e Tasmota

SCOPI DEL PROGETTO:
  • Realizzare in proprio una sonda domotica per le letture di assorbimento elettrico basata su PZEM e una board ESP8266
  • Livello di difficoltà: medio/alto
  • Costo: medio/basso
CONCETTI AFFRONTATI:
  • Modifica fisica a un sensore
  • Interconnessione tra sensore e board ESP8266
  • Configurazione firmware Tasmota
COMPONENTI SOFTWARE UTILIZZATE:
  • Firmware per SOC ESP8266 Tasmota (o analoghi)
COMPONENTI FISICI UTILIZZATI:
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione progetto: 1.3

Abstract

La possibilità, in domotica personale, di misurare gli assorbimenti elettrici del proprio impianto è tra le più apprezzate funzioni non solo per una questione di contabilizzazione economica, ma anche per far sì che gli automatismi – propri della domotica – possano intervenire e/o allertarci in presenza di condizioni di assorbimento eccessivo o altre situazioni specifiche.

Le tecniche di rilevazione sono essenzialmente due: una misurazione del carico in modo passante, ovvero misurando la corrente che transita attraverso un componente sensore, oppure tramite l’uso di pinze/toroidi amperometrici, ovvero dei componenti passivi che, sfruttando il campo magnetico presente intorno a un cavo elettrico percorso da corrente (che varia di intensità proporzionalmente alla quantità di corrente), deducono la lettura di assorbimento.

Sono ormai moltissimi gli attuatori del primo tipo in grado di misurare il carico ad essi applicato, che li attraversa; quando però si tratta di misurare l’assorbimento a monte dell’impianto le possibilità si riducono di molto. Alcuni modelli di sensori passanti supportano dei carichi di corrente anche importanti (per esempio il Sonoff POW, o lo Shelly 1PM).

Toroide amperometrico
dettaglio di pinza amperometrica.

L’alternativa sta nell’adozione di pinze/toroidi amperometrici. In pratica si tratta di sensori dotati di una sonda magnetica che “circonda” il cavo fase da monitorare e che, il base al campo magnetico da esso prodotto, determina la lettura. Il vantaggio evidente di questi sensori sta nella lettura “passiva” dell’informazione, la quale viene prelevata semplicemente circondando un cavo tramite il toroide/pinza amperometrica, il che consente anche di non dover “metter mano” all’impianto.

I sensori di queso tipo dotati anche di funzionalità domotiche ne esistono alcuni modelli di qualità, come per esempio l’ottimo Shelly EM, il quale unico handicap è, purtroppo, il costo, che, sebbene non elevatissimo, è presente.

Se la misurazione degli assorbimenti è un must ma non si vuole/può optare per un componente specificamente concepito a tale scopo, la soluzione esiste: l’accoppiamento di un sensore digitale come il PZEM-016 (vedi anche scheda inDomus) e una board Wi-Fi Wemos D1 Mini (ma per entrambi vanno bene anche altri modelli) – componenti entrambi molto economici ma versatili ed efficaci – consente di ottenere sostanzialmente il medesimo scopo.

Il presente progetto realizza precisamente questo: illustra come assemblare in un’unico device le funzionalità di sensore offerte dal PZEM-016 e quelle di “intelligenza” e trasmissione dati tramite il Wemos D1 Mini.

N.b. Questo, come tanti, è solo un progetto sperimentale e con scopi puramente didattici. Sul tema di energia e potenza, si consiglia caldamente la lettura di questa scheda.

Si parte

Necessario

Il necessario per realizzare il presente progetto è, come detto, un PZEM-016 e un Wemos D1 Mini.

Tra i vari modelli PZEM abbiamo scelto il PZEM-016 perché, a differenza del modello inferiore (il PZEM-004), può essere scelto in acquisto in abbinamento a una pinza amperometrica anziché un toroide chiuso: la prima si monta sul cavo fase da monitorare semplicemente aprendola e posizionandola intorno al cavo (vedi immagine sopra), mentre il toroide prevede che il cavo venga disconnesso dalla più vicina connessione per essere “infilato”. Secondariamente, il PZEM-016 è dotato di un proprio case protettivo, il che non guasta. La scelta del Wemos D1 Mini, invece, è puramente occasionale: per il presente progetto si sarebbe potuto utilizzare (con le medesime tecniche descritte) un NodeMCU o altri analoghi.

Le due unità verranno collegate assieme e, date le limitate dimensioni del Wemos D1 Mini, provvederemo a inserire quest’ultimo direttamente dentro la scatola di contenimento del PZEM-016.

Servono poi due resistenze da 2kΩ, qualche cavetto Dupont, un piccolo saldatore (bene averne uno con una punta particolarmente sottile) e infine una pompa dissaldante (non assolutamente necessaria ma caldamente consigliata).

Infine, è bene avere un minimo di manualità. 😊

PZEM

Il PZEM-016 è un’unità alimentata tramite i comuni 230 volt di rete in grado di accettare letture esterne tramite una comune pinza o un toroide amperometrici. Di positivo ha il fatto di presentare un’uscita a 5 volt in corrente continua, particolarmente comoda per alimentare, in questo progetto, il Wemos D1 Mini che gli andremo a collegare e montare sopra.

Per integrare al Wemos le letture del PZEM è necessario apportare a quest’ultimo due piccole modifiche, ovvero il dissaldamento di un chip integrato presente sulla sua board e l’aggiunta delle due resistenze da 2kΩ.

Il PZEM-016 appare come segue:

PZEM-016

Tramite un profilo affilato ma non tagliente (per esempio una carta di credito) sollevare i bordi laterali così da aprire l’enclosure e avere accesso alla board del PZEM. Una volta aperto appare così:

PZEM-016 - Aperto

Il chip integrato da dissaldare, quindi da rimuovere, è presente nella foto nell’angolo in basso a destra.
Eccone un dettaglio:

PZEM-016 - Chip da dissaldare - dettaglio

Con molta cura e grazie all’aiuto del mini-saldatore e della pompa dissaldante, provvedere al dissaldamento del piccolo integrato, riscaldando e rimuovendo lo stagno che ne fissa i vari piedini e sollevandolo delicatamente da sotto.

N.b. Se non si ha particolare dimestichezza con le operazioni di dissaldatura, si consiglia la lettura di questa ottima guida.

Al termine, la piazzola dovrebbe risultare come segue:

PZEM-016 - Chip dissaldato


A questo punto dovremo aggiungere le due resistenze e due cavi Dupont in punti specifici della board.

PZEM-016 - Fototransistor, punti di saldatura

Andremo a unire, tramite una resistenza, i punti 1 e 2 mentre la seconda resistenza la collocheremo tra il punto 1 e il 3.
Andremo contestualmente a saldare al punto 2 un cavetto Dupont (lo useremo in seguito per il collegamento con il Wemos), mentre il secondo cavetto lo andremo a saldare al punto 4.

N.b. Si tratta di saldature non propriamente elementari: è necessario essere particolarmente accurati e puliti nella realizzazione dei contatti, che ovviamente devono essere minimali e isolati rispetto agli altri.

Alla fine dell’operazione, la board dovrebbe apparire come segue:

PZEM-016 - Modifica conclusa

La modifica al PZEM è così conclusa.

ESP8266

La board basata su SOC ESP8266 che utilizzeremo è un Wemos D1 Mini ma avrebbe, come detto, anche essere un’altra.

In primis è necessario accertarsi di installare e configurare correttamente il firmware Tasmota sul Wemos; per farlo suggeriamo di utilizzare la nostra Masterguide dedicata alla riprogrammazione di questi componenti, tenendo a mente che il Wemos D1 Mini:

  • può essere collegato al computer di appoggio da quale lo riprogrammeremo direttamente tramite cavo USB/micro USB;
  • non è necessario impostarlo in modalità “flash”: basta collegarlo e comandare l’upload del firmware.

Daremo quindi per scontato che si sia provveduto alla programmazione del firmware della board ESP8266 utilizzando il firmware custom Tasmota.

Collegamento con il PZEM

La particolarità del PZEM-016 è quella di disporre di morsetti di uscita che erogano una corrente continua a 5 volt, esattamente quella necessaria al nostro Wemos per operare. Procediamo quindi a identificare i morsetti, che si trovano nell’estremità inferiore del PZEM, e inseriamo due fili, uno per il polo positivo e uno per il polo negativo.

Il nostro consiglio è quello di inserire i capi dei due fili nella morsettiera per poi farli transitare sotto la board, infine per farli “uscire” di lato. Questo piccolo trucchetto ci tornerà molto utile in fase di chiusura del case del PZEM.

PZEM-016 - Alimentazione 5 volt in uscita

Dal PZEM partiranno quindi quattro fili:

  • polo positivo 5 volt;
  • polo negativo;
  • i due fili saldati assieme alle resistenze.

Il Wemos D1 Mini presenta le seguenti connessioni:

Wemos D1 Mini - Schema
dettaglio dello schema fisico/logico del Wemos D1 Mini.

Andremo quindi a collegare i quattro fili che abbiamo collocato sul PZEM-016 come segue:

PZEM-016 Wemos D1 Mini
Polo + 5 volt Pin 5v
Polo negativo Pin GND
Pin 2 GPIO3 (pin 21)
Pin 4 GPIO1 (pin 22)

Ci raccomandiamo di verificare bene le saldature e di non avere dei fili eccessivamente lunghi, in quanto potrebbero ostacolare la chiusura del case.

A questo punto è possibile chiudere il tutto. Un suggerimento potrebbe essere  quello di posizionare dei distanziali in plastica, così da poter creare una sorta di “rialzo” per il Wemos, ma in alternativa potremo procedere con della più comune colla a caldo. Posizioniamo quindi il Wemos sopra il PZEM, creando tramite la colla a caldo (in prossimità dei 4 angoli) dei sostegni per sollevarlo. Il consiglio è quello di non esagerare con la colla a caldo, così da non coprire eccessivamente la circuiteria del PZEM, il quale potrebbe altrimenti risentirne in quanto non più in grado di dissipare il calore.

PZEM-016 e Wemos
un dettaglio del montaggio del Wemos sulla board PZEM.

Eseguita quest’operazione, procediamo alla chiusura della scocca, la quale quindi ora conterrà sia il PZEM che il Wemos. Assicuriamoci che i fili, non eccessivamente lunghi, rientrino all’interno della sagoma del PZEM e procediamo a chiudere il case con la scocca rimossa a inizio guida. In questa fase ci sarà particolarmente utile l’aver fatto passare i fili dell’alimentazione del Wemos sotto la board del PZEM, come consigliato in precedenza.

Pinza amperometrica

Completato l’assemblaggio dell’unità PZEM+Wemos siamo pronti a collegarsi la pinza amperometrica, ovvero il sensore magnetico che, una volta collocato sul cavo di fase da monitorare, rileverà l’assorbimento.

Al PZEM-016 è necessario inviare:

  • l’alimentazione 230 volt di rete;
  • le connessioni alla pinza amperometrica.

Lo schema di connessione è dunque il seguente:

PZEM-016 - Connessioni e alimentazione

Posizionamento pinza amperometrica

È il momento di posizionare la pinza amperometrica sul cavo di fase da monitorare. Solitamente si sceglie il cavo di fase in ingresso all’impianto, ovvero sul quadro. Tramite un cercafase (ma vi consigliamo di sfruttare sempre l’intervento di un professionista) identificate il cavo e poi posizionategli intorno la pinza, aprendola e poi chiudendogliela attorno.


A questo punto, con il PZEM alimentato, il quale riceve le letture dalla pinza amperometrica e le “gira” al Wemos, il quale è al contempo da lui alimentato, abbiamo terminato il lavoro “fisico” previsto dal progetto.

Tasmota

A questo punto siamo pronti per configurare il firmware del Wemos D1 Mini (Tasmota, precedentemente installato sull’unità) al fine di farli interpretare di dati provenienti dal PZEM e “girarli” sulla nostra Wi-Fi.

Per farlo, recarsi presso l’interfaccia web di Tastmota ed accedere alla voce “Configuration” > “Configure Module” e impostarlo come segue:

Tasmota - PZEM

Una volta provveduto a configurare il firmware come sopra e cliccato su “Save”, la realizzazione del presente progetto è tecnicamente completata.

Per verificare che tutto sia correttamente configurato sarà sufficiente tornare presso la pagina principale dell’interfaccia web di Tasmota: se tutto sarà correttamente funzionante, appariranno elencate le letture di assorbimento come segue:

Tasmota - PZEM - Letture

VOCI DISPONIBILI:
  • Voltage: il valore in volt rilevato;
  • Current: l’assorbimento in Ampere in real-time;
  • Power: la potenza in Watt attualmente impiegata;
  • Reactive Power: la potenza reattiva;
  • Power Factor: il fattore di potenza;
  • Frequenza: la frequenza della corrente presente nel nostro impianto;
  • Energy Today: l’energia (consumo) in kWh della giornata in corso;
  • Energy Yesterday: l’energia (consumo) in kWh della giornata precedente;
  • Energy Total: l’energia (consumo) in kWh totale, ovvero dal primo avvio di del firmware.
CONFIGURAZIONI SPECIFICHE

Le letture elettriche saranno tanto precise e ricorrenti in base a come viene regolato il firmware. I comandi (utilizzabili presso la console Tasmota o come topic MQTT) sono:

Comando Tasmota Spiegazione Consigliato
AmpRes Risoluzione della lettura istantanea di corrente in Ampere. Il numero (0..3) indica il numero di posizioni decimali AmpRes 1
EnergyRes Risoluzione della lettura di energia in kw/h. Il numero (0..3) indica il numero di posizioni decimali EnergyRes 1
FreqRes Risoluzione della lettura istantanea di frequenza. Il numero (0..3) indica il numero di posizioni decimali FreqRes 0
VoltRes Risoluzione della lettura istantanea di voltaggio in Volt. Il numero (0..3) indica il numero di posizioni decimali VoltRes 0
WattRes Risoluzione della lettura istantanea di potenza in Watt. Il numero (0..3) indica il numero di posizioni decimali WattRes 0
NOTE IMPORTANTI

È molto importante che data e ora, sul dispositivo che monta Tasmota, siano correttamente configurate, anche rispetto a ora legale/solare. Si consiglia di leggere questa guida.

Si consiglia di disattivare la modalità SLEEP sul firmware Tasmota (comando “SLEEP 0″) per evitare di mancare alcune letture in coincidenza di eventuali cicli di “sonno” impostati tramite tale comando.

In ultimo, si consiglia di impostare una frequenza di aggiornamento dati di 10 secondi (comando “TELEPERIOD 10“).

Integrazioni

A questo punto abbiamo un’host Wi-Fi in grado di fornire delle letture di assorbimento del suo sensore. Ma come far “atterrare” queste letture sulla nostra domotica personale basata su HUB personali?

La chiave, come spesso capita, è il protocollo MQTT. Essendo il firmware Tasmota in grado di “girare” tramite questo protocollo le letture dei sensori collegati ai dispositivi che lo abbiano in esecuzione (e non solo), anche in questo caso la soluzione sarà quella di attivare tale funzionalità e, presso il nostro HUB, raccogliere le informazioni tramite essa ricevute.

Per attivare MQTT presso Tasmota è necessario recarsi presso l’interfaccia web ed accedere alla voce “Configuration” > “Configure MTTQ” e impostare le voci in base alle caratteristiche della propria realtà operativa – a tal proposito è disponibile una guida ad hoc. Una volta attivato MQTT presso il firmware Tasmota presente sul Wemos D1 Mini non resterà che configurare il client MQTT presso il proprio HUB personale.

A tal proposito abbiamo pubblicato:


Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Se ti sei perso, a tua disposizione c'è la mappa.