Programari: diferència entre les revisions
Cap resum de modificació |
|||
| (Hi ha una revisió intermèdia del mateix usuari que no es mostren) | |||
| Línia 5: | Línia 5: | ||
Biblioteques en constant modificació per treure tot el possible potencial del connector de xarxa. | 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. | En el nostre cas, i després de tenir problemes amb una biblioteca anomenada UIPethernet, estem funcionant sense problemes amb un altra anomenada Ethercard. | ||
[https://github.com/jcw/ethercard] | '''Perquè treballi amb variables tipus double s'ha hagut de fer una modificació a l'arxiu ethercard.cpp (que es troba a la carpeta de la biblioteca Ethercard-master.zip) i descomentar la linia "#define FLOATEMIT".''' [https://github.com/jcw/ethercard] | ||
Aquí us deixem el fitxer de la biblioteca que es crida des del programa de l'arduino [[Fitxer:Ethercard-master.zip]] | Aquí us deixem el fitxer de la biblioteca que es crida des del programa de l'arduino [[Fitxer:Ethercard-master.zip]] | ||
| Línia 36: | Línia 35: | ||
D'aquesta manera tenim directoris segons arduino 2,3,..7 i dins de cada un hi ha totes les lectures fetes amb el nom del fitxer del tipus DadesArduino2-160323.res.bz2 on s'indica el número d'Arduino | D'aquesta manera tenim directoris segons arduino 2,3,..7 i dins de cada un hi ha totes les lectures fetes amb el nom del fitxer del tipus DadesArduino2-160323.res.bz2 on s'indica el número d'Arduino | ||
(en aquest cas 2), i la data amb estructura yymmdd. Podeu veure l'estructura i els fitxers, clicant [[http://emon.canfugarolas.org/Dades/ | (en aquest cas 2), i la data amb estructura yymmdd. Podeu veure l'estructura i els fitxers, clicant [[http://emon.canfugarolas.org/Dades/ aquí]] | ||
Amb aquesta estructura de dades, l'script Generador de factures, llegeix les dades i en genera la factura per cada Col·lectiu, amb gràfiques del consum diari de l'últim mes, i el consum mensual de l'últim any. Ho fa per cada Arduino, i cada Col·lectiu. Llegeix les dades i fa les sumes, genera gràfiques amb la llibreria matplotlib i finalment, utilitzant el LaTeX, crea les factures de cada Col·lectiu. Si voleu veure l'script, clica [[ScriptFactura|aquí]]. | Amb aquesta estructura de dades, l'script Generador de factures, llegeix les dades i en genera la factura per cada Col·lectiu, amb gràfiques del consum diari de l'últim mes, i el consum mensual de l'últim any. Ho fa per cada Arduino, i cada Col·lectiu. Llegeix les dades i fa les sumes, genera gràfiques amb la llibreria matplotlib i finalment, utilitzant el LaTeX, crea les factures de cada Col·lectiu. Si voleu veure l'script, clica [[ScriptFactura|aquí]]. | ||
Revisió de 16:02, 6 set 2017
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 (que es troba a la carpeta de la biblioteca Ethercard-master.zip) i descomentar la linia "#define FLOATEMIT". [2]
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í.
Script per Generar les Factures de cada Col·lectiu
Els scripts de lectura dels arduinos llegeixen les dades i les envien al emoncms que tenim instal·lat en el mateix servidor i també van guardant els valors en uns fitxers de Dades. Aquests fitxers de dades guarden per aquest ordre
Data de la lectura, Hora, Voltatge, IL1, pL1, sL1, CosL1, IL2, pL2, sL2, CosL2, IL3, pL3, sL3, CosL3
Guarda les dades en un fitxer que cada dia a les 00:00 es comprimeixen i es guarden amb la data en el nom del fitxer.
D'aquesta manera tenim directoris segons arduino 2,3,..7 i dins de cada un hi ha totes les lectures fetes amb el nom del fitxer del tipus DadesArduino2-160323.res.bz2 on s'indica el número d'Arduino (en aquest cas 2), i la data amb estructura yymmdd. Podeu veure l'estructura i els fitxers, clicant [aquí]
Amb aquesta estructura de dades, l'script Generador de factures, llegeix les dades i en genera la factura per cada Col·lectiu, amb gràfiques del consum diari de l'últim mes, i el consum mensual de l'últim any. Ho fa per cada Arduino, i cada Col·lectiu. Llegeix les dades i fa les sumes, genera gràfiques amb la llibreria matplotlib i finalment, utilitzant el LaTeX, crea les factures de cada Col·lectiu. Si voleu veure l'script, clica aquí.