EnergiAlternativa

Page Index Toggle Pages: 1 ... 12 13 [14] 15 16 ... 42 Send TopicPrint
Very Hot Topic (More than 500 Replies) Monitoraggio regolatori Ep Solar tracer dal web (Read 301772 times)
David
New Member
*
Offline


New EALab Member

Posts: 22
Location: rome
Gender: Male
Zodiac sign: Virgo
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #195 - 29.06.16 at 10:34:46
Print Post  
Grazie Gigi per gli schemi.
ma il codice da caricare su Arduino  ??  Cry Cry
  
Back to top
WWW  
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #196 - 29.06.16 at 19:37:45
Print Post  
Presto arriveranno sia per arduino e l'ESP 8266 un po di pazienza  Wink
Direi che per comodità e costo esp8266 ( senza cavi via wifi ) secondo Me è la soluzione migliore.
Per la programmazione del esp 8266 se può essere utile seguite questa guida https://www.reboot.ms/forum/threads/programmare-esp8266-usando-arduino-ide.385/ Per esperienza e non so perchè, su XP non si riesce a programmare  Angry  quindi da win 7 in su  Wink

Devo dire che è TUTTO MERITO di Daniele Io ho solo testato  Cheesy

La mia scatola magica che Mi ha accompagnato in questi giorni.
  

IMG-20160629-WA0008_jpg.jpeg ( 162 KB | Downloads )
IMG-20160629-WA0008_jpg.jpeg

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
David
New Member
*
Offline


New EALab Member

Posts: 22
Location: rome
Gender: Male
Zodiac sign: Virgo
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #197 - 29.06.16 at 19:40:06
Print Post  
Un grandissimo grazie a Daniele allora !!!! Smiley Smiley ma anche a te per aver testato il tutto  Smiley
  
Back to top
WWW  
IP Logged
 
danye
Global Moderator
*****
Offline


--------

Posts: 360
Location: Roma
Gender: Male
Zodiac sign: Moonchild
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #198 - 29.06.16 at 20:44:51
Print Post  
David wrote on 29.06.16 at 10:34:46:
Grazie Gigi per gli schemi.
ma il codice da caricare su Arduino  ??  Cry Cry

Appena possibile aggiornerò il primo post con il nuovo codice arduino, esp8266, e server web Wink
  

1x185Wp  + 1x225Wp in serie poli direzione sud
1xRegolatore MPPT EpSolar Tracer 3015RN
7x batterie auto da recupero in parallelo 12volt 400 Ah molto teorici
Sistema 12 volt che alimenta le luci a led di tutto l'appartamento
monitoraggio impianto www.solare.altervista.org
Back to top
 
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #199 - 01.07.16 at 11:44:27
Print Post  
Ecco la scatola il pcb è molto artigianale ma funziona  Grin
Ho fatto in modo che possa ospitare sia il esp8266-01 che il 02
Ho messo i pin per  la possibilità di programmare .
La versione 02 "dovrebbe essere " avvantaggiata dalla antenna esterna quindi collocandolo più distante , anche se ho constatato che il 01 copre una buona distanza .
Che dire ora attendiamo Daniele con piccole finiture dal lato firmware  Cheesy
  

esp1.jpg ( 36 KB | Downloads )
esp1.jpg
esp2.jpg ( 84 KB | Downloads )
esp2.jpg
esp3.jpg ( 92 KB | Downloads )
esp3.jpg
esp5.jpg ( 78 KB | Downloads )
esp5.jpg

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
jackie2_it
Junior Member
**
Offline


--------

Posts: 96
Gender: Male
Zodiac sign: Libra
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #200 - 01.07.16 at 15:53:30
Print Post  
Ciao Danye, ma questo oggetto lo possiamo usare anche con i nostri regolatori EP Solar?
  

2 pannelli solari da 50 watt con regolatore steca p1010

