Progetto di un misuratore di corrente elettrica basato sul sensore ad effetto Hall ACS712 – Parte 4

Nel precedente articolo “Progetto di un misuratore di corrente elettrica basato sul sensore ad effetto Hall ACS712 - Parte 3” abbiamo verificato il funzionamento del misuratore di corrente in assenza di carico sul sensore ad effetto Hall ACS712. Vedremo in questa quarta ed ultima parte del progetto come monitorare il consumo di corrente elettrica da remoto mediante la piattaforma ThingSpeak.

Monitoraggio del consumo di energia elettrica con la piattaforma ThingSpeak

L'applicazione ThingSpeak consente di registrare i dati dei sensori e tracciarne graficamente l’andamento. Ciò che rende ThingSpeak speciale nelle applicazioni IoT, è l’utilizzo di un semplice protocollo HTTP per trasferire, archiviare e recuperare informazioni da diversi sensori. Una caratteristica unica di ThingSpeak è il supporto di MATLAB. La stretta relazione tra ThingSpeak e MATLAB ha portato a integrare diverse funzionalità chiave di MATLAB nell'applicazione ThingSpeak, ossia, analizzare e visualizzare i dati dell'utente, ovvero i dati di sensori, in modo grafico e senza la licenza di MATLAB. ThingSpeak è un ottimo strumento per i progetti relativi all'IoT, per questo, il progetto si concentra in special modo sull’utilizzo di ThingSpeak e sull'interfaccia ESP8266-ThingSpeak che può essere utilizzata anche in altri progetti futuri.

Connessione del modulo Wi-Fi ESP8266 a ThingSpeak

Quando i produttori e gli hobbisti pensano all'Internet of Things, vengono in mente due cose: una è l’ESP8266 e l'altra è ThingSpeak. L’ESP8266 è la parte hardware del sistema IoT, mentre ThingSpeak fornisce l'API necessaria (o l'interfaccia utente) per il sistema. In questo progetto IoT, mostreremo come connettere l’ESP8266 all'applicazione ThingSpeak e come funziona la collaborazione ESP8266-ThingSpeak. Innanzitutto, occorre creare un account con ThingSpeak. Dalla collaborazione di ThingSpeak con MATLAB, per accedere a ThingSpeak è possibile utilizzare le credenziali MathWorks da inserire nella pagina di login di ThingSpeak, se si ha un account, altrimenti si deve creare un account MathWorks e poi accedere all'applicazione ThingSpeak. Dopo aver effettuato l'accesso a ThingSpeak dal sito https://thingspeak.com/login?skipSSOCheck=true, è necessario creare un nuovo canale per la memorizzazione dei dati andando su Channels > My Channels e cliccare su New Channel; apparirà una finestra come mostrato nella Figura 1.

Figura 1: Creazione nuovo canale di ThingSpeak

Dopo aver inserito il nome del canale, che in questo progetto è “Misuratore di energia AC”, occorre inserire il nome del campo 1, ad esempio “Misura Energia". I campi in un canale vengono utilizzati per contenere dei dati, ogni canale può contenere fino a 8 campi. Dopo aver inserito il nome del canale e del campo 1, si deve salvare il canale cliccando su Save Channel in fondo alla pagina. Prima di inviare i dati tramite l’ESP8266 è necessario acquisire la chiave API del canale che è stato creato. Per questa procedura, innanzitutto si torna al sito ThingSpeak, al canale creato e salvato precedentemente, quindi si clicca sulla scheda "API Keys". Sotto la scritta Write API Key apparirà la chiave, ovvero, una stringa alfanumerica di 16 caratteri che si dovrà annotare per l’utilizzo successivo (Figura 2).

Figura 2: Chiave API del canale creato

Invio dei dati dall’ESP8266 a ThingSpeak

Con il seguente codice i dati del consumo di energia saranno inviati a ThingSpeak con cui si potrà effettuare il monitoraggio da remoto dell’energia assorbita che sarà rappresentata su un grafico nel canale creato. Come abbiamo fatto nel test preliminare funzionale del progetto descritto nell’articolo “Progetto di un misuratore di corrente elettrica basato sul sensore ad effetto Hall ACS712 - Parte 3”, per programmare l’ESP8266 il circuito sarà alimentato solo tramite il collegamento USB del computer alla scheda di sviluppo D1 NodeMCU, quindi, non chiudete l’interruttore secondario SW1 e l’interruttore generale del quadro elettrico (vedi lo schema elettrico in Figura 3).

Figura 3: Schema elettrico del misuratore di corrente

Con la scheda di sviluppo collegata al computer, aprite l’IDE di Arduino e in un nuovo sketch copiate il codice riportato di seguito:

/*
* Vrms & Irms values from analogRead A0 using ACS712 and NodeMCU ESP8266 ESP-12E module. 
* Plus WiFi connection to an access point. 
* And ThingSpeak IoT platform Analysis access. 
* by Alex Roman
*/

/*--------LIBRARIES--------*/
#include <ESP8266WiFi.h> // Need to add the ESP8266WiFi.h library 
//#include "secrets.h" // Also add the secrets.h file (The one saved in the same folder location as this scrip). 
#include "ThingSpeak.h"
/*--------VARIABLES--------*/
/*--------NodeMCU--------*/
#define SECRET_SSID "SSID" // replace MySSID with your WiFi network name
#define SECRET_PASS "PASSWORD" // replace MyPassword with your WiFi password

#define SECRET_CH_ID 0000000 // replace 0000000 with your channel number
#define SECRET_WRITE_APIKEY "xxxxxxxxxxxxxxxx" // replace XYZ with your channel write API Key


#define PIN A0
float resolution = 3.3 / 1024; // Input Voltage Range is 1V to 3.3V
// ESP8266 ADC resolution is 10-bit. 2^10 = 1024
uint32_t period = 1000000 / 50; // One period of a 60Hz periodic waveform 
uint32_t t_start = 0;

// setup
float zero_ADC_Value = 0;

// loop
int cnt = 0;
float ADC = 0, Vrms = 0, Current = 0, Q = 0.000, c = 0;


float sensitivity = 0.066; // 185 mV/A, 100 mV/A and 0.66 mV/A for ±5A, ±20A and ±30A current range respectively.

 [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1691 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend