Arduino vyčítání hodnot ze STUDERu

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Ahoj Všichni ostrovníci.
Úvod
V rámci cvičení v programování laboruji s možností vyčítání údajů z jednotlivých zařízení.
Nejdříve jsem pokoušel SDS, tam jsem moc úspěchů neslavil, tak jsem žezlo podal "Prochazkovi85". Tento pán problémy vyřešil, ale našli se nové obtíže, tentokrát s určitým omezením pramenícím ve vlastnostech SDS. Jsou potřeba naprogramovat java scripty v user.html SDS-ka, pro převod mezi údaji ve formátu IEEE754 na float. A to neumím, tak jsem to odložil na dobu po svátcích. Aby mi s tím kamarád pomohl.

Arduino
Tak jsem se vrhnul na arduino. Ze začátku to vypadalo dobře, zařízeni komunikuje. Ale po třech dnech jsem v koncích s nápady.
Vylezou mi tato data do console

AA3650001000E0762A2110BDB00100000CCF2_________//Proud baterie (3005)
AA3650001000E0762A2110C3B00100077438C5F_______//Napeti stridace vstup (3011)
AA3650001000E0762A2110B8B0010060D3413BC7______//Napeti baterie (3000)

(Ty popisky jsem samo zřejmě do kopíroval) :D a vyznačil ty Byte které dále potřebuji.

No a teť ten problém.
Potřebuji vypreparovat jenom Byty, které obsahují data.

IEEE754________HEX/DEC_____IEE754DEC na Float___Float
00_00_00_00___00_00_00_00____00_00_00_00________00.00 A
00_00_77_43___00_00_119_67___67_119_00_00_______247.00 V
00_60_D3_41___00_96_211_65___65_211_96_00_______26.42 V

Převod HEX/DEC zvládám a převod IEE754DEC/Float taky.
Neuměl by prosím někdo pomoct jak dál ?

Tady je můj pokus

Kód: Vybrat vše

/* Program na vyzkouseni cteni udaju ze zarizeni STUDER pres RS 232 */
 
 char inByte; 
 int pocet_Byte = 26;
 int pocet_Byte2 = 30;
 int pp = 2;
 byte Ubat;
 int j = 1;
 int del = 300;
 
byte p1[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xB8,0x0B,0x00,0x00,0x01,0x00,0xC5,0x90 }; //Napeti baterie (3000) 
byte p2[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xBD,0x0B,0x00,0x00,0x01,0x00,0xCA,0xAE }; //Proud baterie (3005)
byte p3[26] = {0xAA,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x0A,0x00,0x6F,0x71,0x00,0x01,0x01,0x00,0xC3,0x0B,0x00,0x00,0x01,0x00,0xD0,0xD2 }; //Napeti stridace vstup (3011)

void setup()
{
Serial.begin(9600);                //nastav komunikacni parametry Serial0
Serial1.begin(38400, SERIAL_8E1) ; //nastav komunikacni parametry Serial1
//UCSR0C = (UCSR0C & ~ _BV (UPM00) | _BV (UPM01));
}

void loop()  {  //odesilani do studer
//      nastaveni odeslani bytu           odeslani bytu      spusteni programu cteni   asi vynulovani UARTU (musi jich tam byt 13)
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p1[i]); } Cteni(); delay(del); Serial1.write("1234567890123");
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p2[i]); } Cteni(); delay(del); Serial1.write("***trinact***");
  for(int i=0;i<(pocet_Byte+1);i++) { Serial1.write(p3[i]); } Cteni(); delay(del); Serial1.write("             ");
  }  

void Cteni() {  //cteni ze STUDER 
  if (Serial1.available() > 0){   
    for(int i=1;i<(pocet_Byte2+1);i++) { 
      inByte = Serial1.read();
      Ubat = (inByte);
      Serial.print(Ubat, HEX);
      }
      Serial.println("");
     }
 } 