Ecco i miei pannelli solari qui
Back to top
 
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #201 - 01.07.16 at 16:37:58
Print Post  
Certamente. Quello sopra è l'hardware per la serie BN .
Attualmente serie RN poi BN e LS ma penso tutti quelli di ultima generazione che hanno la porta rs485 ovviamente da testare , Daniele sta mettendo a punto un firmware per esp8266 universale siamo in fase di test  Grin... ancora un po di pazienza  Wink
  

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
danye
Global Moderator
*****
Offline


--------

Posts: 360
Location: Roma
Gender: Male
Zodiac sign: Moonchild
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #202 - 02.07.16 at 12:12:25
Print Post  
Aggiornato il primo post con codici arduino, esp8266-01 e web server ultima versione, che gestiscono entrambi i tipi di regolatore BN ed RN
Un saluto! Wink
  

1x185Wp  + 1x225Wp in serie poli direzione sud
1xRegolatore MPPT EpSolar Tracer 3015RN
7x batterie auto da recupero in parallelo 12volt 400 Ah molto teorici
Sistema 12 volt che alimenta le luci a led di tutto l'appartamento
monitoraggio impianto www.solare.altervista.org
Back to top
 
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #203 - 02.07.16 at 16:07:21
Print Post  
Un grazie a Daniele per la pazienza e tenacia  Cheesy
  

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
David
New Member
*
Offline


New EALab Member

Posts: 22
Location: rome
Gender: Male
Zodiac sign: Virgo
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #204 - 04.07.16 at 18:00:21
Print Post  
Grazie Daniele per il codice sei un grande !!

Una piccola curiosità ma per il codice da caricare su Arduino con scheda ethernet e' corretta la riga di codice :

client.println("User-Agent: esp8266 wi-fi"); ?

mentre per la versione con la scheda wifi esp :

client.println("User-Agent: arduino-ethernet"

  
Back to top
WWW  
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #205 - 04.07.16 at 18:50:54
Print Post  
David ... quella è per esp8266 il codice per arduino è il primo  Wink
  

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
David
New Member
*
Offline


New EALab Member

Posts: 22
Location: rome
Gender: Male
Zodiac sign: Virgo
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #206 - 04.07.16 at 23:13:37
Print Post  
forse ho interpretato male io l' ordine degli sketch ....o il caldo mi sta giocando qualche scherzo :
  

errore.jpg ( 166 KB | Downloads )
errore.jpg
Back to top
WWW  
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #207 - 04.07.16 at 23:51:57
Print Post  
" Una piccola curiosità ma per il codice da caricare su Arduino con scheda ethernet e' corretta la riga di codice "

L'immagine che hai postato è per esp8266  Cool
quello per arduino è questo  Wink
nel post iniziale c'è scritto  Roll Eyes


Code (C++)
Select All
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

//------------------------- Settaggi
IPAddress ip(192, 168, 178, 40);//indirizzo ip da assegnare ad arduino
char server[] = "tuosito.altervista.org";//indirizzo del server web
int unsigned long  capacita_batteria = 300; //indica la capacità della batteria in carica in Ah
const int psw = 1234; //password per l'aggiornamento dati server web
const int psw2 = 5678; //password per sincronizzazione ah server web
const char* regolatore = "bn"; //bn=regolatori serie BN ---- br=regolatori serie RN
//-------------------------- Fine settaggi

EthernetClient client;
String strURL = "";
String strEsito = "";
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];
int temperatura;
int soc = 100;
unsigned long ah_prodotti;
unsigned long ah_consumati;
unsigned long lettura_ah_prodotti;
unsigned long lettura_ah_consumati;
unsigned long ah_batteria;

//--------------------------- Pin di uscita digitali
const int led_pin = 5; // pin di uscita dedicato al stato di segnalazione di funzionamento

//--------------------------- Variabili di temporizzazione
unsigned long time_Ah_old = 0;
unsigned long lastTime = 0; //variabile di temporizzazione
const int postingInterval = 3500;

//---------------------------
int stato = 1;

void setup()
{
  if (regolatore == "bn")
  {
    Serial.begin(115200);
  }
  else
  {
    Serial.begin(9600);
  }
  pinMode(4, OUTPUT); // disattiva il pin della SD card
  digitalWrite(4, HIGH);
  pinMode(led_pin, OUTPUT);
  Ethernet.begin(mac, ip);
  delay(5000);

  capacita_batteria = capacita_batteria * 1000000;
  ah_batteria = capacita_batteria; // fa partire il soc dal 100%


  if (client.connect(server, 80)) { // Interroga il server per avere gli ultimi Ah salvati
    String strURL = "GET /arduino/arduino.php?psw=";
    strURL += psw2;
    strURL += " HTTP/1.1";
    client.println(strURL);
    client.print("Host: ");
    client.println(server);
    client.println("User-Agent: esp8266 wi-fi");
    client.println("Connection: close");
    client.println();
    delay(1000);
    rispostaServer();
  }
  else
  {
    while (true);
  }
}

bool update()
{
  bool updok = false;
  if (regolatore == "bn")
  {
    //tensione batteria
    Serial.write(0x01);
    Serial.write(0x04);
    Serial.write(0x31);
    Serial.write(0x04);
    Serial.write(0x00);
    Serial.write(0x01);
    Serial.write(0x7E);
    Serial.write(0xF7);
    delay(500);
    if (Serial.available())
    {
      data_long = Serial.available();
      for (int n = 0; n < data_long; n++)
      {
        data[n] = Serial.read();
      }
      tensione_batteria = (data[3] << 8) | data[4];

      //tensione pannello
      Serial.write(0x01);
      Serial.write(0x04);
      Serial.write(0x31);
      Serial.write(0x00);
      Serial.write(0x00);
      Serial.write(0x01);
      Serial.write(0x3F);
      Serial.write(0x36);
      delay(500);
      if (Serial.available())
      {
        data_long = Serial.available();
        for (int n = 0; n < data_long; n++)
        {
          data[n] = Serial.read();
        }
        tensione_pannello = (data[3] << 8) | data[4];
      }

      //corrente batteria
      Serial.write(0x01);
      Serial.write(0x04);
      Serial.write(0x33);
      Serial.write(0x1B);
      Serial.write(0x00);
      Serial.write(0x01);
      Serial.write(0x4E);
      Serial.write(0x89);
      delay(500);
      if (Serial.available())
      {
        data_long = Serial.available();
        for (int n = 0; n < data_long; n++)
        {
          data[n] = Serial.read();
        }
        corrente_batteria = (data[3] << 8) | data[4];
      }

      //corrente pannello
      Serial.write(0x01);
      Serial.write(0x04);
      Serial.write(0x31);
      Serial.write(0x01);
      Serial.write(0x00);
      Serial.write(0x01);
      Serial.write(0x6E);
      Serial.write(0xF6);
      delay(500);
      if (Serial.available())
      {
        data_long = Serial.available();
        for (int n = 0; n < data_long; n++)
        {
          data[n] = Serial.read();
        }
        corrente_pannello = (data[3] << 8) | data[4];
      }

      //corrente carico
      Serial.write(0x01);
      Serial.write(0x04);
      Serial.write(0x31);
      Serial.write(0x0D);
      Serial.write(0x00);
      Serial.write(0x01);
      Serial.write(0xAE);
      Serial.write(0xF5);
      delay(500);
      if (Serial.available())
      {
        data_long = Serial.available();
        for (int n = 0; n < data_long; n++)
        {
          data[n] = Serial.read();
        }
        corrente_carico = (data[3] << 8) | data[4];
      }

      //temperatura
      Serial.write(0x01);
      Serial.write(0x04);
      Serial.write(0x31);
      Serial.write(0x10);
      Serial.write(0x00);
      Serial.write(0x01);
      Serial.write(0x3E);
      Serial.write(0xF3);
      delay(500);
      if (Serial.available())
      {
        data_long = Serial.available();
        for (int n = 0; n < data_long; n++)
        {
          data[n] = Serial.read();
        }
        temperatura = (data[3] << 8) | data[4];
        temperatura = temperatura / 100;
      }
      updok = true;
    }
  }
  else if (regolatore = "rn")
  {
    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);
    Serial.write(0xA0);
    Serial.write(0x00);
    Serial.write(0xB1);
    Serial.write(0xA7);
    Serial.write(0x7F);
    delay(500);
    if (Serial.available())
    {
      data_long = Serial.available();
      for (int n = 0; n < data_long; n++)
      {
        data[n] = Serial.read();
      }
      tensione_pannello = (data[12] << 8) | data[11];
      corrente_pannello = 0;
      tensione_batteria = (data[10] << 8) | data[9];
      corrente_batteria = (data[31] << 8) | data[30];
      tensione_carico = tensione_batteria;
      corrente_carico = (data[16] << 8) | data[15];
      temperatura = data[29] - 30;
      updok = true;
    }
  }
  tensione_carico = tensione_batteria;
  if (updok)
  {
    lettura_ah_consumati = ((float)corrente_carico / 3600) * (millis() - time_Ah_old) * 10; //restituisce la lettura in micro Ah
    lettura_ah_prodotti = ((float)corrente_batteria / 3600) * (millis() - time_Ah_old) * 10; //restituisce la lettura in micro Ah
    ah_consumati += lettura_ah_consumati;
    ah_prodotti += lettura_ah_prodotti;
    calcolo_soc();
  }
  time_Ah_old = millis();
  return updok;
}

