Programari
Emon
Programari per mostrar els consums, amb llicència GPL, que funciona amb un servidor web amb PHP i mysql. [1]
Biblioteca de l'ENC28j60
Biblioteques en constant modificació per treure tot el possible potencial del connector de xarxa. En el nostre cas, i després de tenir problemes amb una biblioteca anomenada UIPethernet, estem funcionant sense problemes amb un altra anomenada Ethercard. Perquè treballi amb variables tipus double s'ha hagut de fer una modificació a l'arxiu ethercard.cpp i descomentar la linia "#define FLOATEMIT".
Aquí us deixem el fitxer de la biblioteca que es crida des del programa de l'arduino Fitxer:Ethercard-master.zip
Arduino
En aquest cas s'ha partit de la versió que proposa emon al seu github per a mesures trifàsiques amb 3 sensors de corrent i una entrada de tensió. Els programes per arduino de emon estan pensats per que es comuniqui amb una RasPi a través de un mòdul de RF. En el nostre cas hem hagut de modificar el programa per que pugui treballar amb la biblioteca del shield ethernet i envii els valors que ha calculat quan hi hagi una petició del servidor. Per tant hi ha la part principal del programa que prové de emon on es fan tots els càlculs elèctrics a partir de les mesures dels sensors i una segona part que hem integrat on s'empaqueten aquests valors per enviar-los a través de ethernet.
Aquest codi ens permet monitoritzar 3 consums monofàsics en 3 fases diferents o un consum trifàsic. Creiem que modificant el software també podem calcular consums monofàsics en fases repetides però encara no ho hem provat.
El codi base creat per emon per mesurar una instal·lació trifàsica amb 3 sensors de corrent i una mesura de voltatge el podeu veure aquí.
El codi que hem modificat nosaltres per treballar amb el shield ethernet el teniu aquí
Scripts per llegir les dades dels Arduinos des del Servidor
Hem utilitzat un script, que és quasi igual per cada arduino. Els scripts per cada arduino els executem simultàniament. Els executem tant bon punt el servidor s'engega, el qual ha d'estar sempre engegat. I afegim un segon script, que un cop modificat el primer, en fa copia igual per els altres modificant les petites variacions per automatitzar el procés. Us deixem els codis aquí.