LETTURA SDM120/220/230/630 MODBUS via wifi con ESP8266 (sonoff)

Discussioni relative all'uso di contatori SDM120 SDM220 modbus
Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

LETTURA SDM120/220/230/630 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda Flane » 24/10/2016, 23:25

SOLUZIONE 1
Ecco un interessantissimo progetto con cui è possibile leggere i contatori modbus della serie EASTRON SDM 120, 220, 230, 630 ....
ESP WITH MODBUS PROTOCOL

La lettura può avvenire quindi da remoto via wifi, utilizzando un ESP8266 come il Wemos D1 mini, oppure perchè no il mitico sonoff modificato con firmware nodemcu e con caricato il software dell'autore dell'articolo scaricabile da github:
SDM_Energy_Meter
hardware_sdm220.jpg

Questo risolverebbe i problemi di cablaggi rendendo il sistema di monitoraggio veramente universale e flessibile ;)

Assolutamente da provare :D

SOLUZIONE 2
La libreria sopra permette la lettura di un singolo contatore con un ESP.
Ho trovato un'altra libreria che utilizza invece un vero protocollo modbus e che quindi con un solo ESP permette la lettura di più contatori:
MODBUS-ENERGY-MONITOR-ARDUINO

Faccio notare che nella cartella "dev version" è anche presente una versione per ESP e che fra l'altro come convertitore RS485-TTL utilizza il più comune MAX485 (con i pin di direzione flusso) invece che il convertitore utilizzato da reaper7 che ha il controllo automatico del flusso (che personalmente preferisco ;) )

Questo è il collegamento previsto dall'autore (l'immagine disponibile purtroppo non è di ottima qualità)
esp8266-sdm120c-Aledav.jpg
esp8266-sdm120c-Aledav.jpg (26.1 KiB) Visto 26995 volte


Altra immagine di migliore qualità e comprensione:
Immagine

Anche questo è sicuramente da provare :D


miki8989
Messaggi: 299
Iscritto il: 22/01/2016, 6:39

Re: LETTURA SDM120/220 MODBUS via wifi con ESP (sonoff)

Messaggioda miki8989 » 01/11/2016, 15:43

Si Flavio e fattibilissimo..

Con espeasy configurato come conta impulso e come hai spiegato nella tua guida funziona benissimo..

Certo che questi esp8266 con espeasy fanno tutto..

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: LETTURA SDM120/220 MODBUS via wifi con ESP (sonoff)

Messaggioda Flane » 01/11/2016, 15:52

No Miki, l'articolo linkato legge il contatore mediante modbus e non tramite impulsi.

Gli impulsi vanno bene, ma permettono di leggere solo l'energia, e con tutti i problemi di perdita lettura in caso che alcuni impulsi non vengano letti per un qualsiasi motivo.

La lettura tramite modbus permetterebbe invece di leggere da remoto tutti i parametri energetici, con tutti i vantaggi connessi.

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: LETTURA SDM120/220 MODBUS via wifi con ESP (sonoff)

Messaggioda Flane » 20/11/2016, 23:15

Ragazzi ci sono riuscito, è possibile leggere i contatori modbus in modo remoto utilizzando un esp8266 :D

Sono riuscito con un wemos D1 mini collegato ad un contatore mediante adattatore Rs485-TTL a leggere tutti i valori, pubblicarli su una pagina web e quindi consultabili da remoto da meter o altri sistemi di monitoraggio in modalità senza fili (wifi).

Ora devo solo capire come poter utilizzare i pin tx e rx per utilizzare un sonoff in sostituzione del wemos d1 mini, così di semplificano le cose essendo alimentato direttamente a 230V

A breve vedo di pubblicare li script fatto per l'arduino IDE.

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: LETTURA SDM120/220 MODBUS via wifi con ESP (sonoff)

Messaggioda Flane » 23/11/2016, 10:40

Confermo che la lettura dei contatori EASTRON SDM modbus funziona anche con il sonoff utilizzando lo script di reaper7 ed i pin seriale hardware tx e rx del sonoff.

Nella libreria SDM.h di reaper7 c'è una riga che se decommentata permette di utilizzare appunto la seriale hardware ed i pin tx e rx per la lettura.

Ho anche fatto una modifica allo script in modo che pubblichi i dati su una paginetta web dell'ESP ed un pooler che legge quetsa pagina web via wifi per importare i dati in metern.

Ora stò testando il sistema, ma tutto sembra funzionare bene :D

pacitzu
Messaggi: 8
Iscritto il: 24/12/2016, 14:16

Re: LETTURA SDM120/220 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda pacitzu » 24/12/2016, 14:31

Sto utilizzando questo firmware per Esp8266:

http://www.letscontrolit.com/wiki/index.php/ESPEasy

Tra i vari plugin è possibile configurare un server Ser2Net per utilizzare la seriale da remoto.

Secondo voi è possibile leggere i registri del SDM120c con questo software "https://github.com/gianfrdp/SDM120C"
utilizzando un ESP8266 ed un interfaccia RS232 <-> RS485 come bridge.

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: LETTURA SDM120/220 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda Flane » 24/12/2016, 15:08