void calcolo_soc() {
  ah_batteria += (lettura_ah_prodotti - lettura_ah_consumati);
  if (ah_batteria > capacita_batteria) {
    ah_batteria = capacita_batteria;
    soc = 100;
  } else {
    soc = map((float)ah_batteria / 1000000, 0, (float)capacita_batteria / 1000000, 0, 100);
  }
}

void httpRequest() {
  client.stop();
  if (client.connect(server, 80)) {
    String strURL = "GET /arduino/arduino.php?psw=";
    strURL += (int)psw;
    strURL += "&tensione_pannello=";
    strURL += (int)tensione_pannello;
    strURL += "&corrente_pannello=";
    strURL += (int)corrente_pannello;
    strURL += "&tensione_batteria=";
    strURL += (int)tensione_batteria;
    strURL += "&corrente_batteria=";
    strURL += (short)corrente_batteria;
    strURL += "&tensione_carico=";
    strURL += (int)tensione_carico;
    strURL += "&corrente_carico=";
    strURL += (int)corrente_carico;
    strURL += "&soc=";
    strURL += (int)soc;
    strURL += "&temperatura=";
    strURL += (short)temperatura;
    strURL += "&ah_consumati=";
    strURL += (unsigned long)ah_consumati;
    strURL += "&ah_prodotti=";
    strURL += (unsigned long)ah_prodotti;
    strURL += " HTTP/1.1";
    client.println(strURL);
    client.print("Host: ");
    client.println(server);
    client.println("User-Agent: arduino-ethernet");
    client.println("Connection: close");
    client.println();
  }
}

void rispostaServer()
{
  int risp_server = client.available();
  if (risp_server < 300 && risp_server > 10) {
    while (client.available())
    {
      char c = client.read();
      strEsito += (char) c;
    }
    if (strEsito.indexOf("update_ok") > 0)
    {
      stato = 1;
    }
    else
    {
      stato = 3;
    }
    if (strEsito.indexOf("reset_ah") > 0)
    {
      ah_consumati = 0;
      ah_prodotti = 0;
    }
    if (strEsito.indexOf("Ah_prodotti=") > 0) // Recupera dal server gli ultimi valori del giorno salvati prima del reset di arduino.
    {
      ah_prodotti = atol(strEsito.substring(strEsito.indexOf("Ah_prodotti=") + 12, strEsito.indexOf(" Ah_consumati=")).c_str());
      ah_consumati = atol(strEsito.substring(strEsito.indexOf("Ah_consumati=") + 13, strEsito.indexOf(" endAh")).c_str());
    }
  }
  strEsito = "";
}

void ledStato(int st)
{

  switch (st)
  {
    case 1: // Nessun errore di funzionamento
      for (int i = 1; i <= 1; i++)
      {
        digitalWrite(led_pin, HIGH);
        delay(50);
        digitalWrite(led_pin, LOW);
        delay(500);
      }
      break;

    case 2: // Impossibile leggere i dati dal regolatore
      for (int i = 1; i <= 2; i++)
      {
        digitalWrite(led_pin, HIGH);
        delay(50);
        digitalWrite(led_pin, LOW);
        delay(500);
      }
      break;

    case 3: // Errore di comunicazone con il server remoto
      for (int i = 1; i <= 3; i++)
      {
        digitalWrite(led_pin, HIGH);
        delay(50);
        digitalWrite(led_pin, LOW);
        delay(500);
      }
      break;

    case 4: // Attesa reset ethernet shield
      for (int i = 1; i <= 4; i++)
      {
        digitalWrite(led_pin, HIGH);
        delay(50);
        digitalWrite(led_pin, LOW);
        delay(500);
      }
      break;
  }
  delay(1000);
}

void loop() {

  rispostaServer();

  if (millis() - lastTime >= postingInterval)
  {
    if (update() == false)
    {
      stato = 2;
      lastTime = millis();
    }
    else {
      httpRequest();
      lastTime = millis();
    }
  }
  else
  {
    ledStato(stato);
  }
}
 

  

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
danye
Global Moderator
*****
Offline


--------

Posts: 360
Location: Roma
Gender: Male
Zodiac sign: Moonchild
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #208 - 05.07.16 at 17:53:58
Print Post  
David wrote on 04.07.16 at 23:13:37:
forse ho interpretato male io l' ordine degli sketch ....o il caldo mi sta giocando qualche scherzo :

Ciao David si avevi ragione non erano corretti, tuttavia non compromettevano il corretto funzionamento degli scketch. Li ho sistemati.
Grazie.  Wink
  

1x185Wp  + 1x225Wp in serie poli direzione sud
1xRegolatore MPPT EpSolar Tracer 3015RN
7x batterie auto da recupero in parallelo 12volt 400 Ah molto teorici
Sistema 12 volt che alimenta le luci a led di tutto l'appartamento
monitoraggio impianto www.solare.altervista.org
Back to top
 
IP Logged
 
Gigi600
Full Member
***
Offline


New EALab Member

Posts: 187
Location: Pordenone
Gender: Male
Zodiac sign: Scorpio
Re: Monitoraggio regolatori Ep Solar tracer dal web
Reply #209 - 05.07.16 at 19:29:58
Print Post  
Oggi ho sostituito in malga arduino con esp8266
Funziona  Cheesy
  

IMG-20160705-WA0000_jpg.jpeg ( 147 KB | Downloads )
IMG-20160705-WA0000_jpg.jpeg
IMG-20160705-WA0001_jpg.jpeg ( 116 KB | Downloads )
IMG-20160705-WA0001_jpg.jpeg

Impianto installato a 1460 Mt alimenta una stazione meteo +  2 webcam+ accessori vari.
un panello 230 Watt ,regolatore Tracer 2210RN ,3 Batterie per totale di 215 Ah
http://solaresacile.altervista.org/
Tracer Ep Solar 2215 BN
http://gigi600.altervista.org/index.php
http://sacilemeteo.altervista.org/fv/
Back to top
IP Logged
 
Page Index Toggle Pages: 1 ... 12 13 [14] 15 16 ... 42
Send TopicPrint
 

TOP100-SOLAR Galleria Immagini EnergiAlternativa