Tady je převodní program IEE754DEC/Float

Kód: Vybrat vše

void setup() {
  Serial.begin(9600);  
  byte array[4] = {65,211,96,0};
  Serial.print(convert(array));
}

void loop(){}

typedef union {
  byte array[4];
  float value;
} ByteToFloat;

float convert(byte* data) {
  ByteToFloat converter;
  for (byte i = 0; i < 4; i++){
    converter.array[3-i] = data[i]; //or converter.array[i] = data[i]; depending on endianness 
  }
  return converter.value;
}
Dík předem za snahu :D
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Tak co neporadí někdo? :D
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od rob.brno »

Vypreparovat byty?
Například podle pozice od začátku řetězce?

Nerozumím kde je problém.
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Problém je ve mně, protože nevím jak na to. Od rána dělám asi 159-tý pokus a nemám žádný kloudný výsledek.
Prostě mi to nepálí, asi hodně cukroví nebo co.
Prosím nějaký příklad ať se někam pohnu :-)

Dík
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

rob.brno píše:Vypreparovat byty?
Například podle pozice od začátku řetězce?

Nerozumím kde je problém.
Tak jsem čekal, že mě pošlete řešení, když je to tak jednoduché, ale jsem se nedočkal. Že by to tak jednoduché nebylo? :D
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Ahoj všem solárníkům
Tak jsem konečně dohnal svůj pokusný program na vyčítání dat ze STUDERU k nějakému konci.
Našel jsem sice nějaké mouchy, ale to je vždy :lol:
Jako hlavní problém je to, že program zpracovává data přes RS232 a celá smyčka trvá neskutečně dlouho.
Takže když přepínám obrazovky, tak celé přepnutí trvá cca 2-3s což je strašně dlouho. Možná, že by někdo zkušenější mohl program podrobit odbornému zkoumání a toto přepínání vylepšit. Leč do konzole se data sypou bez problémů.

Parametry:
Program odzkoušen na Arduino MEGA
Program používá Serial1 pro komunikaci se zařízením Xcom-232i
Je nutný Shifter RS232 ke konverzi 5V logiky na 3V3 logiku.
Vyčítám všechny dostupné údaje protokolu STUDER dle příručky
Vyzkoušeno na zařízení STUDER XTS 1200-24 + BSP 500.

pár obrázků
převodník
převodník
Shifter.jpg (2.61 KiB) Zobrazeno 3300 x
celkový pohled na arduino s displejem + shifter + kouzelná krabička Xcom-232i od STUDERU.
pohled
pohled
pohled na displej
displej
displej
pohled na konzoli
konzole
konzole
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od rob.brno »

Frenky píše: Tak jsem čekal, že mě pošlete řešení, když je to tak jednoduché, ale jsem se nedočkal. Že by to tak jednoduché nebylo? :D
To je nedorozumění. Nepsal jsem, že je to jednoduché. Jen jsem nepochopil "zadání" - do některých řešení se člověk musí naplno ponořit a věnovat tomu hodně času.
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Já vím, já to dobře vím. Strávil jsem s tímto cvičením cca 3 dni. A přitom to byla taková blbost. Blbě nadefinované pole. :oops:

(Točil jsem se neustále v chybové smyčce a nevěděl jak se z ní dostat) :D

Byl jsem byl v tom okamžiku tak vyčerpaný a zoufalý, že jsem potřeboval nějakou morální podporu. Ale Nový rok byla blbá doba chtít po někom aby mě pomohl, já vím. Ale na druhou stranu mě to těší, že jsem na to přišel sám. Zkušenosti a dovednosti takto nabité se nezapomínají. :D

