Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je čtv zář 20, 2018 9:37 pm


Arduino + SD logger + web browser

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Předchozí

Re: Arduino + SD logger + web browser

Příspěvekod kodl69 » sob kvě 09, 2015 9:11 am

nejlepší je měřit přímo proud do baterie + je +soc a - je -soc. Problém je měření malých proudů po velkou dobu, takže 120mA co mi udává ACS758 někdy + a někdy - podle počasí, to zcela zlikviduje vypočtenou kapacitu za pár dní. Další problém je nastavení kapacity aku a reset pro 0 a 100procent. Podle čeho to určit? Midnite to má při přechodu z bulk do float - ale když napětí zvýším o pár desetin voltu, nacpu do baterek dalších x ah... Naopak při vybíjení už několikrát ukazoval 0 Ah , baterky držely napětí a měřák šel 15Ah do mínusu, než došla šťáva.. (potom trvalo, než se dostal zpátky na 0). Tohle řešila VATA, zkus jí napsat sz, třeba to pustí, a nebude to tutlat jako knowhow....
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2650
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 180

Re: Arduino + SD logger + web browser

Příspěvekod vata » ned kvě 10, 2015 7:58 pm

Já nic netutlám :) Ten princip výpočtu SOC je úplně jednoduchý, mám jej i v dokumentaci k VALCu. Základ je měřit veškerý provoz baterie a napsat si prom. akumulátoru ah. A pak je nutné implementovat detekci plného nabití, což já osobně přenechala regulátoru, resp. osbluze - můj program jednoduše číhá na pokles na float po absorpci, komplikované je to o absorpční čas. A dole se čeká na podkročení nějakého kritického napětí, a pak se vyhlásí 0 SOC. U lithia to funguje uspokojivě.
Problém kumulace nepřesností při měření malých proudů v delším časovém úseku, kdy nedošlo k události plného nabití / vybití, to není problém SW ale kalibrace. Dalo by se to zušlechtit nějakou periodickou rekalibrací SOC podle napětí ze statistických dat SOC/U, ale podle už dvouleté zkušenosti si myslím, že obsluha to zvládne jednodušeji a přesněji.
Další potíž při výpočtu SOC je znalost reálné kapacity baterie. Co provozuju VALC, ještě jsem nevybila, takže jediné co umím říct, že kapacita je víc než o 10% vyšší než ta papírová. U lithia to tedy není problém - stačí se odpíchnout od té nominální a výsledné chování bude pesimističtější než realita, což je dobře. U olova to může být jinak, tam asi neuškodí dělat občasně kapacitní zkoušky a přízpůsobit tomu i SW, aby nechal baterky úplně vybít.
Celý smysl výpočtu SOC spočívá v omezování hloubky cyklů a ve včasném odpojení baterie tak, aby v ní zůstala železná rezerva pro případ výpadku DS, a tohle mi můj SW splňuje na jedničku a kupodivu k tomu není potřeba mít SOC změřené úplně přesně.
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
vata
 
Příspěvky: 1349
Registrován: pon zář 12, 2011 10:32 am
Reputation: 57

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » pát kvě 22, 2015 9:00 pm

Viete mi niekto poradit ako vygenerovat nasledujuci graf pomocou Arduina
a nahrat ho na SD kartu, aby ho mohol potom server na Arduine zobrazit ?
Přílohy
graf.jpg
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum Zverák 787 Dreamliner Issue Ako žiť eko Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1713
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 69

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » sob kvě 23, 2015 10:07 pm

Tak uz sa mi to podarilo, generuje mi to aj mesacny aj hodinovy graf.
Hodinovy takto:
Kód: Vybrat vše
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Temp demo</title>
  <h1>Arduino Page 2</h1>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["line"]});
  google.setOnLoadCallback(drawChart);

 function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Minute', 'U_bat','A_in'],
   ['0',0.00,0.00],
-------- sem zadat celu tabulku, napr. vygenerovat ----------
]);

     var options = {
          width: 3600,
          chart: {
            title: 'Battery Voltage',
            subtitle: 'U_Batt (V) + A_in'
          },
          series: {
            0: { axis: 'volts' }, // Bind series 0 to an axis named 'distance'.
            1: { axis: 'amperes' } // Bind series 1 to an axis named 'brightness'.
          },
          axes: {
            y: {
              distance: {label: 'V'}, // Left y-axis.
              brightness: {side: 'right', label: 'A'} // Right y-axis.
            }
          }
        };
    var chart = new google.charts.Line(document.getElementById('chart_div'));

    chart.draw(data, options);
  }
</script>
</head>
<body>
<div id="chart_div" style="width: 3600px; height: 900px;"></div>
<p>Go back to <a href="index.htm">main page</a>.</p>
</body>
</html>


A mesačný takto:
Kód: Vybrat vše
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Temp demo</title>
  <h1>Arduino Page 2</h1>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);

 function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'PV','Dist. Net'],
-------- sem zadat celu tabulku, napr. vygenerovat ----------
    ]);

    var options = {
      title: 'PV DC Gen. + DN usage (kWh)',
     legend: { position: 'bottom' },
   bar: { groupWidth: '65%' },
   isStacked: true
    };
    var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>
</head>
<body>
<div id="chart_div" style="width: 1000px; height: 2700px;"></div>
<p>Go back to <a href="index.htm">main page</a>.</p>
</body>
</html>


A ešte som sa 2 hod. trápil, lebo mi Arduino nechcelo načítať súbory
a potom mi zaplo, že tie subory mozu mat max. 8 znakov meno + 3 znaky priponu
inak to nenacita subor.
napr. datalog_p.txt alebo page2_begin.htm to uplne odignoruje a neotvori ho.
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum Zverák 787 Dreamliner Issue Ako žiť eko Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1713
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 69

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » pát črc 03, 2015 12:04 pm

Doplnil som do svojho merania stavu FVE, meranie SOC.
Su to dva riadky kodu pre Arduino.

Ale neviem prepocitať SOC v Ah na kWh,
pretoze, baterka sa vybíja ako je na obr., ale to je jedna z desiatich a ostatne sa vybijaju inou krivkou.

Tiez ako tam zapocitat nameranu kapacitu z kapacitnej skusky na tych grafoch, aka
je kapacita tychto baterii ?

Ako zahrnúť do SOC starnutie batérií, pri roznych teplotách, úrovniach a dĺžke absorbcie
pri danom prúde a equalizáciu ?
Přílohy
banner_shd_all.jpg
trojan_R_discharge_s.jpg
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum Zverák 787 Dreamliner Issue Ako žiť eko Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1713
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 69

Předchozí

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Google Adsense [Bot] a 2 návštevníků

Reputation System ©'