jackie2_it il 7/2/2014, 22:14
Datalogger Arduino per regolatore EP Solar
Ciao a tutti dopo aver letto della possibilità di collegare il mio regolatore EPsolar modello 1206RN al computer tramite un cavo usb-rs232 mi è venuta in mente l'idea di sostituire Arduino al PC e lottare i dati che provengono dal regolatore su una scheda SD e in futuro inviate via rete su un server web.

Iniziamo con questa avventura (Elettroshocknow Style)
Inizia la ricerca su san google alla ricerca del protocollo di comunicazione tra il regolatore e il suo display remoto mt-5.
Ecco che salta fuori il documento in allegato ora il passo successivo sarà quello di creare il primo sketch con un Arduino uno o 2009 e vedere come realizzare il collegamento tra il regolatore (porta rj45 style) e Arduino.

Se vedete qualcosa che non quadra fatemi sapere visto che penso che sias un progetto che farà gola a molti

Download documento protocollo--->
jackie2_it il 12/2/2014, 21:21
Reatalogger Arduino per regolatore EP Solar
Iniziamo con il leggere il documento in allegato.
Come possiamo vedere quando il display richiede i dati al regolatore (ogni 30 secondi) invia una sequenza di byte alla quale il regolatore risponde con un altra sequenza di risposta.
Il display invia la seguente sequenza di byte (ogni 30 secondi)

synchronous head + ID + A0H + 00H + CRCH + CRCL + 7FH

il regolatore risponde con la seguente sequenza

synchronous head + ID + A0H + 0DH + collected data strings + CRCH + CRCL + 7FH

Come potete vedere dalle due sequenze il regolatore risponde con la stessa synchronous head inviata dal display (penso per indicare che si tratti di un dato per il regolatore).
Mentre nella sequenza di ritorno potete vedere fra i vari valori la stringa contenente i valori da visualizzare sul display.

Ora vediamo come possiamo convertire il tutto in codice arduino in modo da abbozzare una prima versione di sketch che visualizza questi valori su un display collegato ad arduino.

Dobbiamo per prima cosa inviare i comandi da arduino al regolatore scrivendoli sulla seriale, per fare questa operazione dobbiamo usare il comando Serial.Write

//inizio inviando il synchronous head (preso paro paro dalla documentazione)
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);

Serial.write(0x01); // versione indico 1
Serial.write(0xA0); // Richiedo al regolatore i dati in tempo reale.
Serial.write(0x00); // Lunghezza dei dati
Serial.write(0x6F); // Check sum
Serial.write(0x52); // Check sum
Serial.write(0x7F);

Poi arduino si deve mettere in attesa dei valori che verranno inviati dal regolatore con il comando Serial.available().
I dati verranno caricati in un buffer che verrà analizzato byte per byte per estratte i valori di tensione, corrente, etc.
Ecco come:
tensioneBatteria = (bufferRegolatore[10] << 8)

danye il 19/2/2014, 12:53
Reatalogger Arduino per regolatore EP Solar
Ottimo lavoro ti seguo interessato! :clap.gif:

jackie2_it il 8/3/2014, 17:06
Reatalogger Arduino per regolatore EP Solar
Ciao a tutti torniamo alla costruzione del datalogger per epsolar dopo un periodo di stop causa lavoro.
Ma non preoccupatevi il progetto continua vediamo a che punto siamo rimasti la scorsa volta, abbiamo visto una semplice implementazione del protocollo di comunicazione con il regolatore epsolar.
Oggi vedremo come effettuare il collegameto tra il regolatore epsolar ed arduino.
Per arrivare al collegamento con arduino ho per prima cosa realizzato il cavo di collegamento con il computer per verificare i segnali che venivano scambiati.
Per realizzare il cavo ho utilizzato il cavo PL2303HX (che è un convertitore usb a RS232 ttl) nel mio caso ho utilizzato


pin 8 (cavo nero)
pin 6 (cavo verde)
pin 5 (cavo bianco)

Vi chiederete e il cavo rosso. il cavo rosso non serve perchè fornisce i 5volt e non sono necessari per la comunicazione visto che il regolatore ha già la sua alimentazione.
Ora passiamo al programma per testare il collegamento ho scaricato il programma che trovate a


Ed ecco una carrellata di altre foto del regolatore collegato al computer.




Ora visto che il collegamento risulta corretto passiamo al replicarlo con arduino, il tutto è molto semplificato visto che il regolatore comunica con livelli ttl a 5v (che sono compatibili con arduino).
L'arduino che risulta più adatto per fare esperimenti è l'arduino mega perchè ha 4 porte seriali molto utili per debuggare il programma e verificare tramite la porta usb di arduino quali sono i valori che vengono restituiti dal regolatore.
Iniziamo con il creare un connettore rj45 per il collegamento di arduino con l'epsolar, nel mio caso come da foto sotto ho utilizzato un connettore rj45 e tre fili rigidi (di quelli che vengono utilizzati nel cavo del telefono) che facilitano la connessione tra arduino e l'epsolar.

Il collegamento deve essere fatto nel seguente modo.
pin 8 (gnd arduino)
pin 6 (tx1 arduino)
pin 5 (rx1 arduino)
Il risultato è quello sotto (per adesso è ancora un collegamento volante)

Il prossimo passo sarà quello di realizzare il primo sketch di test e verificare i valori su pc.

danye il 8/3/2014, 17:56
Reatalogger Arduino per regolatore EP Solar
Fantastico, il mio arduino ha già il motore caldo...

ElettroshockNow il 9/3/2014, 10:39
Reatalogger Arduino per regolatore EP Solar
:clap.gif: mi sorprendi sempre di più ,riesci a spaziare in mille direzioni.
Io l'ho segnalata come preferita ,perchè son sicuro che prima o poi entrerà in casa un EP
o ancor meglio si potrebbe fruttare lo stesso protocollo per dei regolatori Homemade
cosi' da creare una compatibilità con software o hardware sviluppati per gli EP.

Ciao
Elettro

jackie2_it il 9/3/2014, 18:25
Reatalogger Arduino per regolatore EP Solar
Ciao a tutti e bentornati.
Oggi causa febbre sono chiuso in casa e quindi ne ho approfittato per realizzare lo sketch per arduino per leggere i dati dal nostro regolatore epsolar.
Ed ecco che è nata la prima versione del logger la 0.1 .
Come potete vedere dal codice qui sotto ogni 30 secondi arduino interroga il regolatore chiedendogli i dati.
Ed l'epsolar gli risponde.
Non spaventatevi per i valori di tensione perchè andranno ancora divisi per 100 in modo da ottenere i volt.

[code]
#define SER_SIZE 256 //dimensione massima del buffer
static uint8_t bufferRegolatore[SER_SIZE + 1] = ""; //buffer che conterrà i byte letti dalla seriale.
int serind; //indice per il buffer.

//variabili d'appoggio per i valori letti dal regolatore.
int tensioneBatteria = 0;
int tensionePannello = 0;
int correnteCarico = 0;
int tensioneBatteriaScarica = 0;
int tensioneBatteriaCarica = 0;
int caricoOnOff = 0;
int sovraccarico = 0;
int cortoCircuitoCarico = 0;
int soc = 0;
int batteriaSovraccarica = 0;
int indicatoreSottoScarica = 0;
int indicatoreBatteriaCarica = 0;
int indicatoreCarica = 0;
int temperaturaBatteria = 0;
int correnteCarica = 0;

int contasecondi = 0;

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial1.begin(9600); //comunica con il regolatore a 9600.
}

void parser() {
//elabora il buffer ed estrae i valori.
tensioneBatteria = (bufferRegolatore[10] << 8)

danye il 10/3/2014, 11:57
Reatalogger Arduino per regolatore EP Solar
Grande, appena posso lo provo sul mio Arduino.Una domanda, dal DOC che hai linkato leggo che la stringa di richiesta deve avere in testa "AA55AA55AA55", funziona anche senza?

jackie2_it il 10/3/2014, 14:01
Reatalogger Arduino per regolatore EP Solar
è sostituita dalla sequenza
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
che da quando vedo è più utilizzata (ho preso come esempio i sorgenti del programma windows).

Per provarlo sul tuo arduino uno bisogna apportare alcune modifiche al programma perchè ha una sola seriale, ma tempo 1/2 giorni metto su lo sketch per arduino uno che fà il log direttamente su sd.

jackie2_it il 10/3/2014, 21:38
Reatalogger Arduino per regolatore EP Solar
Vediamo che cosa ci serve per realizzare il primo datalogger sperimentale.
Per prima cosa un timer per memorizzare sul log la data e l'ora possiamo utilizzare un ds1307 che è molto semplice da programmare ed utilizzare io ho preso

danye il 11/3/2014, 13:26
Reatalogger Arduino per regolatore EP Solar
Ieri sera ho provato il tuo sketch sul mio Arduino uno. Ho sostituito la Serial1 con "software serial" una classe che consente di dichiarare due pin digitali come TX e RX, ma non funziona, non ho nessun debug sulla seriale hardware.La prova è stata veloce e forse ho tralasciato qualcosa.
Provero' il tuo prossimo sketch.
Intanto ho preparato una bella cosetta....


jackie2_it il 11/3/2014, 14:14
Reatalogger Arduino per regolatore EP SolarMolto bello ma si basa su un database? oppure su un file fisso?

danye il 11/3/2014, 14:28
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 11/03/2014 14:14:55 ) [quote]Molto bello ma si basa su un database? oppure su un file fisso?

Si basa su MySQL e PHP, i valori a 0 sono in attesa di essere aggiornati dal tuo lavoro, mentre la tensione delle batterie è in real time senza bisogno di refresh della pagina. Per il momento prende il valore da un pin analogico di Arduino.

jackie2_it il 11/3/2014, 17:11
Reatalogger Arduino per regolatore EP Solar
Magari posta poi il codice della pagina così la possiamo integrare con altre funzionalità

danye il 11/3/2014, 18:04
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 11/03/2014 17:11:37 ) [quote]Magari posta poi il codice della pagina così la possiamo integrare con altre funzionalità

Certo, appena riesco ad interfacciare il mio Arduino uno al regolatore completo almeno la lettura delle tensioni e correnti. Poi dovrò far funzionare il grafico e la sezione settaggi per controllare ad esempio l'on/off del carico ecc... :clap.gif:

jackie2_it il 11/3/2014, 20:19
Reatalogger Arduino per regolatore EP Solar
Stò già lavorando anche per far funzionare il tutto via rete in modo da poter controllare l'on/off e cambiare le impostazioni via rete.
Proprio adesso stò facendo dei test con un arduino uno appena è stabile il codice lo posto.