Come pensi di far girare un software in C che usa le librerie libmodbus direttamente sull'ESP8266?
Che io sappia non è possibile.

Sopra ho linkato un software e delle librerie fate appositamente per l'ESP da reaper7.
ESPEasy è un valido firmware che gestisce un sacco di funzioni, ma per ora non gestisce direttamente gli SDM.

La soluzione postata sopra da reaper7 (che ho personalmente testato) funziona sia con SDM120/220/230 che anche con i trifase SDM630.
Ho modificato il software perchè l'ESP pubblichi su una paginetta web i valori che vengono poi letti sul raspberry da un poolerweb che ho fatto per importare i dati in metern e/o 123solar.
L'importante è prendere l'adattatore RS232-RS485 con autoflow, cioè con il controllo automatico del flusso dati (il max485 non va bene). Funzioan nahce con il sonoff moddato con nodeMCU.
Appena ho un attimo cerco di pubblicare il tutto.

pacitzu
Messaggi: 8
Iscritto il: 24/12/2016, 14:16

Re: LETTURA SDM120/220 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda pacitzu » 24/12/2016, 16:12

Grazie per i suggerimenti.

Il software "https://github.com/gianfrdp/SDM120C" lo vorrei utilizzare su raspberry pi.
In modo do poter pubblicare le letture in MeterN, Domoticz, etc

Esp8266 mi serve solo per accedere al SDM120C da remoto visto che ho il raspberry pi in un altro luogo.
Ma per far questo devo poter far funzionare un server ser2net su esp8266 in modo da poter dirottare
la seriale su una porta TCP.

Sono in attesa anche della tua soluzione.

Saluti

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: LETTURA SDM120/220 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda Flane » 24/12/2016, 20:28

il software sdm120c lavora solo tramite una porta sul raspberry.
Se tu sei in grado di creare una qualche porta virtuale sul raspberry che in realtà sia connessa via wifi all'ESP fatti avanti....
in caso contrario il software sdm120c non può essere utilizzato.

Con la soluzione proposta sopra da reaper7 e da me modificata hai tutte le letture disponibili su una paginetta web sull'ESP.
Se l'ESP è connesso via wifi alla tue rete, puoi leggere i dati del contatore da ovunque e con qualsiasi sistema all'interno della tua rete (ed eventualmente anche da remoto con gli opportuni reindirizzamenti di porte sul router ;) )

pacitzu
Messaggi: 8
Iscritto il: 24/12/2016, 14:16

Re: LETTURA SDM120/220 MODBUS via wifi con ESP8266 (sonoff)

Messaggioda pacitzu » 29/12/2016, 21:40

Ho collegato la seriale del ESp8266 ( Pin D10 (GPIO1 - TX) e D9 (GPIO3 - RX) ) e l'alimentazione +3.3v e GND al convertitore Seriale-RS485.
Poi i pin A+ E B- del convertitore agli ingressi 10 e 9 del SDM120c. La massa dell'uscita RS485 del convertitore non lo collegata.


Di seguito lo schema dei collegamenti fra ESP8266 (potete utilizzare anche un sonoff basic, uno Shelly1 - che sono già anche alimentati a 230V - o altri dispositivi basati su ESP8266 come wemos D1mini .... ), adattatore e contatore:
Immagine


Ho caricato il software EspEasy r120 (o successivi) su Esp8266
http://www.letscontrolit.com/wiki/index.php/ESPEasy

e configurato il serial server Ser2Net (http://www.letscontrolit.com/wiki/index.php/Ser2Net) con questi parametri

Codice: Seleziona tutto

TCP Port:   9999
Baud Rate:2400
Data bits:   8
Parity:   None
Stop bits:   1


Ho configurato una seriale virtuale su raspberry pi indicando l'indirizzo Ip del ESp8266 con il comando socat

Codice: Seleziona tutto

socat pty,link=/home/pi/ttyS0,b2400,raw TCP:192.168.1.78:9999


Quindi ho potuto utilizzare il software sdm120c sul raspberry (https://github.com/gianfrdp/SDM120C) indicando la seriale virtuale /home/pi/ttyS0

Codice: Seleziona tutto

pi@raspberrypi:~ $ sdm120c -z 20 /home/pi/ttyS0
Voltage: 235.90 V
NOK


Codice: Seleziona tutto

pi@raspberrypi:~ $ sdm120c -z 30 /home/pi/ttyS0
Voltage: 235.80 V
Current: 0.00 A
Power: 0.00 W
Active Apparent Power: 0.00 VA
Reactive Apparent Power: 0.00 VAR
Power Factor: 1.00
Phase Angle: 0.00 Degree
Frequency: 50.00 Hz
Import Active Energy: 0 Wh
Export Active Energy: 0 Wh
Total Active Energy: 0 Wh
Import Reactive Energy: 0 VARh
Export Reactive Energy: 0 VARh
Total Reactive Energy: 0 VARh
OK


Il tutto sembra funzionare. Unico problema: devo impostare il numero di tentavi (parametro -Z) a 30 altrimenti la comunicazione
si interrompe quasi subito con un NOK.
E' normale?
Allegati
20161229_201543 - Copia.jpg


Torna a “Contatori Modbus”

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti