V ESP8266 načítám pomocí
<ESP8266HTTPClient.h>
<ArduinoJson.h>
data z webu ktere chci poté zobrazit na displeji mudulu
řetězec vypada nějak takto
{"rychlost":"5000","opakovani":"3","pocet":"4","n1":"Anetka","d1":"25.70°C +","n2":"kotel","d2":"57.56°C +","n3":"venku","d3":"3.20°C","n4":"Cas","d4":"20:41"}
Posilam parametry rychlost , opakovani , pocet a poté již samotné informace na displej kdy je vždy tvar nazev je n+číslo data z něj jsou d+číslo
na displeji tedy chci zobrazit 4 udaju z ukázky a to presneji teploty a cas ktere se co 5 vteřin překleslý a co 3 opakování načtou znovu.
Umím programem zobrazit všechny zaslane proměné problém je že je musím definovat ručně. Nemužu tedy na straně serveru ovlivnit že bych chtěl aktuálně posílat jen 3 místo 4 obrazovek aniž bych zase nepřeprogramoval celý displej.
Kód: Vybrat vše
Serial.println("Vypisuji hodnoty na e-ink displej");
float rychlost = json["rychlost"].as<float>();
byte opakovani = json["opakovani"].as<byte>();
byte pocet = json["pocet"].as<byte>();
/**/
String n1 = json["n1"].as<String>();
String d1 = json["d1"].as<String>();
String n2 = json["n2"].as<String>();
String d2 = json["d2"].as<String>();
String n3 = json["n3"].as<String>();
String d3 = json["d3"].as<String>();
String n4 = json["n4"].as<String>();
String d4 = json["d4"].as<String>();
/*
int jmeno[pocet];
int data[pocet];
for(poc=0;poc<pocet;poc++){
String text1 = String(poc) ;
String text2 = String("n");
String text3 = text2 + text1; // spojeni retezcu
String text4 = String("d");
String text5 = text4 + text1; // spojeni retezcu
String ndp = json[text3].as<String>();
String ddp = json[text5].as<String>();
char jmeno[poc] = ndp;
char data[poc] = ddp;
}
*/
for(poc=0;poc<opakovani;poc++){
// předelat na ciklus !
/**/
display.clear(); // clear the display
display.setTextAlignment(TEXT_ALIGN_RIGHT);
lcddata(String(n1),String(d1));
display.display();
delay(rychlost);
display.clear(); // clear the display
display.setTextAlignment(TEXT_ALIGN_RIGHT);
lcddata(String(n2),String(d2));
display.display();
delay(rychlost);
display.clear(); // clear the display
display.setTextAlignment(TEXT_ALIGN_RIGHT);
lcddata(String(n3),String(d3));
display.display();
delay(rychlost);
display.clear(); // clear the display
display.setTextAlignment(TEXT_ALIGN_RIGHT);
lcddata(String(n4),String(d4));
display.display();
delay(rychlost);
/**/
}