jackie2_it il 11/3/2014, 20:47
Reatalogger Arduino per regolatore EP Solar
Puoi postare il tuo sketch modificato così lo posso testare per verificarne il problema?

danye il 11/3/2014, 22:00
Reatalogger Arduino per regolatore EP Solar
Scusami per stasera non ce la faccio a postare il codice. Domani in serata lo posto.
Grazie di tutto, buon test!

danye il 12/3/2014, 16:35
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 11/03/2014 22:00:02 ) [quote]Puoi postare il tuo sketch modificato così lo posso testare per verificarne il problema?


Questo è quello che ho provato, ma non funziona, in pratica ho sostituito Serial1 con mySerial e aggiunto in testa al codice
[code]
#include
SoftwareSerial mySerial(3, 4); // RX, TX


Inoltre ho modificato questa riga altrimenti non sò perchè l'IDE di arduino da errore

[code]
mySerial.write(0x01); // Lunghezza dei dati sostituito da: mySerial.write(0x01)


[code]
#include
SoftwareSerial mySerial(3, 4); // RX, TX


#define SER_SIZE 256 //dimensione massima del buffer
static uint8_t bufferRegolatore[SER_SIZE + 1] = ""; //buffer che conterrà i byte letti dalla seriale.
int serind; //indice per il buffer.

//variabili d'appoggio per i valori letti dal regolatore.
int tensioneBatteria = 0;
int tensionePannello = 0;
int correnteCarico = 0;
int tensioneBatteriaScarica = 0;
int tensioneBatteriaCarica = 0;
int caricoOnOff = 0;
int sovraccarico = 0;
int cortoCircuitoCarico = 0;
int soc = 0;
int batteriaSovraccarica = 0;
int indicatoreSottoScarica = 0;
int indicatoreBatteriaCarica = 0;
int indicatoreCarica = 0;
int temperaturaBatteria = 0;
int correnteCarica = 0;

int contasecondi = 0;

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
mySerial.begin(9600); //comunica con il regolatore a 9600.
}

void parser() {
//elabora il buffer ed estrae i valori.
tensioneBatteria = (bufferRegolatore[10] << 8)

ElettroshockNow il 12/3/2014, 17:23
Reatalogger Arduino per regolatore EP Solar
Stà venendo su un bel lavoro di collaborazione .
Volevo sottolineare che se postate i codici ,essi non vengono visualizzati correttamente.
In particolare l'include delle librerie e tutti i comandi html
es:

quindi consiglio per ora di allegare anche il codice zippato o in file testo.

Ciao grandi
ElettroshockNow

jackie2_it il 12/3/2014, 19:36
Reatalogger Arduino per regolatore EP Solar
Purtroppo la libreria SoftwareSerial ha dei problemi quando deve attendere dei dati con l'istruzione available. Se hai a disposizione uno ethernet shield posso provare a mettere su uno sketch che utilizzi la seriale di Arduino (non potrai più utilizzarla per vedere i dati sul PC) ma li potrai vedere su un browser web fammi sapere.

@elettro grazie per l'indicazione per il prossimo sketch seguo le indicazioni di allevarlo. Se vedi qualche strafalcione fammi sapere ok?

danye il 12/3/2014, 19:48
Reatalogger Arduino per regolatore EP Solar
Ciao jackie2_it ho risolto nel mio caso con Arduino uno in questo modo:

[code]
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0x16); // versione indico 1
Serial.write(0xA0); // Richiedo al regolatore i dati in tempo reale.
Serial.write(0x00); // Lunghezza dei dati
Serial.write(0xB1); // Check sum
Serial.write(0xA7); // Check sum
Serial.write(0x7F);
delay(500);
if (Serial.available() > 40) {
digitalWrite(5, HIGH);// accende il led se ricevo i dati dal regolatore
data_long = Serial.available();
for (int n=0; n < data_long; n++){
data[n] = Serial.read();
}
}

tensione_pannello = (data[12]<<8)

jackie2_it il 12/3/2014, 19:58
Reatalogger Arduino per regolatore EP Solar
Prova a fare questo test togli quella sequenza aggiuntiva in testa e lascia solo quella che avevo messo io cosi per capire che cosa cambia?

Ma per inviare i dati verso il sito usi un interfaccia di rete su arduino o usi il pc?

danye il 12/3/2014, 20:06
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 19:58:40 ) [quote]Prova a fare questo test togli quella sequenza aggiuntiva in testa e lascia solo quella che avevo messo io cosi per capire che cosa cambia?

Fatto, nel mio caso il regolatore non risponde, me ne accorgo anche dal fatto che il led che ho collegato sul pin 5 non si accende

jackie2_it il 12/3/2014, 20:07
Reatalogger Arduino per regolatore EP Solar
Mi sa che non risponde perché dipende dal fatto che hai quel available a 40?

jackie2_it il 12/3/2014, 20:10
Reatalogger Arduino per regolatore EP Solar
Ma che modello è il tuo epsolar?

danye il 12/3/2014, 20:14
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:10:55 ) [quote]Ma che modello è il tuo epsolar?

Si 3215

jackie2_it il 12/3/2014, 20:21
Reatalogger Arduino per regolatore EP Solar
Uguale al mio. Non capisco come mi fa a funzionare.
In effetti dalla documentazione i byte sono 12 per il syncronous header provo a modificarlo anche io e riprovò.
Il passaggio successivo se hai la ethernet shield potrebbe essere quello di controllare le funzioni del sensore via rete e se non sai come fare posso mostrare come aggiungere la possibilità di misurare la corrente del pannello solare?

danye il 12/3/2014, 20:22
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:14:13 ) [quote]Mi sa che non risponde perché dipende dal fatto che hai quel available a 40?

Mmmmh in realtà mi aspettavo che il regolatore rispondesse con una lunghezza di byte 43, perchè li ho contati dal doc ufficiale, In realtà però mi risponde partendo dalla sequenza EB90EB90EB90 tralasciando AA55AA55AA55, quindi ho sbagliato in teoria il conteggio dei byte di risposta che dovrebbero essere 37... Ora la seriale riceve sicuramente + di 40 byte, mi sfugge qualcosa... ma senza un debug sulla seriale è complicato per me capire.

jackie2_it il 12/3/2014, 20:27
Reatalogger Arduino per regolatore EP Solar
Quel software che avevo messo nel link del cavo non invia i primi 6 byte che hai indicato e funziona lo stesso molto strano. Ma come fai a leggere i valori se la seriale è già occupata a comunicare con il regolatore?

danye il 12/3/2014, 20:29
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:22:19 ) [quote]Uguale al mio. Non capisco come mi fa a funzionare.
In effetti dalla documentazione i byte sono 12 per il syncronous header provo a modificarlo anche io e riprovò.
Il passaggio successivo se hai la ethernet shield potrebbe essere quello di controllare le funzioni del sensore via rete e se non sai come fare posso mostrare come aggiungere la possibilità di misurare la corrente del pannello solare?

Per misurare la corrente del pannello ho a disposizione un asc714 +/- 30A, già ho avuto esperienze con arduino con tale "aggeggio" :rolleyes: .
Mi sarebbe invece utile cominciare a capire come inviare i comandi al regolatore, ho paura che bisogna calcolare il CRCH e CRCL, e sinceramente non ci ho capito molto.. tu?

jackie2_it il 12/3/2014, 20:30
Reatalogger Arduino per regolatore EP Solar
Per inviare comandi intendi accendere e spegnere il carico e impostare i vari parametri disponibili?

jackie2_it il 12/3/2014, 20:35
Reatalogger Arduino per regolatore EP Solar
Visto che hai già visto quel sensore possiamo poi completare il progetto con questo sensore visto che il regolatore ne è sprovvisto.

danye il 12/3/2014, 20:35
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:29:02 ) [quote]Quel software che avevo messo nel link del cavo non invia i primi 6 byte che hai indicato e funziona lo stesso molto strano. Ma come fai a leggere i valori se la seriale è già occupata a comunicare con il regolatore?

Sicuro che non li invia? Io avevo fatto una prova loggando con arduino e lo mandava paro paro come l'esempio del doc.
I valori una volata letti ed assegnati alle variabili vengono spediti dalla ethernet shield direttamente al server remoto, per prova ho fatto spedire dati[0], dati[1], dati[2], dati[3], dati[4], dati[5] al posto dei dati delle tensioni e correnti, e mi sono ritrovato nel database i valori in decimale della sequenza iniziale EB90EB90EB90. Più difficile da spiegare che a farlo...

danye il 12/3/2014, 20:37
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:35:25 ) [quote]Per inviare comandi intendi accendere e spegnere il carico e impostare i vari parametri disponibili?

Esatto!!! Lo vorrei fare dalla sezione "settaggi" della pagina web

jackie2_it il 12/3/2014, 20:38
Reatalogger Arduino per regolatore EP Solar
Rifaccio un test per verificare il tutto. Molto interessante la parte con il shield (proprio dove volevo arrivare io).
Ma volevo realizzare anche un datalogger offline che memorizza i dati sull'sd per il mio impianto di campagna senza connessione di rete.

jackie2_it il 12/3/2014, 20:39
Reatalogger Arduino per regolatore EP Solar
E far fare i settaggi direttamente da una pagina web all'interno di Arduino invece che metterla online visto che possono essere operazioni delicate?

danye il 12/3/2014, 20:45
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 12/03/2014 20:39:21 ) [quote]E far fare i settaggi direttamente da una pagina web all'interno di Arduino invece che metterla online visto che possono essere operazioni delicate?

Possiamo sviluppare in entrambe le direzioni, magari chi non vuole utilizzare un server remoto può connetersi direttemente su una paginetta che può creare arduino, personalmente scelgo di usare un server remoto per la possibilità di avere un interfaccia più accattivante. ;).
Per stasera chiudo. Domani, vedrò la corrente di carica sul mio smartphone!
Ciao

jackie2_it il 12/3/2014, 20:48
Reatalogger Arduino per regolatore EP Solar
Cmq posta poi lo sketch che utilizzi così ci possiamo lavorare su

iz2lwe il 13/3/2014, 12:50
Reatalogger Arduino per regolatore EP Solar
Complimenti per l'ottimo lavoro, mi spiace solo di non avere le Vostre competenze per poter collaborare attivamente.
Cercherò ni prossimi giorni di "programmare" il mio arduino ATmega2650 per vedere se riesco a leggere i dati del mio TRACER RN 4210.
In ogni caso vi seguirò attivamente facendo almeno il tifo per voi

danye il 14/3/2014, 18:17
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 13/03/2014 12:50:58 ) [quote]Cmq posta poi lo sketch che utilizzi così ci possiamo lavorare su


Ecco lo sketch che uso!
[code]
#include
#include

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
byte server[] = {
144,76,107,68};
//char server[] = "solare.altervista.org";

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,1,177);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

// Setta le varibili contenenti le letture dal regolatore di carica
String strURL = "";

int tensione_pannello;
int corrente_pannello;
int tensione_batteria;
int corrente_batteria;
int tensione_carico;
int corrente_carico;
int data_long = 0;
int data[50];


void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
//Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
pinMode(5, OUTPUT);
delay(1000);
}
;

void update(){
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0x16); // versione indico 1
Serial.write(0xA0); // Richiedo al regolatore i dati in tempo reale.
Serial.write(0x00); // Lunghezza dei dati
Serial.write(0xB1); // Check sum
Serial.write(0xA7); // Check sum
Serial.write(0x7F);
delay(500);
if (Serial.available() > 40) {
digitalWrite(5, HIGH);
data_long = Serial.available();
for (int n=0; n < data_long; n++){
data[n] = Serial.read();
}
}

tensione_pannello = (data[12]<<8)

jackie2_it il 18/3/2014, 20:24
Reatalogger Arduino per regolatore EP Solar
Ciao Danye ho testato dinuovo il tutto e funziona anche con quella stringa iniziale.
Ho iniziato a lavorare sulla parte di progetto datalogger in locale su sd.
Mentre il tuo sketch stò guardando come integrarlo con la parte di scrittura diretta su sd in modo che l'utente possa poi collegarsi via rete ad arduino ed indicare se vuole fare il log in locale su sd oppure via rete con il tuo sistema oppure perchè no potrà utilizzare tutti e due i sistemi.
Inoltre potrà modificare attraverso una comodissima interfaccia web l'accensione e spegnimento del carico oppure la modifica dei parametri del regolatore.
Così danye via sito web potrà comandare questi parametri sul regolatore senza modifiche e utilizzando direttamente lo sketch unico.
Inoltre gli utenti attraverso il log remoto di danye potranno mandare i dati del regolatore verso il sito internet e visualizzarli attraverso la bella interfaccia che Danye stà mettendo in piedi.
Inoltre in locale possono vedere i dati istantanei del regolatore accedendo direttamente alla pagina web che viene visualizzata da arduno (per visualizzarli tipo su un display solare di quelli che si vedono in giro).
Allego un esempio di sketch per visualizzare direttamente i dati su un browser web.#####ALLEGATO-" />" />://www.energialternativa.org/Public_mod/NewForum/ForumEA_mod/epSolarDataloggerUno.zip" />

jackie2_it il 25/3/2014, 21:20
Reatalogger Arduino per regolatore EP Solar
Ciao a tutti e bentornati.
Ho terminato lo sviluppo del datalogger per epsolar su scheda sd, come potete vedere dalle foto sotto ho utilizzato uno shield sd ed ho creato uno shield epsolar che mi consente
di collegare arduino insieme al regolatore di carica tramite un semplice cavo di rete.
Ecco la foto dello shield sd che ho acquistato a questo link [URL]http://www.ebay.it/itm/310735773715?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649[/URL]
ho scelto alla fine questo shield perchè oltre ad avere un prezzo non troppo alto consente di essere utilizzata anche da chi non è molto pratico di collegamenti elettronici.


Ed ecco finalmente il primo prototipo di shield epsolar sulla quale oltre aver montato un connettore rj45 ho inserito anche un ds1307 (per l'ora all'interno del file).


Per il collegamento sul connettore ho utilizzato lo schema precedente (chiedo poi assistenza a ElettroShocknow per creare un pcb di questo shield).
Prima foto del datalogger completo pre-test.


Ecco una piccola carrelata di foto ed in allegato il codice sorgente dello sketch speriamo che ci sia qualcuno che abbia voglia di testarlo.




Arrivederci al prossimo sketch per epsolar.#####ALLEGATO-" />" />://www.energialternativa.org/Public_mod/NewForum/ForumEA_mod/A/epSolarDataloggerUno.zip" />

danye il 26/3/2014, 20:35
Reatalogger Arduino per regolatore EP Solar
Grande jackie2_it!!!
Io intanto sto procedendo con il sito web rinnovato!


jackie2_it il 26/3/2014, 22:20
Reatalogger Arduino per regolatore EP SolarComplimenti Dante per il sito, ora sto evolvendo il tuo sketch per gestire sia il logging remoto che su SD.

jackie2_it il 8/4/2014, 21:56
Reatalogger Arduino per regolatore EP Solar
Ciao a tutti la costruzione del datalogger versione gestibile via web prosegue ecco alcune foto che anticipano l'interfaccia web (totalmente su Arduino)
Ecco la prima schermata che mostra i valori istantanei

Subito sotto un grafico che viene generato direttamente sul vostro browser web

Questa invece è la videata di configurazione dove si può decidere il tempo di aggiornamento del grafico e la modalità di gestione del log (su scheda SD o sul web con la modalità di Danye)

Appena terminati i test posto lo sketch per i test

danye il 10/4/2014, 8:33
Reatalogger Arduino per regolatore EP Solar
Bello! Sono curioso di vedere lo sketch che costruisce la pagina web.
Vai alla grande!

ElettroshockNow il 10/4/2014, 9:09
Reatalogger Arduino per regolatore EP Solar
:clap.gif: .....
Un lavoro veramente eccezionale ...complimenti

jackie2_it il 11/4/2014, 19:22
Reatalogger Arduino per regolatore EP Solar
Grazie per i complimenti ma non sto facendo nulla di chè .
Cmq presto posto il codice della prima versione

jumpjack il 3/5/2014, 11:49
Reatalogger Arduino per regolatore EP Solar
Complimenti a tutti per l'ottimo lavoro.
Adesso che la prototipazione è terminata... che ne dite di passare il tutto su un bell'Ardulog? :-)


Qui c'è lo sketh che logga il pin A1:


Nota (mia):
Per caricare uno “sketch” su Ardulog V2, bisogna collegarlo al PC tramite circuito adattatore FTDI (RS232/TTL), oppure tramite una Arduino Uno priva del microchip, collegando i pin RX-RX, TX-TX, Vcc-3.3V, GND-GND, RST-RESET, e impostando Arduino Uno sull’IDE.

jumpjack il 4/5/2014, 14:24
Reatalogger Arduino per regolatore EP Solar
Scusate, ma quest'altro thread parla della stessa cosa o sbaglio?

jackie2_it il 4/5/2014, 21:13
Reatalogger Arduino per regolatore EP SolarQui stiamo facendo l'interfacciamento dell'epsolar con Arduino, in quel post si parlava di come collegarlo con il pc

Il dispositivo da te indicato è troppo limitato per quello che sto facendo fare adesso al Arduino uno visto che ho bisogno della scheda di rete.

P.s. se parli di questo progetto sul tuo sito visto che è frutto del lavoro di altre persone citarne almeno la fonte grazie.

jumpjack il 19/5/2014, 19:48
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (jackie2_it, 04/05/2014 21:13:04 ) [quote]

Il dispositivo da te indicato è troppo limitato per quello che sto facendo fare adesso al Arduino

Io mi accontenterei di riuscire a collegarlo a un Ardulog:

danye il 26/10/2014, 12:57
Reatalogger Arduino per regolatore EP SolarSalve gente, dopo un periodo di assenza rieccomi quì...
Vorrei completare il progetto che per motivi di tempo è rimasto fermo, ma per quanto mi riguarda il mio arduino è collegato in rete ormai da diversi mesi popolando un database mysql di molti dati su server altervista remoto. Riassumendo, ho fatto in modo che vengano registrarti sul DB, ogni 5 secondi, i valori di tensione e corrente del mio impiantino, composto da un regolatore EPsolar tracer3015, 7 batterie di recupero, ed un pannello da 180wp.
Tutto funziona bene se non fosse che l’ethernet ethernet shield w5100 ogni tanto si blocca. Il problema sembrerebbe noto, e pare sia un bug non risolvibile causato dal chip di comunicazione dello shield.
Per risolvere il problema pensavo di fare un controllo software all’interno dello shetch tipo:
[code]
if (client.connect(server, 80)) {
String strURL = "GET /arduino/arduino.php?psw=abcd&tensione_pannello=";
strURL += (int)tensione_pannello;
strURL += "&corrente_pannello=";
strURL += (int)corrente_pannello;
strURL += "&tensione_batteria=";
strURL += (int)tensione_batteria;
strURL += "&corrente_batteria=";
strURL += (int)corrente_batteria;
strURL += "&tensione_carico=";
strURL += (int)tensione_carico;
strURL += "&corrente_carico=";
strURL += (int)corrente_carico;
strURL += " HTTP/1.0";

client.println(strURL);
client.println("Host: solare.altervista.org");
client.println();

}
else {
reset della ethernet shield se il client non è connesso
}


e una mod hardware collegando il pin di reset della ethernet shield ad un pin di output di arduino, in modo da ricevere l’impulso di reset al verificarsi del blocco.
Appena ho tempo da dedicare inizio i test, nel frattempo se qualcuno ha una soluzione migliore può dirla.
Un saluto particolare a jackie2_it, che forse per problemi di tempo, come me, ad oggi non ha potuto portare avanti il progetto.

danye il 19/11/2014, 20:43
Reatalogger Arduino per regolatore EP Solar
Ho modificato lo sketch per il reset della ethernet shield in caso di blocco, magari a qualcuno serve la parte che gestisce il reset;)

[code]
#include
#include

//------------------------- Parametri Ethernet shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte server[] = {144,76,107,68};
IPAddress ip(192,168,1,7);
byte subnet[] = { 255, 255, 255, 0 };
byte gateway[] = { 192, 168, 1, 1 };
EthernetClient client;
//--------------------------

//-------------------------- Setta le varibili contenenti le letture dal regolatore di carica
String strURL = "";
int tensione_pannello;
int corrente_pannello;
int tensione_batteria;
int corrente_batteria;
int tensione_carico;
int corrente_carico;
int data_long = 0;
int data[50];

//--------------------------- Pin di uscita digitali
int led = 5; // pin di uscita dedicato al led di segnalazione di corretto funzionamento
int rst_ethernet = 2; // pin di uscita dedicato al reset della ethernet shield

//--------------------------- Variabili di temporizzazione reset ethernet shield
boolean reset = 1; // Contatore dei reset della ethernet shield
int ciclo_reset = 5;// Numero di tentativi di connessione al server remoto prima di resettare l'ethernet shield
int cont_reset = 3; // Numero massimo di reset della ethernet shield
unsigned long time_reset; //variabile di temporizzazione
unsigned long attesa_reset = 600000; //intervallo dal prossimo tentativo di reset della shield (milliseconds) 600000 = 10 minuti
//---------------------------

void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(rst_ethernet, OUTPUT);
reset_ethernet();
}

void reset_ethernet(void)
{
reset = 1;
digitalWrite(rst_ethernet, LOW);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(rst_ethernet, HIGH);
digitalWrite(led, LOW);
Ethernet.begin(mac, ip);
delay(1000);
for (int i=0; i <= 10; i++)
{
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
}
}

void update(void)
{
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xAA);
Serial.write(0x55);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0xEB);
Serial.write(0x90);
Serial.write(0x16); // versione indico 1
Serial.write(0xA0); // Richiedo al regolatore i dati in tempo reale.
Serial.write(0x00); // Lunghezza dei dati
Serial.write(0xB1); // Check sum
Serial.write(0xA7); // Check sum
Serial.write(0x7F);
delay(500);
if (Serial.available() > 40)
{
digitalWrite(5, HIGH);
data_long = Serial.available();
for (int n=0; n < data_long; n++)
{
data[n] = Serial.read();
}
tensione_pannello = (data[12]<<8)

Luca450Mhz il 19/11/2014, 22:26
Reatalogger Arduino per regolatore EP Solar
Scusa una informazione vedo che tu passi i valori di tensione e corrente come interi, però nella pagina web si vedono i valori reali, con 2 cifre decimali. Come fai?
Io sto diventando matto per capire come passare tramite URL i valori double..

danye il 20/11/2014, 7:58
Reatalogger Arduino per regolatore EP Solar
Meglio evitare i decimali con arduino, semplicemente lo sketc invia ad esempio vbat=1250 alla pagina php sul server, che poi con una semplice divisione per 100 diventa 12.50 ;)

Vale63 il 6/6/2015, 16:46
Reatalogger Arduino per regolatore EP Solar
Ciao a tutti,
ho un regolatore EpSolar Tracer 1210RN e volevo provare i vostri sketch con Arduino.
avete proseguito le prove o il discorso è finito così ?
Innanzitutto devo acquistare Arduino, meglio UNO+Ethernet Shield o Arduino Ethernet ?
Info per la shield Sc Card e RTC ?
Grazie, ciao Valentino

calcola il 9/6/2015, 7:54
Reatalogger Arduino per regolatore EP Solar
Per il reset senza sprecare una uscita digitale si può fare anche così:

#include avr/io.h>
#include avr/wdt.h>

void setup(){

wdt_enable(WDTO_8S); //abilito il watchdog e imposto come tempo di reset 8 secondi ma anche 2,4,6
}

void loop(){

riavvio()

}

void riavvio(){
wdt_reset();//resetto il watchdog
//Serial.println("azzerato");
}

Posizionare la chiamata al sottoprogramma riavvio() alla fine del ciclo logico di loop. Funziona con il bootloader dell'arduino uno, nel 2009 occorre sostituire il bootloader.

PS: per problemi nella visualizzazione del listato ho dovuto eliminare il segno "minore" degli include, se interessa la funzione occorre rimetterlo.

ElettroshockNow il 9/6/2015, 9:57
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (calcola, 09/06/2015 07:54:00 ) [quote]Per il reset senza sprecare una uscita digitale si può fare anche così ......

Ma lo scopo è il reset del micro con la routine riavvio ?

Normalmente il watchdog deve essere resettato costantemente nel programma nel tempo impostato del settaggio .
Se il reset del watchdog non avviene interviene l'interrupt e resetta il micro.
Nell'esempio fà quello ,quindi monitorizza se almeno una volta ogni 8 secondi viene eseguita la routine loop.

Se invece lo scopo era il reset (come ho capito che sia) bisognerebbe creare subroutine con un ciclo While(1) che mette in loop infinito il micro.
Trascorso il tempo impostato il micro và in reset.

Ciao
ElettroshockNow

calcola il 10/6/2015, 21:09
Reatalogger Arduino per regolatore EP Solar
L'esempio ha lo scopo di riavviare il micro in caso di rallentamento o blocco nell'esecuzione del loop. In effetti non ho letto bene e non mi sono reso conto che le finalità di danye erano diverse.

Comunque quello che suggerisci è corretto, se si vuole riavviare il micro al verificarsi di un evento si può inserire anche un ciclo While(1) (o un semplice delay(n) con n pari ad un numero di millis sufficiente a far agire il watchdog) ed il micro si riavvia. Ed è una cosa che ho inserito nel mio listato per riavviare il raspberry (tramite relè dedicato) se un ping al server vpn non ha risposta entro un tempo prefissato.