Mám s tím ještě problém, že při komunikaci arduina přes RS232 nejde prakticky nic dělat, protože komunikace vytíží arduino na maximum. Bylo by asi potřeba nějak vymyslet způsob jak program přibrzdit a umožnit tak upřednostnění vykonání jiného podprogramu. (třeba obsluha displeje, či eth. karty). Myslím, že se to jmenuje externí přerušení. Jenomže příklady vždy pracují nějakým fyzickým pinem arduina (0, 2) (přesně si nepamatuji). A já mám v příkladu klávesnici ovládanou přes AD převodník (AD 0). (LCD keypad shield). No ještě budu muset trochu pošpekulovat jak na to. Kdyby byl nějaký přesnější nápad, tak uvítám.

Další plány: (po vyřešení problému právě popsaného)
1) Prezentace vyčtených údajů na WEB serveru pomocí ETH shieldu.
2) Záznam na SD kartu (logování).
3) Odesílání dat do jiné databáze (mypower).
4) Odesílání dat na web stránku zařízení SDS (user.html)

No a až nebudu mít co na práci, tak se pustím do TRISTARU a udělám s ním to samé :D .

No a ve finále bych chtěl mít obě zaízení (TRISTAR + STUDER) za pomocí 1-ho arduina s vyčtenými údaji na jedné user.html stránce zařízení SDS pěkně pohromadě. :eek2:

Podotýkám, že nejsem programátor, jsem jen kutil domácí.
Aby to bylo k užitku i někomu jinému, tak by to musel někdo znalý předělat. Mě od pradávna zajímala komunikace mezi různými zařízeními a tak se snažím něco se aktivně dozvědět a něco dělat. :D

PS: Vyčítání ze STUDER-u přes RS232 přes arduino mi běží cca 2 dni v kuse a bez závad.
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Ještě jsem zapomněl vložit ukázku mé user.html stránky zařízení SDS. Data vyčtená z TRISTAR-u pocházejí nyní z PHP scriptu pana Procházky85. Ke stávajícímu stavu tedy přibude čtvereček s daty STUDER-u. No a proč se tedy snažím s těmi všemi krabičkami, když to vlastně ku ... běží? Protože počítač kde běží php scripty chci vypnout kvůli spotřebě (žere 20w).

No a ještě budu muset popracovat na grafické úpravě a stvořit nějaký obrázek, aby prezentovaná data nebyly jen výčtem dat.
SDS_USER_HTML.png
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od rob.brno »

Frenky píše:Já vím, já to dobře vím. Strávil jsem s tímto cvičením cca 3 dni. A přitom to byla taková blbost. Blbě nadefinované pole. :oops:
(Točil jsem se neustále v chybové smyčce a nevěděl jak se z ní dostat) :D
Jo, to se pak na kod musí podívat někdo nezaujatý nebo je dobré to na pár dnů odložit :-)
Frenky píše: Mám s tím ještě problém, že při komunikaci arduina přes RS232 nejde prakticky nic dělat, protože komunikace vytíží arduino na maximum. Bylo by asi potřeba nějak vymyslet způsob jak program přibrzdit a umožnit tak upřednostnění vykonání jiného podprogramu. (třeba obsluha displeje, či eth. karty). Myslím, že se to jmenuje externí přerušení. Jenomže příklady vždy pracují nějakým fyzickým pinem arduina (0, 2) (přesně si nepamatuji). A já mám v příkladu klávesnici ovládanou přes AD převodník (AD 0). (LCD keypad shield). No ještě budu muset trochu pošpekulovat jak na to. Kdyby byl nějaký přesnější nápad, tak uvítám.
Já to řeším tak, že si pustím timer, který generuje každou 1milis interrupt. Kde se specifikuje, jak často se budou dělat jednotlivé akce(třeba každých 100ms se sejme stav kb a každých 500ms se zobrazuje, atd.). Krátké akce dělám rovnou v obsluze přerušení, delší v hlavní smyčce podle nahozeného flagu. Podle potřeby se mezi jednotlivými akcemi nechá mcu uspat, aby zbytečně nežral a taky se dá použít watchdog k resetu mcu, kdyby se do určité doby "neohlásil" a někde v programu zatoulal.

void loop()
{
// set_sleep_mode(SLEEP_MODE_IDLE);
// sleep_cpu();
if (merit)
{
merit = 0;
mereni()
}
if (zobrazit)
{
zobrazit = 0;
zobraz();
}
.....
.....
.....
// wdt_reset();
}

ISR(TIMER0_COMPA_vect)
{
cnt1ms++;
if (!(cnt1ms % INTERVAL_MERENI))
merit = 1;
.....
.....

if (temp_on)
analogWrite(TEMP_OUT_PIN,temp);
else
analogWrite(TEMP_OUT_PIN,analogRead(TEMP_IN_PIN));
}
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Hmmmm. Pro mě zatím vyšší dívčí, pokusil jsem se něco napsat, ale nefunguje mi to :oops:

Jdu se pokusit o to externí přerušení.
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Nějak to nefunguje, potřebuji nějaký fungující příklad, v uvedeném příkladu je moc nenznámých se kterými si nevím rady

1) co je cnt1ms (co to je za promennou, mám nadefinovat ?)
2) co je INTERVAL_MERENI (mam to taky nadefinovat? jakou hodnotu? co to je?

Ostatní je jakž tak jasné.

Pokud to všechno nadefinuju ručně

int merit;
int zobrazit;
int cnt1ms;
#define INTERVAL_MERENI = 10;

Tak mi to vyhodí hlášku "expected primary-expression before = token"

Tak nevím co dělám špatně ???
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Tak jsem to vyřešil trochu jinak a to pomoci preruseni na pinu arduina 21 v tabulce je to pin 2.
Zatím pin na nic nevyužívám, když tak si ještě můžu vybrat. :D
Na konci je vidět (neobratné ovládání přerušení).
Tak snad jsem příklad popsal správně :D

Kód: Vybrat vše

digitalWrite(prer, LOW);   //ovladani preruseni
    digitalWrite(prer, HIGH);   //ovladani preruseni

Kód: Vybrat vše

Tabulka pinů, kde je možno nastavit přerušení:
0 	1 	2 	3 	4 	5     Arduino 
2 	3 	-- 	-- 	-- 	--    UNO 
2 	3 	21 	20 	19 	18   Mega 2560 
3 	2 	0 	1 	7 	--    Leonardo
Více zde: http://arduino8.webnode.cz/news/lekce-2 ... -tlacitka/

Kód: Vybrat vše

int prer = 21; //pin HW preruseni, v tabulce pin2 ( attachInterrupt(2,test, RISING);  )

void setup()
  {
    pinMode(prer, OUTPUT);
    attachInterrupt(2,test, RISING);  //(cislo pinu kde je mozne preruseni,podprogram test,prerus pri nab hrane impulsu)
  }

  void loop()
  {
    RS232();  //podprogram ktery vycita udaje s RS232
  }
 
 void test()  //podprogram pro preruseni
  { 
    klavesnice();   //podprogram obsluhy klavesnice
    RefreshLCD(); //podprogram cyklickeho menu displeje
  }

 void RS232()   //priklad podprogramu pro vycitani jedne hodnoty ze studeru
  {
 //Napeti baterie (3000) 
    for(int i=0;i<(pB+1);i++) { 
      Serial1.write(p2[i]); 
    }
    if (Serial1.available() > 0) {
      for(i=1;i<(pB2+1);i++)
        inByte[i] = Serial1.read();
      A = inByte[28]; 
      B = inByte[27]; 
      C = inByte[26]; 
      D = inByte[25];
      for(int k=0;k<1;k++) {
        byte array[4] = { A, B, C, D };
        Serial.print("Napeti baterie                (3000) "); 
        Serial.print(convert(array));
        Serial.print(" V ");
        a000 = (convert(array));
      } 
      Serial.println(""); 
    } 
    delay(del);
    Serial1.write("***trinact***");
    digitalWrite(prer, LOW);   //ovladani preruseni
    digitalWrite(prer, HIGH);   //ovladani preruseni
  }
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od rob.brno »

Frenky píše:Nějak to nefunguje, potřebuji nějaký fungující příklad, v uvedeném příkladu je moc nenznámých se kterými si nevím rady
Tak nevím co dělám špatně ???
Viz. PM.
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Tak jsem snad u cíle.
Posílám výsledek mého webového snažení. Takže arduino čte údaje ze studeru, zobrazuje výsledky
1) do konzole
2) na displej
3) na WEB rozhraní

Podařilo se mi jěště implementovat
1) NTP (čtu časové značky z NTP serveru)
2) Ovládání 8 relé přes LCD Shield
3) cyklické menu
4) Ovládání 6-ti relé přes WEB (při 8 se to jíž seká, asi se program nevejde do paměti)
5) Regulace podsvětlení displeje pomocí PWM

Tak tady jsou ukázky prezentace dat přes WEB
1) první pokus s klasikou
1 verze
1 verze
2) druhá verze s šesti relátky
2-verze s tlačítky
2-verze s tlačítky
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od luge »

Dobrá práca Frenky :yes:
je možné vyriešiť nejak podobne victrona?
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Určitě by to nějak šlo, ale má to spoustu úskalí.

1) Nejsem programátor, takže všechno co udělám je metodou pokus x omyl a tak pokračuji dopředu. Někdy to je tak že i 10 kroků zpátky a pak teprve zase do předu.

2) Ten můj program je velmi nedokonalý a je v něm určitě značně chyb.

3) Neznám protokol VICTRUN-a a nevím, zda bych ho dokázal rozlousknout. Do problému s vyčítáním STUDER-a a TRISTAR-u mě uvedl "Procházka85", ten má lví podíl na tom, že jsem to vůbec dokázal.

4) Nevím jaké fyzické komunikační možnosti mí VICTRON. (Ethernet, sériový port, RS 485).

5) Nemám fyzický přístup k VICTRONOV-i, ten je nezbytný pro ověření kódu.

6) Myslím si, že VICTRON má poměrně slušně zpracován vlastní programové vybavení. (koketoval jsem s nákupem, nakonec to vyhrál STUDER).

7) Nerad bych bral potencionální práci pro „admina“, myslím si, že by to mohl být potencionální úkol pro něj. Já mám práce více nežli je zdrávo a možnost jak si vydělat penízky také. S adminem je to horší, proto bych raději nechal tento úkol pro něho.
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Tak jak si hraju s tím WEB serverem na arduinu, tak jsem zjistil, že je to pěkný žrout paměti arduina. Nainstaloval jsem si knihovnu #include <MemoryFree.h>, ktera vraci na promennou client.print(freeMemory()); hodnotu volne pameti v arduinu. Takze pulku pameti arduina (presne 4 140 byte) sezere par radku na webovem serveru arduina. Takze pozor pri programovani hratek s arduinem na web clienta!
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od mypower.cz »

A ted si zkus jeste volani freeMemory dat na ruzna mista v kodu a uvidis co presne tolik pameti alokuje a taky prijdes na ruzna jina zajimava prekvapeni, treba ze mimo smycku webserveru je pamet relativne volna pro uplne jine ucely :)
Uživatelský avatar
Frenky
Příspěvky: 815
Registrován: pon led 21, 2013 6:36 pm
Reputace: 131
Lokalita: Doubravička
Systémové napětí: 48V
Výkon panelů [Wp]: 8700
Kapacita baterie [kWh]: 25
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Doubravička

Re: Arduino vyčítání hodnot ze STUDERu

Příspěvek od Frenky »

Na to jsem taky přišel. Pokud freeMemory zjistuji v sekce ovladani displeje tak tam mam jina cisla nezli primo ve WEB clientovy. To jsou veci, to jsou veci. :-)
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809

Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek