Uživatelské nástroje

Nástroje pro tento web


tristar-mppt-60-pod-openwrt

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
tristar-mppt-60-pod-openwrt [2012/04/17 20:42]
drama vytvořeno
tristar-mppt-60-pod-openwrt [2012/04/18 03:15] (aktuální)
Řádek 5: Řádek 5:
   * router, na kterém běží Linuxová distribuce OpenWRT (nejlépe s USB a rozumným množstvím paměti např. Linksys WRT 160-NL) - viz http://​wiki.openwrt.org/​toh/​start   * router, na kterém běží Linuxová distribuce OpenWRT (nejlépe s USB a rozumným množstvím paměti např. Linksys WRT 160-NL) - viz http://​wiki.openwrt.org/​toh/​start
  
-===Instalace a konfigurace===+===Instalace a konfigurace ​ukládání dat===
   * nejprve nainstalujeme na router OpenWRT (např. upgrade přes webové rozhraní, nebo tftp klientem), více informací lze nalézt na http://​wiki.openwrt.org/​doc/​howto/​generic.flashing   * nejprve nainstalujeme na router OpenWRT (např. upgrade přes webové rozhraní, nebo tftp klientem), více informací lze nalézt na http://​wiki.openwrt.org/​doc/​howto/​generic.flashing
-  * zprovozníme na routeru síť a to jak přístup na internet tak v lokální síti přístup na Morningstar Tristar MPPT 60+  * zprovozníme na routeru síť a to jak přístup na internet tak v lokální síti (tj. přístup na Morningstar Tristar MPPT 60)
   * pokud budeme data ukládat na USB, zprovozníme USB storage dle http://​wiki.openwrt.org/​doc/​howto/​usb.storage   * pokud budeme data ukládat na USB, zprovozníme USB storage dle http://​wiki.openwrt.org/​doc/​howto/​usb.storage
   * nainstalujeme collectd démona společně s modulem pro modbus a ukládání do CSV (samozřejmě můžeme nainstalovat jakýkoliv jiný backend např. collectd-mod-mysql):<​code>​   * nainstalujeme collectd démona společně s modulem pro modbus a ukládání do CSV (samozřejmě můžeme nainstalovat jakýkoliv jiný backend např. collectd-mod-mysql):<​code>​
Řádek 121: Řádek 121:
 </​Host> ​                                           </​Host> ​                                          
 </​Plugin>​ </​Plugin>​
- 
- 
 </​code>​ </​code>​
 +   * nakonec restartujeme collectd démona a podíváme se, zda se data ukládají tam kam mají
 +   * jakmile máme data, je třeba z nich vytvořit grafy např. pomocí gnuplotu
 +   * nainstalujeme gnuplot<​code>​opkg install ​
 +gnuplot</​code>​
 +   * vytvoříme gnuplot skript a uložíme jej jako /​root/​grafy.gpt (jedná se o grafy pro 24V systém)<​code>​TZ=7200
 +set terminal png size 700, 450
 +set style fill solid 1.0 noborder
 +set style function filledcurves y1=0
 +set clip two
 +set key top left Left reverse
 +set output '/​tmp/​www/​fv-napeti-proud.png'​
 +set xdata time
 +set xlabel " "
 +set ylabel "​Napeti [V]"
 +set y2label "Proud [A]"
 +unset grid
 +set grid
 +set datafile separator ","​
 +set ytics nomirror
 +set y2tics
 +set timefmt "​%s"​
 +set yrange [0:45]
 +set y2range [0:45]
 +plot "​modbus/​modbus-tsmppt/​voltage-voltage-array-"​.DATUM using ($1+TZ):​($2/​182.04) with lines title "​Napeti panelu"​ axis x1y1, "​modbus/​modbus-tsmppt/​voltage-voltage-battery-"​.DATUM using ($1+TZ):​($2/​182.04) with lines title "​Napeti baterie"​ axis x1y1, "​modbus/​modbus-tsmppt/​voltage-current-battery-"​.DATUM using ($1+TZ):($2 < 50000 ? $2/409.6 : 1/0 ) with lines title "Proud do baterie"​ axis x1y2
 +set output '/​tmp/​www/​baterie-napeti-kapacita.png'​
 +unset y2tics
 +unset y2range
 +set y2range [23.8:29.7]
 +set yrange [23.8:29.7]
 +set y2label "​Kapacita baterie"​
 +set y2tics ("​100%%"​ 25.4, "​90%%"​ 25.16, "​80%%"​ 24.9, "​70%%"​ 24.72 , "​60%%"​ 24.56, "​50%%"​ 24.4, "​25%%"​ 24.0)
 +set grid y2tics
 +plot "​modbus/​modbus-tsmppt/​voltage-voltage-battery-"​.DATUM using ($1+TZ):​($2/​182.04) with lines title "​Napeti baterie"​ axis x1y1, "​modbus/​modbus-tsmppt/​voltage-target-voltage-"​.DATUM using ($1+TZ):($2 > 20 ? ($2/​182.04)+0.015 :​ 1/0) with lines title "​Cilove napeti baterie" ​
 +set output '/​tmp/​www/​fv-energie.png'​
 +unset y2tics
 +unset yrange
 +unset grid
 +set grid
 +set y2label "Vykon [W]"
 +set y2tics
 +set ylabel "​Energie [Wh]"
 +set yrange [*: *]
 +set y2range [*: *]
 +plot "​modbus/​modbus-tsmppt/​voltage-power-output-"​.DATUM using ($1+TZ):​($2/​9.1007) with lines title "Vykon dodavany z FV" axis x1y2, "​modbus/​modbus-tsmppt/​voltage-wh-daily-"​.DATUM using ($1+TZ):2 with lines title "​Energie dodana z FV za den" axis x1y1
 +</​code>​
 +  * grafy se vytvoří v /tmp/www (viz definice výše) zavoláním ze skriptu<​code>#​!/​bin/​sh
 +cd /tmp/csv/
 +DATE=$(date "​+%s"​)
 +if [ $DATE -lt 1300860001 ]; then
 +  exit;
 +fi
 +gnuplot -e "​DATUM=\"​$DATUM\""​ /​root/​grafy.gpt 2>/​dev/​null
 +</​code>​
 +  * výše uvedený skript můžeme rozšířit o generování jednoduché HTML stránky (opět příklad pro 24V systém)<​code>​
 +WWW=/​tmp/​www/​index.html
 +CAS=$(date +%H.%M)
 +DATUM=$(date "​+%Y-%m-%d"​)
 +WH_DAILY=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-wh-daily-$DATUM | sed '​s/​.*,​\(.*\)\.0000.*/​\1/​g'​)
 +KWH_TOTAL=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-kwh-total-$DATUM | sed '​s/​.*,​\(.*\)\.0000.*/​\1/​g'​)
 +CHRG_STATE=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-charging-state-$DATUM | sed '​s/​.*,//​g'​)
 +CHRG_STATE=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-charging-state-$DATUM | sed '​s/​.*,​\(.*\)\.0000.*/​\1/​g'​)
 +U_BAT=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-voltage-battery-$DATUM | sed '​s/​.*,//​g'​)
 +I_BAT=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-current-battery-$DATUM | sed '​s/​.*,//​g'​)
 +U_TAR=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-target-voltage-$DATUM | sed '​s/​.*,//​g'​)
 +P_OUT=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-power-output-$DATUM | sed '​s/​.*,//​g'​)
 +U_ARR=$(tail -1 /​tmp/​csv/​modbus/​modbus-tsmppt/​voltage-voltage-array-$DATUM | sed '​s/​.*,//​g'​)
 +U_ARRAY=$(echo "​scale=2;​ $U_ARR / 182.04"​ | bc | sed '​s/​^\./​0./​g'​)
 +U_TARGET=$(echo "​scale=2;​ $U_TAR / 182.04"​ | bc)
 +U_BATTERY=$(echo "​scale=2;​ $U_BAT / 182.04"​ | bc)
 +I_BATTERY=$(echo "​scale=2;​ $I_BAT / 409.6" | bc)
 +P_OUTPUT=$(echo "​scale=2;​ $P_OUT / 9.10" | bc)
 +echo '<​html lang="​cs"​ xml:​lang="​cs"​ xmlns="​http://​www.w3.org/​1999/​xhtml">'​ > $WWW
 +echo '<​meta http-equiv="​refresh"​ content="​300;​url=index.html">'​ >> $WWW
 +echo '<​head profile="​http://​gmpg.org/​xfn/​11">'​ >> $WWW
 +echo '<​title>​Měření</​title>'​ >> $WWW
 +echo '<​meta http-equiv="​Content-Type"​ content="​text/​html;​ charset=utf-8"​ />' >> $WWW
 +echo "​Napětí baterie: <​b>​$U_BATTERY V</​b><​br />" >> $WWW
 +echo "​Cílové napětí baterie: <​b>​$U_TARGET V</​b><​br />" >> $WWW
 +echo "​Nabíjecí proud baterie: <​b>​$I_BATTERY A</​b><​br />" >> $WWW
 +echo "​Napětí panelů: <​b>​$U_ARRAY V</​b><​br />" >> $WWW
 +echo "​Výkon aktuálně dodávaný z panelů: <​b>​$P_OUTPUT W</​b><​br />" >> $WWW
 +echo "Dnes vyrobeno energie: <​b>​$WH_DAILY Wh</​b><​br />" >> $WWW
 +echo "​Celkově vyrobeno energie: <​b>​$KWH_TOTAL kWh</​b><​br /><​small>​Měřeno v $CAS</​small>"​ >> $WWW
 +echo '<​p><​img src="​fv-napeti-proud.png"></​p>'​ >> $WWW
 +echo '<​p><​img src="​teplota.png"></​p>'​ >> $WWW
 +echo '<​p><​img src="​baterie-napeti-kapacita.png"></​p>'​ >> $WWW
 +echo '<​p><​img src="​fv-energie.png"></​p>'​ >> $WWW
 +echo '</​body></​html>'​ >> $WWW
 +</​code>​
 +  * výsledek pak zpřístupníme pomocí HTTP serveru např. nginx nebo lighttpd, více informací lze najít na http://​wiki.openwrt.org/​doc/​howto/​http.lighttpd
 +  * příklad funkčního řešení http://​postolka.klikva.net/​
tristar-mppt-60-pod-openwrt.1334688122.txt.gz · Poslední úprava: 2012/04/18 02:42 (upraveno mimo DokuWiki)