semar il 15/6/2015, 17:22
Reatalogger Arduino per regolatore EP Solar
Salve, volevo chiedere a danye in che linguaggio ha scritto il sito ( http://solare.altervista.org/ ) e come vengono aggiornati i dati ?

Ottimo lavoro, complimenti !

Sergio.

danye il 20/6/2015, 1:04
Reatalogger Arduino per regolatore EP Solar
CITAZIONE (semar, 15/06/2015 17:22:37 ) [quote]Salve, volevo chiedere a danye in che linguaggio ha scritto il sito ( http://solare.altervista.org/ ) e come vengono aggiornati i dati ?

Ottimo lavoro, complimenti !

Sergio.

Le pagine sono in php e javascript. I dati sono aggiornati da arduino che invia una GET ad una pagina php predisposta a ricevere i dati.

jackie2_it il 28/8/2015, 20:20
Re: Datalogger Arduino per regolatore EP Solar
Dopo aver rimontato l'impianto con l'EP Solar e ricollocato in modo da avere la connessione ad internet,  mi sono detto perchè non proseguire questo progetto, ultimandolo, creando gli schemi per i circuiti e i file per poterli sviluppare.
Attendo l'amico danye per ricominciare dalla sua interfaccia web.

danye il 28/8/2015, 20:54
Re: Datalogger Arduino per regolatore EP Solar
A disposizione, appena ho un po di tempo metto i file sorgente del sito, mi piacerebbe vederlo replicato

jackie2_it il 28/8/2015, 22:32
Re: Datalogger Arduino per regolatore EP Solar
Ottima cosa, con il tuo aiuto aggiungiamo un pò di cose nuove al progetto.
Io riprendo quello dell'arduino mega così vedi come ho gestito la parte web locale

danye il 1/9/2015, 18:24
Re: Datalogger Arduino per regolatore EP Solar
Ho provveduto ad aprire una nuova discussione per postare il mio lavoro di monitoraggio remoto
LINK

electronic il 10/11/2015, 14:57
Re: Datalogger Arduino per regolatore EP Solar
Salve gente,
Ho un regolatore epsolar VS4024N e vorrei realizzare un datalogger con arduino uno, sd e rtc. Ho provato a collegare il tutto ed a caricare lo sketch di Jackie2 (epSolarDataloggerUno) ma non funziona. Sulla seriale ci sono scritte incomprensibili.
Mentre con lo sketch "base" senza sd e rtc vedo i valori sulla seriale. Cosa sbaglio?

electronic il 3/2/2016, 14:42
Re: Datalogger Arduino per regolatore EP Solar
Ciao Danye
Nel post precedente ho accennato il problema. Secondo me lo sketch di Jackie2 dovrebbe essere compatibile con il VS4024N, penso che ci sia qualche problema nel lettore SD e/o nell'rtc visto che non riesco ad acquisire neanche i dati dei pin analog di arduino (altro sketch senza regolatore EP)
PS: non ho sotto mano il regolatore quindi adesso posso solo provare SD e RTC

In alternativa ad SD e RTC potrei comprare il modulo wifi, mettere tutto su un sito internet e poi fare un backup copiando i dati da internet (cosa più complicata per me, ma che tu hai già fatto a parte il wifi)

danye il 3/2/2016, 19:04
Re: Datalogger Arduino per regolatore EP Solar
Se il tuo regolatore è compatibile con il protocollo del mio regolatore (cosa da verificare), potresti mettere in piedi il sistema di monitoraggio che uso io. Se per la connessione ad internet hai a disposizione una ethernet shield è meglio, altrimenti credo si possa fare anche con il modulino wi-fi ma occorrerebbe riscrivere il codice di arduino che trasmette i dati al server web, per adattarlo al modulo wi-fi.

electronic il 3/2/2016, 19:45
Re: Datalogger Arduino per regolatore EP Solar
Purtroppo non ho una ethernet shield.
Il sistema che usi tu che carica i dati su una pagina web è fantastico e colgo l'occasione per farti i complimenti.
Ma i dati vengono salvati anche su SD?

Ti allego lo sketch che visualizza i dati del regolatore sulla seriale, cosi magari puoi capire se il tipo di comunicazione è compatibile

Allegati:
sketch_reg_epsolar_monitor_seriale.rar

danye il 6/2/2016, 9:11
Re: Datalogger Arduino per regolatore EP Solar
No nel mio caso i dati vengono salvati sul database remoto ospitato dal server web, in locale non uso nessuna SD card.
Se il tuo regolatore fornisce i dati corretti col lo sketch che hai allegato allora è compatibile al mio, quindi potresti mettere in piedi lo stesso datalogger che uso io, oppure aggiungere allo sketch base la parte che salva i dati su SD.


electronic il 6/2/2016, 13:23
Re: Datalogger Arduino per regolatore EP Solar
Mi piacerebbe realizzare il tuo datalogger, però con il wifi sarebbe meglio per me. In ogni caso avrei bisogno di aiuto per modificare lo sketch, ma soprattutto per la pagina web.
A breve acquisterò l'esp8266 (così provo anche il tuo termostato) e poi ne riparliamo.
Grazie per la disponibilità 

Dimenticavo un cosa importante: potrei avere problemi in caso di connessione con chiavetta e router 3g?


danye il 6/2/2016, 15:15
Re: Datalogger Arduino per regolatore EP Solar
Non credo avrai problemi con la chiavetta 3g, i problemi saranno quelli di adattare il modulo wi-fi al posto dell'ethernet shield..  ;)



TOP100-SOLAR Galleria Immagini EnergiAlternativa