Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pát zář 20, 2019 8:27 am


WeMos D1 WIFI WebServer

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

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » sob zář 01, 2018 2:05 am

Skúšal som uspať Wemos, ale keďže to komunikuje cez AJAX s browserom, tak po 2 - 3 cykloch
to stratí spojenie a pomože len manuálny refrešh stránky.

Ako pred uspaním Wemos-u oznámiť browseru, že nech počká 8 resp. 19 sekúnd ?

https://www.youtube.com/watch?v=5ta4WBhqwkQ

Tiež po ESP.deepSleep sa nezníži spotreba na 15 uA, ale je cca. 5.1 mA.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod svango » pon zář 24, 2018 1:40 pm

termicky ohrev vody 200 l, FVE1 - 1kW ohrev vody 180+80 l, FVE2 - 0.8kW do 2kWh LiFe, FVE3 domcek pre maleho - 0.26kW do 0.5kWh LiFe
svango
 
Příspěvky: 141
Registrován: čtv dub 12, 2018 1:44 pm
Bydliště: Trencin

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » čtv pro 27, 2018 10:12 am

Skouším už přes rok jsem udělat webserver s takovýma pěknýma budíkama jako má rottenkiwi zde http://rottenkiwi.no-ip.biz/.
Pro FVE mam ž vše hotovo na Arduinu mega s ethernet shíeld to mi funguje ;)
Ted mam v plánu udělat budíky na rekuperaci kde mam Wemos D1 R2 a tam mě nastává velkej problem.
Všechno už mam hotovy, z ethernet mam předělany na WiF, ale mam problem s SD kartou, ta mě přádně nefunguje než načte index.htm tak to trvá 10 minut. Pravděpodobně na SD karta nějadej konflikt s Wemos.
Kód: Vybrat vše
//#include <Ethernet.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <SPI.h>
#include <SD.h>

float NapetiBB1 = 22;
float NapetiBB2 = 11;
float IvstupAX = 3;
int Bojler = 0;

//IPAddress ip(192, 168, 1, 202); // where xx is the desired IP Address
//IPAddress gateway(192, 168, 1, 1); // set gateway to match your network
//IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your network

char ssid[] = "Petrzobran";    //  your network SSID (name)
char pass[] = "50067123";   // your network password

#define REQ_BUF_SZ 50   // velikost vyrovnávací paměti používaná k zachycení požadavků HTTP

int status = WL_IDLE_STATUS;

WiFiClient client;
//EthernetServer server(80);  // create a server at port 80
WiFiServer server(80);  // create a server at port 80
File webFile;               // soubor webové stránky na SD kartě
char HTTP_req[REQ_BUF_SZ] = {0}; // požadovaný protokol HTTP uložený jako null ukončený řetězec
char req_index = 0;              // index do vyrovnávací paměti HTTP_req

void setup() {

  Serial.begin(115200);      // inicializujte sériovou komunikaci na 9600 bitech za sekundu:
  // disable Ethernet chip
  //  pinMode(10, OUTPUT);
  //  digitalWrite(10, HIGH);
  // WiFi.config(ip, gateway, subnet);
  WiFi.begin(ssid, pass);

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Start the server
  server.begin();// začne poslouchat klienty

  // initialize SD card
  Serial.println();
  Serial.println("Inicializace SD karty ...");
  if (!SD.begin(4)) {
    Serial.println("ERROR - inicializace karty SD se nezdarila!");
    return;    // init se nezdařilo
  }
  Serial.println("USPECH - inicializace SD karty.");
  // zkontroluje soubor index.htm
  if (!SD.exists("index.htm")) {
    Serial.println("ERROR - Nelze najit soubor index.htm!");
    return;  // Nelze najít indexový soubor
  }
  Serial.println("SUCCESS - Nalezeny soubor index.htm.");
}

void loop() {

  //   EthernetClient client = server.available();  // try to get client
  WiFiClient client = server.available();  // pokus o získání klienta

  if (client) {  // má klienta?
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {   // data klienta ke čtení k dispozici
        char c = client.read(); // číst 1 bajt (znak) od klienta
        // vyrovnávací paměť první části HTTP požadavku v poli HTTP_req (řetězec)
        // ponechat poslední prvek v poli jako 0 až null ukončení řetězce (REQ_BUF_SZ - 1)
        if (req_index < (REQ_BUF_SZ - 1)) {
          HTTP_req[req_index] = c;          //uložit znak HTTP požadavku
          req_index++;
        }
        // poslední řádek požadavku klienta je prázdný a končí \ n
        // odpovědět klientovi pouze po přijetí posledního řádku
        if (c == '\n' && currentLineIsBlank) {
          // odeslat standardní záhlaví odpovědi http
          client.println("HTTP/1.1 200 OK");
          // zbytek záhlaví je uveden níže, v závislosti na tom, zda
          // webová stránka nebo stránka XML
          // Požadavek Ajax - odeslání souboru XML
          if (StrContains(HTTP_req, "ajax_inputs")) {
            // odeslat zbytek záhlaví HTTP protokolu
            client.println("Content-Type: text/xml");
            client.println("Connection: keep-alive");
            client.println();
            // odeslat XML soubor obsahující vstupní stavy
            XML_response(client);
          }
          else {  // požadavek webové stránky
            // odeslat zbytek záhlaví HTTP protokolu
            client.println("Content-Type: text/html");
            client.println("Connection: keep-alive");
            client.println();
            // odeslat webovou stránku
            webFile = SD.open("index.htm");        // otevřete soubor webové stránky
            if (webFile) {
              while (webFile.available()) {
                client.write(webFile.read()); // odeslat webovou stránku klientovi
              }
              webFile.close();
            }
          }
          // zobrazení přijaté HTTP žádosti na sériovém portu
          Serial.print(HTTP_req);
          // obnovit index vyrovnávací paměti a všechny prvky vyrovnávací paměti na hodnotu 0
          req_index = 0;
          StrClear(HTTP_req, REQ_BUF_SZ);
          break;
        }
        // každý řádek textu přijatý od klienta končí \ r \ n
        if (c == '\n') {
          // poslední znak na řádku přijatého textu
          //  číst začátek nového řádku s dalším znakem
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // textový znak byl přijat od klienta
          currentLineIsBlank = false;
        }
      } // end if (client.available())
    } // end while (client.connected())
    delay(1);      // poskytnout čas webový prohlížeči pro příjem dat
    client.stop(); // zavřete připojení
  } // end if (client)
}

// odeslat soubor XML obsahující analogoé hodnoty
//void XML_response(EthernetClient cl)
void XML_response(WiFiClient cl)//---------------------------------------------
{

  Serial.print("ddddd ");
  cl.print("<?xml version = \"1.0\" ?>");
  cl.print("<inputs>");

  cl.print("<analog>");
  cl.print(NapetiBB1);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(NapetiBB2);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(IvstupAX);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(Bojler);
  cl.print("</analog>");

  cl.print("</inputs>");
}

// nastaví každý prvek str na hodnotu 0 (vymaže pole)
void StrClear(char *str, char length)//--------------------------------------------
{
  for (int i = 0; i < length; i++) {
    str[i] = 0;
  }
}

// vyhledá řetězec sfind v řetězci str
// vrátí 1, pokud je nalezen řetězec
// vrátí 0, pokud řetězec nebyl nalezen
char StrContains(char *str, char *sfind)
{
  char found = 0;
  char index = 0;
  char len;

  len = strlen(str);

  if (strlen(sfind) > len) {
    return 0;
  }
  while (index < len) {
    if (str[index] == sfind[found]) {
      found++;
      if (strlen(sfind) == found) {
        return 1;
      }
    }
    else {
      found = 0;
    }
    index++;
  }
  return 0;
}


Původ pochází ocať https://startingelectronics.org/tutorials/arduino/two-gauge-arduino-web-server/

Zapojení SD:
MOSI-----D7
MISO-----D6
SCK------D5
CS--------D8

V programu mam nastaveno SD.begin(4) :?:
To je jediná varianta, ktera na příkladu/SD/Cardinfo funguje ale s WiFi připojením nefunguje.
Jsem bezradný :(
Původně jsem chtěl index.htm uložit do SPIFFS ale nedařilo se mě odesílat hodnoty v XML. :(

Poradí mě někdo?
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » čtv pro 27, 2018 10:40 am

Tak to daj na SPIFFS. Ja to mám inak.
Kód: Vybrat vše
void generateHTML(){
myHTML="<!DOCTYPE HTML>\n";
myHTML +="<html>\n";
myHTML +="<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\">\n";
myHTML += "  <head>\n";
myHTML += "<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>\n";
myHTML += "   <script type=\"text/javascript\">\n";
myHTML += "   var IP = \"192.168.1.12\";\n";
myHTML += "   var temp_1 = 10;\n";
myHTML += "   var temp_2 = 20;\n";
myHTML += "   var temp_3 = 30;\n";
myHTML += "      google.charts.load('current', {'packages':['gauge']});\n";
myHTML += "      google.charts.setOnLoadCallback(drawChart_1);\n";
myHTML += "      function drawChart_1() {\n";
myHTML += "        nocache = \"&nocache=\" + Math.random() * 1000000;\n";
myHTML += "        var data1 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['LiFeTemp', temp_1]\n";
myHTML += "        ]);\n";
myHTML += "        var data2 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['T_Axpert', temp_2]\n";
myHTML += "        ]);\n";
myHTML += "        var data3 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['Batt.Volt', temp_3]\n";
myHTML += "        ]);\n";
myHTML += "        var options1 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          blueFrom: 30, blueTo: 40,\n";
myHTML += "          redFrom: 90, redTo: 100,\n";
myHTML += "          yellowFrom:70, yellowTo: 90,\n";
myHTML += "          greenFrom: 10, greenTo: 25,\n";
myHTML += "          minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var options2 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          blueFrom: 10, blueTo: 20,\n";
myHTML += "          redFrom: 90, redTo: 100,\n";
myHTML += "          greenFrom: 20, greenTo: 25,\n";
myHTML += "          yellowFrom:75, yellowTo: 90,\n";
myHTML += "          minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var options3 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          min: 10.0, max: 35.0,\n";
myHTML += "          greenFrom: 22.8, greenTo: 26.8,\n";
myHTML += "          redFrom: 27.6, redTo: 30.0,\n";
myHTML += "          yellowFrom: 26.8, yellowTo: 27.6,\n";
myHTML += "          majorTicks:5, minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_1'));\n";
myHTML += "         chart.draw ( data1, options1 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_2'));\n";
myHTML += "         chart.draw ( data2, options2 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_3'));\n";
myHTML += "         chart.draw ( data3, options3 );\n";
myHTML += "        setInterval ( function () {\n";
myHTML += "         Act_1 ();\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_1'));\n";
myHTML += "        data1.setValue ( 0, 1, temp_1 );\n";
myHTML += "         chart.draw ( data1, options1 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_2'));\n";
myHTML += "        data2.setValue ( 0, 1, temp_2 );\n";
myHTML += "         chart.draw ( data2, options2 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_3'));\n";
myHTML += "        data3.setValue ( 0, 1, temp_3 );\n";
myHTML += "         chart.draw ( data3, options3 );\n";
myHTML += "         } ,15000 );\n";
myHTML += "      }\n";
myHTML += "       function Act_1() {\n";
myHTML += "       var xmlhttp = new XMLHttpRequest();\n";
myHTML += "           xmlhttp.onreadystatechange = function() {\n";
myHTML += "             if (this.readyState == 4 && this.status == 200) {\n";
myHTML += "               if (this.responseXML != null ) {\n";
myHTML += "                 temp_1 = this.responseXML.getElementsByTagName('analog')[0].childNodes[0].nodeValue;\n";
myHTML += "                 temp_2 = this.responseXML.getElementsByTagName('analog1')[0].childNodes[0].nodeValue;\n";
myHTML += "                 temp_3 = this.responseXML.getElementsByTagName('analog2')[0].childNodes[0].nodeValue;\n";
myHTML += "               }\n";
myHTML += "             }\n";
myHTML += "           }\n";
myHTML += "           xmlhttp.open(\"GET\", \"/act1\", true);\n";
myHTML += "           xmlhttp.send(null);\n";
myHTML += "       }\n";
myHTML += "   </script>\n";
myHTML += "  </head>\n";
myHTML += "  <body onload=\"drawChart_1()\">\n";
myHTML += "    <div id=\"chart_div_1\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "    <div id=\"chart_div_2\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "    <div id=\"chart_div_3\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "  </body>\n";
myHTML += "</html>\n";
//myHTML += "               document.getElementById('chart_div_2').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n";
//myHTML += "               document.getElementById('chart_div_1').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n"
}
void buildXML_1(){
  //float t = Get_temp_1  ();
  digitalWrite(led, 1);
 
  XML="<?xml version=\"1.0\"?>\n";
  XML+="<input>\n";
  XML+="<analog>";
  XML+= String( teplota,1);
  XML+="</analog>\n";
  XML+="<analog1>";
  XML+= String( teplota_2,1);
  XML+="</analog1>\n";
  XML+="<analog2>";
  XML+= String(volts,2);
  XML+="</analog2>\n";
  XML+="</input>\n";
 
  digitalWrite(led, 0);
}


void buildXML_2(){
  //float t = Get_temp_2  ();
  digitalWrite(led, 1);
  XML="<?xml version=\"1.0\"?>\n";
  XML+="<response>";
  XML+= String(Get_temp_2 (),1);
  XML+="</response>\n";
  digitalWrite(led, 0);
}



void buildXML_3(){
  //float t = Get_temp_0  ();
  digitalWrite(led, 1);
  XML="<?xml version=\"1.0\"?>\n";
  XML+="<response>";
  XML+= String(Get_A0 (),2);
  XML+="</response>\n";
  digitalWrite(led, 0);
}



void handleAct1 (){
   buildXML_1();
  server.send(200,"text/xml",XML);
  digitalWrite(led, 0);
  delay(100);
  main_cycle++;
  server.send(200,"text/xml",XML);
  digitalWrite(led, 0);
  if (main_cycle > 3 ){
    Serial.println("Sleep_act1");
    ESP.deepSleep (3e6);
    Serial.println("Wake");
   }
  //Serial.print("Sleep");
  //ESP.deepSleep (8e6);
  delay(100);
  //ESP.restart ();
  Serial.print("Wake");
  //server.send(200, "text/plain", String(Get_temp_1 (),1) );
  //DBG_OUTPUT_PORT.print(message);
}

void handleAct2 (){
   buildXML_2();
  server.send(200,"text/xml",XML);
 
  digitalWrite(led, 0);
  //delay(9500);
  //Serial.print("Sleep");
  //ESP.deepSleep (8000, WAKE_RF_DEFAULT);
  //ESP.deepSleep (19e6);
  //delay(100);
  //ESP.restart ();
 // Serial.print("Wake");
    //server.send(200, "text/plain", String(Get_temp_2 (),1) );
  //DBG_OUTPUT_PORT.print(message);
}

void handleAct3 (){
   buildXML_3();
   main_cycle++;
  server.send(200,"text/xml",XML);
  digitalWrite(led, 0);
  //if (main_cycle > 1 ){
  //  Serial.println("Sleep");
  //  ESP.deepSleep (7e6);
  //  Serial.println("Wake");
  // }
  //pinMode(D2, INPUT);
  //digitalWrite(D2, 0);   //delay(9500);
 
  //server.send(200, "text/plain", String(Get_temp_0 (),1) );
  //DBG_OUTPUT_PORT.print(message);
}


void handleRoot() { 
    //sensor.requestTemperatures();
    server.send(200, "text/plain", String(Get_temp_1 (),1) );
}

void handleWebsite(){
   generateHTML();
  server.send(200,"text/html",myHTML);
}

Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » čtv pro 27, 2018 10:53 am

rottenkiwi píše:Tak to daj na SPIFFS.

Tak to bych fakt rád ale nevím jak nato.
Když splácávám tyto dva návody dohromady tak mi ti nejede
http://www.arduino8.cz/hrajeme-si-wemos ... em-spiffs/
https://startingelectronics.org/tutoria ... eb-server/

Vypadá to takto
Kód: Vybrat vše

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <FS.h>                 // knihovna pro souborový systém
#define REQ_BUF_SZ 50   // velikost vyrovnávací paměti používaná k zachycení požadavků HTTP

char HTTP_req[REQ_BUF_SZ] = {0}; // požadovaný protokol HTTP uložený jako null ukončený řetězec
char req_index = 0;              // index do vyrovnávací paměti HTTP_req

float NapetiBB1 = 0;
float NapetiBB2 = 22;
float IvstupAX = 15;
int Bojler = -8;

//String HTTP_req;
const char* ssid = "Petrzobran";        // upravte nastavení WIFI podle sebe
const char* password = "50067123";// upravte nastavení WIFI podle sebe
ESP8266WebServer server(80);
//WiFiServer server(80);
WiFiClient client;
void setup(void){
 
    SPIFFS.begin();
    Serial.begin(115200);
    Serial.printf("Connecting to %s\n", ssid);
  if (String(WiFi.SSID()) != String(ssid)) {
    WiFi.begin(ssid, password);
  }
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected! IP address: ");
  Serial.println(WiFi.localIP());
 
 
 
  server.begin();  //start serveru
}
 
void loop(void){


  server.handleClient(); // ošetřuj požadavky klienta
WiFiClient client = server.available();
  if (client) {  // má klienta?
     Serial.print(" a ");
    boolean currentLineIsBlank = true;
    while (client.connected()) {
       Serial.print(" b ");
      if (client.available()) {   // data klienta ke čtení k dispozici
         Serial.print(" c ");
        char c = client.read(); // číst 1 bajt (znak) od klienta
        // vyrovnávací paměť první části HTTP požadavku v poli HTTP_req (řetězec)
        // ponechat poslední prvek v poli jako 0 až null ukončení řetězce (REQ_BUF_SZ - 1)
        if (req_index < (REQ_BUF_SZ - 1)) {
          HTTP_req[req_index] = c;          //uložit znak HTTP požadavku
          req_index++;
        }
        // poslední řádek požadavku klienta je prázdný a končí \ n
        // odpovědět klientovi pouze po přijetí posledního řádku
        if (c == '\n' && currentLineIsBlank) {
          // odeslat standardní záhlaví odpovědi http
          client.println("HTTP/1.1 200 OK");
          // zbytek záhlaví je uveden níže, v závislosti na tom, zda
          // webová stránka nebo stránka XML
          // Požadavek Ajax - odeslání souboru XML
          if (StrContains(HTTP_req, "ajax_inputs")) {
            // odeslat zbytek záhlaví HTTP protokolu
            client.println("Content-Type: text/xml");
            client.println("Connection: keep-alive");
            client.println();
            // odeslat XML soubor obsahující vstupní stavy
            XML_response(client);
          }
          else {  // požadavek webové stránky
            // odeslat zbytek záhlaví HTTP protokolu
            client.println("Content-Type: text/html");
            client.println("Connection: keep-alive");
            client.println();
            // odeslat webovou stránku
           // pokud je zadán pouze název serveru proveď funkci "Zpracuj požadavek" 
server.on("/", ZpracujPozadavek);          }
          // zobrazení přijaté HTTP žádosti na sériovém portu
          Serial.print(HTTP_req);
          // obnovit index vyrovnávací paměti a všechny prvky vyrovnávací paměti na hodnotu 0
          req_index = 0;
          StrClear(HTTP_req, REQ_BUF_SZ);
          break;
        }
        // každý řádek textu přijatý od klienta končí \ r \ n
        if (c == '\n') {
          // poslední znak na řádku přijatého textu
          //  číst začátek nového řádku s dalším znakem
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // textový znak byl přijat od klienta
          currentLineIsBlank = false;
        }
      } // end if (client.available())
    } // end while (client.connected())
    delay(1);      // poskytnout čas webový prohlížeči pro příjem dat
    client.stop(); // zavřete připojení
  } // end if (client)
}
// deklarace funkce Zpracuj požadavek
void ZpracujPozadavek()

   Serial.print(" d ");
// vytvoří proměnou soubor s názvem "file" a otevře ho pro čtení 
   File file = SPIFFS.open("/index.htm", "r");
// odešle data ze souboru file jako prostý text
   size_t sent = server.streamFile(file, "text/html");
// zavře soubor file 
   file.close();
}


//***********************************************************
// odeslat soubor XML obsahující analogoé hodnoty
void XML_response(WiFiClient cl)//---------------------------------------------
{

 Serial.print(" e ");
  cl.print("<?xml version = \"1.0\" ?>");
  cl.print("<inputs>");

  cl.print("<analog>");
  cl.print(NapetiBB1);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(NapetiBB2);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(IvstupAX);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(dxxxx);
  cl.print("</analog>");
 
  cl.print("</inputs>");
}

// nastaví každý prvek str na hodnotu 0 (vymaže pole)
void StrClear(char *str, char length)//--------------------------------------------
{
  for (int i = 0; i < length; i++) {
    str[i] = 0;
  }
}

// vyhledá řetězec sfind v řetězci str
// vrátí 1, pokud je nalezen řetězec
// vrátí 0, pokud řetězec nebyl nalezen
char StrContains(char *str, char *sfind)
{
  char found = 0;
  char index = 0;
  char len;

  len = strlen(str);

  if (strlen(sfind) > len) {
    return 0;
  }
  while (index < len) {
    if (str[index] == sfind[found]) {
      found++;
      if (strlen(sfind) == found) {
        return 1;
      }
    }
    else {
      found = 0;
    }
    index++;
  }
  return 0;
}
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » čtv pro 27, 2018 11:11 am

POšli mi do PM celý kód, aký máš a ja to skúsim urobiť o 2 - 3 hod, keď už nebudú vo mne lieky,
lebo teraz mi nefuguje pamať.

Tak vzskúšaj toto, či sa zjavia budíky:
Kód: Vybrat vše
#include <ESP8266WiFi.h>
//#include <DallasTemperature.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>



float NapetiBB1 = 0;
float NapetiBB2 = 22;
float IvstupAX = 15;
int Bojler = -8;
 
const char* ssid = "Petrzobran";        // upravte nastavení WIFI podle sebe
const char* password = "50067123";    // upravte nastavení WIFI podle sebe
ESP8266WebServer server(80);
//WiFiServer server(80);
WiFiClient client;

String myHTML = "";
String XML;

 const int led = BUILTIN_LED;


void handleNotFound(){
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET)?"GET":"POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i=0; i<server.args(); i++){
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}



void generateHTML(){
myHTML="<!DOCTYPE HTML>\n";
myHTML +="<html>\n";
myHTML +="<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\">\n";
myHTML += "  <head>\n";
myHTML += "<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>\n";
myHTML += "   <script type=\"text/javascript\">\n";
myHTML += "   var IP = \"192.168.1.12\";\n";
myHTML += "   var temp_1 = 10;\n";
myHTML += "   var temp_2 = 20;\n";
myHTML += "   var temp_3 = 30;\n";
myHTML += "      google.charts.load('current', {'packages':['gauge']});\n";
myHTML += "      google.charts.setOnLoadCallback(drawChart_1);\n";
myHTML += "      function drawChart_1() {\n";
myHTML += "        nocache = \"&nocache=\" + Math.random() * 1000000;\n";
myHTML += "        var data1 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['LiFeTemp', temp_1]\n";
myHTML += "        ]);\n";
myHTML += "        var data2 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['T_Axpert', temp_2]\n";
myHTML += "        ]);\n";
myHTML += "        var data3 = google.visualization.arrayToDataTable([\n";
myHTML += "          ['Label', 'Value'],\n";
myHTML += "          ['Batt.Volt', temp_3]\n";
myHTML += "        ]);\n";
myHTML += "        var options1 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          blueFrom: 30, blueTo: 40,\n";
myHTML += "          redFrom: 90, redTo: 100,\n";
myHTML += "          yellowFrom:70, yellowTo: 90,\n";
myHTML += "          greenFrom: 10, greenTo: 25,\n";
myHTML += "          minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var options2 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          blueFrom: 10, blueTo: 20,\n";
myHTML += "          redFrom: 90, redTo: 100,\n";
myHTML += "          greenFrom: 20, greenTo: 25,\n";
myHTML += "          yellowFrom:75, yellowTo: 90,\n";
myHTML += "          minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var options3 = {\n";
myHTML += "          width: 400, height: 400,\n";
myHTML += "          min: 10.0, max: 35.0,\n";
myHTML += "          greenFrom: 22.8, greenTo: 26.8,\n";
myHTML += "          redFrom: 27.6, redTo: 30.0,\n";
myHTML += "          yellowFrom: 26.8, yellowTo: 27.6,\n";
myHTML += "          majorTicks:5, minorTicks: 10\n";
myHTML += "        };\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_1'));\n";
myHTML += "         chart.draw ( data1, options1 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_2'));\n";
myHTML += "         chart.draw ( data2, options2 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_3'));\n";
myHTML += "         chart.draw ( data3, options3 );\n";
myHTML += "        setInterval ( function () {\n";
myHTML += "         Act_1 ();\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_1'));\n";
myHTML += "        data1.setValue ( 0, 1, temp_1 );\n";
myHTML += "         chart.draw ( data1, options1 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_2'));\n";
myHTML += "        data2.setValue ( 0, 1, temp_2 );\n";
myHTML += "         chart.draw ( data2, options2 );\n";
myHTML += "        var chart = new google.visualization.Gauge(document.getElementById('chart_div_3'));\n";
myHTML += "        data3.setValue ( 0, 1, temp_3 );\n";
myHTML += "         chart.draw ( data3, options3 );\n";
myHTML += "         } ,15000 );\n";
myHTML += "      }\n";
myHTML += "       function Act_1() {\n";
myHTML += "       var xmlhttp = new XMLHttpRequest();\n";
myHTML += "           xmlhttp.onreadystatechange = function() {\n";
myHTML += "             if (this.readyState == 4 && this.status == 200) {\n";
myHTML += "               if (this.responseXML != null ) {\n";
myHTML += "                 temp_1 = this.responseXML.getElementsByTagName('analog')[0].childNodes[0].nodeValue;\n";
myHTML += "                 temp_2 = this.responseXML.getElementsByTagName('analog1')[0].childNodes[0].nodeValue;\n";
myHTML += "                 temp_3 = this.responseXML.getElementsByTagName('analog2')[0].childNodes[0].nodeValue;\n";
myHTML += "               }\n";
myHTML += "             }\n";
myHTML += "           }\n";
myHTML += "           xmlhttp.open(\"GET\", \"/act1\", true);\n";
myHTML += "           xmlhttp.send(null);\n";
myHTML += "       }\n";
myHTML += "   </script>\n";
myHTML += "  </head>\n";
myHTML += "  <body onload=\"drawChart_1()\">\n";
myHTML += "    <div id=\"chart_div_1\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "    <div id=\"chart_div_2\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "    <div id=\"chart_div_3\" style=\"width: 400px; height: 400px; float: left;\"></div>\n";
myHTML += "  </body>\n";
myHTML += "</html>\n";
//myHTML += "               document.getElementById('chart_div_2').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n";
//myHTML += "               document.getElementById('chart_div_1').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n"
}



void buildXML_1(){
  //float t = Get_temp_1  ();
  digitalWrite(led, 1);
 
  XML="<?xml version=\"1.0\"?>\n";
  XML+="<input>\n";
  XML+="<analog>";
  XML+= String(NapetiBB1 ,1);
  XML+="</analog>\n";
  XML+="<analog1>";
  XML+= String(NapetiBB2 ,1);
  XML+="</analog1>\n";
  XML+="<analog2>";
  XML+= String( IvstupAX,2);
  XML+="</analog2>\n";
  XML+="</input>\n";
 
  digitalWrite(led, 0);
}









void handleAct1 (){
   buildXML_1();
  server.send(200,"text/xml",XML);
  digitalWrite(led, 0);
 
 
    Serial.println("Sleep_act1");
    ESP.deepSleep (3e6);
    Serial.println("Wake");
 
  Serial.print("Wake");
  //server.send(200, "text/plain", String(Get_temp_1 (),1) );
  //DBG_OUTPUT_PORT.print(message);
}






void handleWebsite(){
   generateHTML();
  server.send(200,"text/html",myHTML);
}

/*
void handleRoot() { 
    sensor.requestTemperatures();
    server.send(200, "text/plain", String(sensor.getTempCByIndex(0), 1));
}


void handleRoot() {
 
  digitalWrite(led, 1); 

  Serial.println();
  String message = "";
  message += server.args();
  message += "\n";
  for (uint8_t i=0; i<server.args(); i++){
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  Serial.println(message);
  if (server.args()==0)
  {
    generateHTML();
    server.send(200, "text/html", myHTML);
  }
  else
  {}
 
 
  digitalWrite(led, 0);
}

*/
 
void setup(void){
  //sensor.begin();

  pinMode (A0, INPUT);
  pinMode(led, OUTPUT);
  pinMode(D2, INPUT);
    //digitalWrite(D2, 1);
  digitalWrite(led, 0);
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  Serial.println("");
 
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }
 
  server.on("/", handleWebsite);
  server.on("/act1", handleAct1);
  //server.on("/act2", handleAct2);
  //server.on("/act3", handleAct3);
  //server.on("/edit", HTTP_PUT, handleCreate);
 // server.on("/inline", [](){server.send(200, "text/plain", "this works as well");});
  server.onNotFound(handleNotFound);
 
  server.begin();
  Serial.println("HTTP server started");
  //
 
}
 
void loop(void){

  server.handleClient();
 
  server.send(200,"text/xml",XML);
  digitalWrite(led, 0);
 
    Serial.println("Sleep_loop");
    delay (900);
    ESP.deepSleep (4e6);
    Serial.println("Wake");

}

void XML_response(WiFiClient cl)//---------------------------------------------
{

 Serial.print(" e ");
  cl.print("<?xml version = \"1.0\" ?>");
  cl.print("<inputs>");

  cl.print("<analog>");
  cl.print(NapetiBB1);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(NapetiBB2);
  cl.print("</analog>");
  cl.print("<analog>");
  cl.print(IvstupAX);
  cl.print("</analog>");
  //cl.print("<analog>");
  //cl.print(dxxxx);
  //cl.print("</analog>");
 
  cl.print("</inputs>");
}

// nastaví každý prvek str na hodnotu 0 (vymaže pole)
void StrClear(char *str, char length)//--------------------------------------------
{
  for (int i = 0; i < length; i++) {
    str[i] = 0;
  }
}

// vyhledá řetězec sfind v řetězci str
// vrátí 1, pokud je nalezen řetězec
// vrátí 0, pokud řetězec nebyl nalezen
char StrContains(char *str, char *sfind)
{
  char found = 0;
  char index = 0;
  char len;

  len = strlen(str);

  if (strlen(sfind) > len) {
    return 0;
  }
  while (index < len) {
    if (str[index] == sfind[found]) {
      found++;
      if (strlen(sfind) == found) {
        return 1;
      }
    }
    else {
      found = 0;
    }
    index++;
  }
  return 0;
}

 

Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 3:36 pm

Už jsem z toho nešťastnej. Tyden se stím otravuju a pořád nic :(
index.htm na SPIFFS nejsem schopen zprovoznit.
webSite += " "; a myHTML +=" "; jsem se chtěl vyhnout.
SD karta s Wemos nevím proč, ale kolabuje.
Tak jsem vypotil toto:
Kód: Vybrat vše
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
//#define CS 15                   //define chip select line for manual control
ESP8266WebServer server(80);
const char* ssid="Petrzobran";
const char* password="50067123";
String webSite,javaScript,XML;
float data=0;

void buildWebsite(){
  buildJavascript();

webSite += "<!DOCTYPE html>\n";
webSite += "<html>\n";
webSite += "    <head>\n";
webSite += "        <title>Arduino Ajax Two Dial</title>\n";
webSite += javaScript;
webSite += "    </head>\n";
webSite += "    <body onload=\"GetArduinoInputs()\">\n";
webSite += "        <canvas id=\"an_gauge_1\"  data-title=\"Vstup cisty do rek\" data-units=\"V\" width=\"320\" height=\"320\" data-major-ticks=\"0 100 200 300 400 500 600 700 800 900 1000 1100\" data-type=\"canv-gauge\" data-min-value=\"0\" data-max-value=\"1100\"   data-highlights=\"-10 0 #4D89F2, 0 20 #25B8D9, 20 25 #0BB950, 25 35 #ff0000\" data-onready=\"setInterval( function() { Gauge.Collection.get('an_gauge_1').setValue(data_val);}, 200);\"></canvas>\n";
webSite += "    </body>\n";
webSite += "</html>\n";
}

void buildJavascript(){
javaScript += "        <script>\n";
javaScript += "        var data_val=0;\n";
javaScript += "   eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('t W=v(f){W.2t.3T(A);A.B={Z:2u,19:1q,1h:1q,1J:U,1b:D,K:0,V:[\'0\',\'20\',\'40\',\'2A\',\'2B\',\'D\'],2r:10,2C:M,1E:U,2q:{2D:3,2E:2},2H:M,1c:{2j:10,2m:3y,2O:\'3v\'},J:{2P:\'#4h\',V:\'#31\',2r:\'#3k\',1J:\'#37\',1E:\'#37\',3e:\'#31\',1t:{2s:\'1e(3Y, 3d, 3d, 1)\',3c:\'1e(1Y, 5I, 5E, .9)\'}},1o:[{1n:20,1D:2A,1F:\'#3j\'},{1n:2A,1D:2B,1F:\'#36\'},{1n:2B,1D:D,1F:\'#5n\'}]};t g=0,1p=A,N=0,1S=0,1G=U;A.5d=v(a){N=f.1c?g:a;t b=(f.1b-f.K)/D;1S=a>f.1b?1S=f.1b+b:a<f.K?f.K-b:a;g=a;f.1c?3l():A.1g();C A};A.3m=v(a){N=g=a;A.1g();C A};A.4T=v(){g=N=1S=A.B.K;A.1g();C A};A.4R=v(){C g};A.13=v(){};v 2k(a,b){Q(t i 4P b){z(1H b[i]==\"1W\"&&!(4O.4y.2V.4p(b[i])===\'[1W 4n]\')&&i!=\'Z\'){z(1H a[i]!=\"1W\"){a[i]={}}2k(a[i],b[i])}O{a[i]=b[i]}}};2k(A.B,f);A.B.K=1R(A.B.K);A.B.1b=1R(A.B.1b);f=A.B;N=g=f.K;z(!f.Z){4m 4j(\"4g 4d 4b 46 44 41 3Z 3W W 1W!\");}t j=f.Z.5K?f.Z:2R.5v(f.Z),q=j.3u(\'2d\'),1i,1y,1A,14,17,u,1d;v 2M(){j.19=f.19;j.1h=f.1h;1i=j.4s(M);1d=1i.3u(\'2d\');1y=j.19;1A=j.1h;14=1y/2;17=1A/2;u=14<17?14:17;1i.2J=U;1d.3P(14,17);1d.G();q.3P(14,17);q.G()};2M();A.4Z=v(a){2k(A.B,a);2M();A.1g();C A};t k={4q:v(p){C p},4e:v(p){C E.1L(p,2)},4c:v(p){C E.1L(p,5)},3v:v(p){C 1-E.1O(E.5C(p))},5k:v(p){C 1-(v(p){Q(t a=0,b=1;1;a+=b,b/=2){z(p>=(7-4*a)/11){C-E.1L((11-6*a-11*p)/4,2)+E.1L(b,2)}}})(1-p)},4S:v(p){C 1-(v(p){t x=1.5;C E.1L(2,10*(p-1))*E.1T(20*E.1a*x/3*p)})(1-p)}};t l=2u;v 3S(d){t e=2v 3R;l=2x(v(){t a=2v 3R-e,1M=a/d.2m;z(1M>1){1M=1}t b=1H d.2g==\"v\"?d.2g:k[d.2g];t c=b(1M);d.3Q(c);z(1M==1){2b(l)}},d.2j||10)};v 3l(){l&&2b(l);t b=(1S-N),1n=N,29=f.1c;3S({2j:29.2j,2m:29.2m,2g:29.2O,3Q:v(a){N=1R(1n)+b*a;1p.1g()}})};q.5l=\"3O\";A.1g=v(){z(!1i.2J){1d.3M(-14,-17,1y,1A);1d.G();t a=q;q=1d;3L();3K();3I();3H();3F();3D();3z();1i.2J=M;q=a;5G a}q.3M(-14,-17,1y,1A);q.G();q.4a(1i,-14,-17,1y,1A);z(!W.28){t b=2x(v(){z(!W.28){C}2b(b);2K();2L();z(!1G){1p.13&&1p.13();1G=M}},10)}O{2K();2L();z(!1G){1p.13&&1p.13();1G=M}}C A};v S(a){C a*E.1a/4J};v 1l(a,b,c){t d=q.4Y(0,0,0,c);d.1V(0,a);d.1V(1,b);C d};v 3L(){t a=u/D*5g,3x=u-a,2a=u/D*5q,5u=u-2a,1f=u/D*5z,5A=u-1f;3t=u/D*5F;q.G();z(f.2H){q.2o=3x;q.2n=\'1e(0, 0, 0, 0.5)\'}q.P();q.16(0,0,a,0,E.1a*2,M);q.L=1l(\'#42\',\'#43\',a);q.T();q.R();q.P();q.16(0,0,2a,0,E.1a*2,M);q.L=1l(\'#49\',\'#36\',2a);q.T();q.P();q.16(0,0,1f,0,E.1a*2,M);q.L=1l(\'#3j\',\'#3s\',1f);q.T();q.P();q.16(0,0,3t,0,E.1a*2,M);q.L=f.J.2P;q.T();q.G()};v 3H(){t r=u/D*2T;q.2e=2;q.2U=f.J.V;q.G();Q(t i=0;i<f.V.H;++i){t a=45+i*(1U/(f.V.H-1));q.1z(S(a));q.P();q.1K(0,r);q.F(0,r-u/D*15);q.1X();q.R();q.G()}z(f.2C){q.1z(S(2X));q.P();q.16(0,0,r,S(45),S(4N),U);q.1X();q.R();q.G()}};v 3I(){t r=u/D*2T;q.2e=1;q.2U=f.J.2r;q.G();t b=f.2r*(f.V.H-1);Q(t i=0;i<b;++i){t a=45+i*(1U/b);q.1z(S(a));q.P();q.1K(0,r);q.F(0,r-u/D*7.5);q.1X();q.R();q.G()}};v 3F(){t r=u/D*55;Q(t i=0;i<f.V.H;++i){t a=45+i*(1U/(f.V.H-1)),p=1w(r,S(a));q.1x=20*(u/1q)+\"2i 2Y\";q.L=f.J.3e;q.2e=0;q.2h=\"2f\";q.27(f.V[i],p.x,p.y+3)}};v 3D(){z(!f.1J){C}q.G();q.1x=24*(u/1q)+\"2i 2Y\";q.L=f.J.1J;q.2h=\"2f\";q.27(f.1J,0,-u/4.25);q.R()};v 3z(){z(!f.1E){C}q.G();q.1x=22*(u/1q)+\"2i 2Y\";q.L=f.J.1E;q.2h=\"2f\";q.27(f.1E,0,u/3.25);q.R()};v 32(a){t b=f.2q.2E,34=f.2q.2D;a=1R(a);t n=(a<0);a=E.35(a);z(b>0){a=a.5t(b).2V().1j(\'.\');Q(t i=0,s=34-a[0].H;i<s;++i){a[0]=\'0\'+a[0]}a=(n?\'-\':\'\')+a[0]+\'.\'+a[1]}O{a=E.3O(a).2V();Q(t i=0,s=34-a.H;i<s;++i){a=\'0\'+a}a=(n?\'-\':\'\')+a}C a};v 1w(r,a){t x=0,y=r,1O=E.1O(a),1T=E.1T(a),X=x*1T-y*1O,Y=x*1O+y*1T;C{x:X,y:Y}};v 3K(){q.G();t a=u/D*2T;t b=a-u/D*15;Q(t i=0,s=f.1o.H;i<s;i++){t c=f.1o[i],39=(f.1b-f.K)/1U,1P=S(45+(c.1n-f.K)/39),1N=S(45+(c.1D-f.K)/39);q.P();q.1z(S(2X));q.16(0,0,a,1P,1N,U);q.R();q.G();t d=1w(b,1P),3a=1w(a,1P);q.1K(d.x,d.y);q.F(3a.x,3a.y);t e=1w(a,1N),3b=1w(b,1N);q.F(e.x,e.y);q.F(3b.x,3b.y);q.F(d.x,d.y);q.1C();q.L=c.1F;q.T();q.P();q.1z(S(2X));q.16(0,0,b,1P-0.2,1N+0.2,U);q.R();q.1C();q.L=f.J.2P;q.T();q.G()}};v 2L(){t a=u/D*12,1f=u/D*8,1u=u/D*3X,1r=u/D*20,2l=u/D*4,1B=u/D*2,38=v(){q.3f=2;q.3g=2;q.2o=10;q.2n=\'1e(5L, 3h, 3h, 0.45)\'};38();q.G();z(N<0){N=E.35(f.K-N)}O z(f.K>0){N-=f.K}O{N=E.35(f.K)+N}q.1z(S(45+N/((f.1b-f.K)/1U)));q.P();q.1K(-1B,-1r);q.F(-2l,0);q.F(-1,1u);q.F(1,1u);q.F(2l,0);q.F(1B,-1r);q.1C();q.L=1l(f.J.1t.2s,f.J.1t.3c,1u-1r);q.T();q.P();q.F(-0.5,1u);q.F(-1,1u);q.F(-2l,0);q.F(-1B,-1r);q.F(1B/2-2,-1r);q.1C();q.L=\'1e(1Y, 1Y, 1Y, 0.2)\';q.T();q.R();38();q.P();q.16(0,0,a,0,E.1a*2,M);q.L=1l(\'#3s\',\'#36\',a);q.T();q.R();q.P();q.16(0,0,1f,0,E.1a*2,M);q.L=1l(\"#47\",\"#48\",1f);q.T()};v 3i(x,y,w,h,r){q.P();q.1K(x+r,y);q.F(x+w-r,y);q.23(x+w,y,x+w,y+r);q.F(x+w,y+h-r);q.23(x+w,y+h,x+w-r,y+h);q.F(x+r,y+h);q.23(x,y+h,x,y+h-r);q.F(x,y+r);q.23(x,y,x+r,y);q.1C()};v 2K(){q.G();q.1x=40*(u/1q)+\"2i 30\";t a=32(g),2Z=q.4f(\'-\'+32(0)).19,y=u-u/D*33,x=0,2W=0.12*u;q.G();3i(-2Z/2-0.21*u,y-2W-0.4i*u,2Z+0.3n*u,2W+0.4k*u,0.21*u);t b=q.4l(x,y-0.12*u-0.21*u+(0.12*u+0.3o*u)/2,u/10,x,y-0.12*u-0.21*u+(0.12*u+0.3o*u)/2,u/5);b.1V(0,\"#37\");b.1V(1,\"#3k\");q.2U=b;q.2e=0.3n*u;q.1X();q.2o=0.3p*u;q.2n=\'1e(0, 0, 0, 1)\';q.L=\"#4o\";q.T();q.R();q.3f=0.3q*u;q.3g=0.3q*u;q.2o=0.3p*u;q.2n=\'1e(0, 0, 0, 0.3)\';q.L=\"#31\";q.2h=\"2f\";q.27(a,-x,y);q.R()}};W.28=U;(v(){t d=2R,h=d.3r(\'4r\')[0],2S=4t.4u.4v().4w(\'4x\')!=-1,2Q=\'4z://4A-4B.4C/4D/4E/4F-7-4G.\'+(2S?\'4H\':\'4I\'),1I=\"@1x-4K {\"+\"1x-4L: \'30\';\"+\"4M: 2Q(\'\"+2Q+\"\');\"+\"}\",1s,r=d.3w(\'1v\');r.2N=\'1I/4Q\';z(2S){h.2p(r);1s=r.2I;1s.3A=1I}O{4U{r.2p(d.4V(1I))}4W(e){r.3A=1I}h.2p(r);1s=r.2I?r.2I:(r.4X||d.3B[d.3B.H-1])}t b=2x(v(){z(!d.3C){C}2b(b);t a=d.3w(\'50\');a.1v.51=\'30\';a.1v.52=\'53\';a.1v.1h=a.1v.19=0;a.1v.54=\'56\';a.57=\'.\';d.3C.2p(a);58(v(){W.28=M;a.59.5a(a)},3y)},1)})();W.2t=[];W.2t.5b=v(a){z(1H(a)==\'5c\'){Q(t i=0,s=A.H;i<s;i++){z(A[i].B.Z.18(\'5e\')==a){C A[i]}}}O z(1H(a)==\'5f\'){C A[a]}O{C 2u}};v 3E(a){z(2G.3G){2G.3G(\'5h\',a,U)}O{2G.5i(\'5j\',a)}}3E(v(){v 2F(a){t b=a[0];Q(t i=1,s=a.H;i<s;i++){b+=a[i].1Z(0,1).5m()+a[i].1Z(1,a[i].H-1)}C b};v 3J(a){C a.5o(/^\\s+|\\s+$/g,\'\')};t c=2R.3r(\'5p\');Q(t i=0,s=c.H;i<s;i++){z(c[i].18(\'1k-2N\')==\'5r-5s\'){t d=c[i],B={},1m,w=2c(d.18(\'19\')),h=2c(d.18(\'1h\'));B.Z=d;z(w){B.19=w}z(h){B.1h=h}Q(t e=0,1s=d.3N.H;e<1s;e++){1m=d.3N.5w(e).5x;z(1m!=\'1k-2N\'&&1m.1Z(0,5)==\'1k-\'){t f=1m.1Z(5,1m.H-5).5y().1j(\'-\'),I=d.18(1m);z(!I){2z}5B(f[0]){2y\'J\':{z(f[1]){z(!B.J){B.J={}}z(f[1]==\'1t\'){t k=I.1j(/\\s+/);z(k[0]&&k[1]){B.J.1t={2s:k[0],3c:k[1]}}O{B.J.1t=I}}O{f.5D();B.J[2F(f)]=I}}26}2y\'1o\':{z(!B.1o){B.1o=[]}2w=I.1j(\',\');Q(t j=0,l=2w.H;j<l;j++){t m=3J(2w[j]).1j(/\\s+/),1Q={};z(m[0]&&m[0]!=\'\'){1Q.1n=m[0]}z(m[1]&&m[1]!=\'\'){1Q.1D=m[1]}z(m[2]&&m[2]!=\'\'){1Q.1F=m[2]}B.1o.3T(1Q)}26}2y\'1c\':{z(f[1]){z(!B.1c){B.1c={}}z(f[1]==\'2O\'&&/^\\s*v\\s*\\(/.5H(I)){I=3U(\'(\'+I+\')\')}B.1c[f[1]]=I}26}5J:{t n=2F(f);z(n==\'13\'){2z}z(n==\'V\'){I=I.1j(/\\s+/)}O z(n==\'2C\'||n==\'2H\'){I=I==\'M\'?M:U}O z(n==\'2q\'){t o=I.1j(\'.\');z(o.H==2){I={2D:2c(o[0]),2E:2c(o[1])}}O{2z}}B[n]=I;26}}}}t g=2v W(B);z(d.18(\'1k-3V\')){g.3m(1R(d.18(\'1k-3V\')))}z(d.18(\'1k-13\')){g.13=v(){3U(A.B.Z.18(\'1k-13\'))}}g.1g()}}});',62,358,'||||||||||||||||||||||||||ctx|||var|max|function||||if|this|config|return|100|Math|lineTo|save|length|attrValue|colors|minValue|fillStyle|true|fromValue|else|beginPath|for|restore|radians|fill|false|majorTicks|Gauge|||renderTo||||onready|CX||arc|CY|getAttribute|width|PI|maxValue|animation|cctx|rgba|r2|draw|height|cache|split|data|lgrad|prop|from|highlights|self|200|rOut|ss|needle|rIn|style|rpoint|font|CW|rotate|CH|pad2|closePath|to|units|color|imready|typeof|text|title|moveTo|pow|progress|ea|sin|sa|hlCfg|parseFloat|toValue|cos|270|addColorStop|object|stroke|255|substr||025||quadraticCurveTo|||break|fillText|initialized|cfg|r1|clearInterval|parseInt||lineWidth|center|delta|textAlign|px|delay|applyRecursive|pad1|duration|shadowColor|shadowBlur|appendChild|valueFormat|minorTicks|start|Collection|null|new|hls|setInterval|case|continue|60|80|strokeTicks|int|dec|toCamelCase|window|glow|styleSheet|i8d|drawValueBox|drawNeedle|baseInit|type|fn|plate|url|document|ie|81|strokeStyle|toString|th|90|Arial|tw|Led|444|padValue||cint|abs|ccc|888|shad|vd|pe|pe1|end|128|numbers|shadowOffsetX|shadowOffsetY|143|roundRect|eee|666|animate|setRawValue|05|045|012|004|getElementsByTagName|f0f0f0|r3|getContext|cycle|createElement|d0|250|drawUnits|cssText|styleSheets|body|drawTitle|domReady|drawNumbers|addEventListener|drawMajorTicks|drawMinorTicks|trim|drawHighlights|drawPlate|clearRect|attributes|round|translate|step|Date|_animate|push|eval|value|the|77|240|creating||when|ddd|aaa|specified||not|e8e8e8|f5f5f5|fafafa|drawImage|was|quint|element|quad|measureText|Canvas|fff|04|Error|07|createRadialGradient|throw|Array|babab2|call|linear|head|cloneNode|navigator|userAgent|toLocaleLowerCase|indexOf|msie|prototype|http|smart|ip|net|styles|fonts|digital|mono|eot|ttf|180|face|family|src|315|Object|in|css|getValue|elastic|clear|try|createTextNode|catch|sheet|createLinearGradient|updateConfig|div|fontFamily|position|absolute|overflow||hidden|innerHTML|setTimeout|parentNode|removeChild|get|string|setValue|id|number|93|DOMContentLoaded|attachEvent|onload|bounce|lineCap|toUpperCase|999|replace|canvas|91|canv|gauge|toFixed|d1|getElementById|item|nodeName|toLowerCase|88|d2|switch|acos|shift|122|85|delete|test|160|default|tagName|188'.split('|'),0,{}))\n";
javaScript += "        function GetArduinoInputs()\n";
javaScript += "        {\n";
javaScript += "            nocache = \"&nocache=\" + Math.random() * 1000000;\n";
javaScript += "            var request = new XMLHttpRequest();\n";
javaScript += "            request.onreadystatechange = function()\n";
javaScript += "            {\n";
javaScript += "                if (this.readyState == 4) {\n";
javaScript += "                    if (this.status == 200) {\n";
javaScript += "                        if (this.responseXML != null) {\n";
javaScript += "                            document.getElementById(\"input3\").innerHTML =\n";
javaScript += "                                this.responseXML.getElementsByTagName('analog')[0].childNodes[0].nodeValue;\n";
javaScript += "                            data_val  = this.responseXML.getElementsByTagName('analog')[0].childNodes[0].nodeValue;\n";
javaScript += "                        }\n";
javaScript += "                    }\n";
javaScript += "                }\n";
javaScript += "            }\n";
javaScript += "            request.open(\"GET\", \"ajax_inputs\" + nocache, true);\n";
javaScript += "            request.send(null);\n";
javaScript += "            setTimeout('GetArduinoInputs()', 200);\n";
javaScript += "        }\n";
javaScript += "    </script>\n";
}

void buildXML(){
  XML="<?xml version='1.0'?>";
  XML+="<analog>";
  XML+=data;
  XML+="</analog>";
}

void handleWebsite(){
  buildWebsite();
  server.send(200,"text/html",webSite);
}

void handleXML(){
  buildXML();
  server.send(200,"text/xml",XML);
}

void setup() {

  Serial.begin(115200); 
  WiFi.begin(ssid,password);
  while(WiFi.status()!=WL_CONNECTED)delay(500);
  WiFi.mode(WIFI_STA);
  Serial.println("\n\nBOOTING ESP8266 ...");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("Station IP address: ");
  Serial.println(WiFi.localIP());
  server.on("/",handleWebsite);
  server.on("/xml",handleXML);
 
  server.begin(); 
}

void loop() {
// vložte zde svůj hlavní kód a spusťte opakovaně:

  data=  analogRead (0);
    Serial.println(data);
  Serial.println(WiFi.localIP());
    server.handleClient();
}

A taky to nefunguje a nevim proč :cry:
Stránka na IP adrese se nezobrazí jen toto nebo nějaká takováto obdoba
11.png

ale pokud dam zobrazit zdrojový kod stránky zobrazí se toto
12.png
Nemáte oprávnění prohlížet přiložené soubory.
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » pát pro 28, 2018 3:41 pm

Takto to nepojde, lebo v tom reťazxi v eval ( ..... je množstvo // a " a ' a tie sa musia do reťazca
zadávať cez dve lomítka, som to síce skúšal v editore, ale nedopadlo to dobre.

Tak som urobil len tie googlacke budíky.

Keď mi príde Wemos, skúsim nad tým podumať, ale to skoro nebude.

Nedajú sa len tak kombinovať rozne knižnice, lebo potom to koliduje.
To sa týka toho prístupu na SD. Včera som o tom čítal, ale nemám to ako vyskúšať.

Keď bude Wemos a nové okuliare na čítanie, až potom.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 3:56 pm

Googlacky budíky jsem zavrhl, protože mě naladí s těmito budíky které mam už ve FVE.
Už jsem o tom / a " a ' někde slyšel, ale už si t nepamatuju. Dik že jsi mi to připoměl.
Budu dál pokračovat tímto směrěm.Snad se z toho nezblázním :lol:
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 4:20 pm

V čem ty překládáš HTML do webSite += " "; nebo myHTML +=" "
ja to někde přeložila
Originál je:......................<body onload="GetArduinoInputs()">
Přeloženo je: webSite += " <body onload=\"GetArduinoInputs()\">;
Ty \n na konci řádku jsem musel všude dopsat.
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » pát pro 28, 2018 4:23 pm

Tu tie štvrté chýbajú, tam musia byť bez lomítka.
Ja to dnes nedám, lebo fakt na to nevidím.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 4:26 pm

blbě jsem to zkopiroval
webSite += " <body onload=\"GetArduinoInputs()\">\n";
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » pát pro 28, 2018 4:34 pm

MOžno by bolo vhodné upraviť tento projekt.
viewtopic.php?f=61&t=4403

Lebo s tými \\ \" \' bude kopa roboty.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 4:51 pm

Všiml jsem si témy WeMos D1 - FSBrowser example
I FSBrowser jsem upravoval budíky baly vidět, ale neukazovaly
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » pát pro 28, 2018 4:55 pm

A komunikácia vyzerá ako ? Posiela Wemos odpoved ?
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » pát pro 28, 2018 5:24 pm

11.png
Nemáte oprávnění prohlížet přiložené soubory.
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » pát pro 28, 2018 5:27 pm

Pošli mi ten HTML kód do PM, ja sa pokúsim tam nájsť chyby.
Len ho premenuj na .txt, lebo inak ho nepošleš, alebo ho zipni.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » ned pro 30, 2018 8:18 am

rottenkiwi píše:Celý deň na troch kompoch s roznymi OS a roznymi verziami Arduino IDE, nemožem
dostať program do Wemos-u D1. Stále tá istá chyba. espcomm_open failed


Mam podobnej problem, kterej mě už dlouho pije krev. Wemos se odpojí, port zmizne. Restartuju MTB a chvíli to zas funguje.
11.png
Nemáte oprávnění prohlížet přiložené soubory.
Uživatelský avatar
petrzobran
 
Příspěvky: 133
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna

Předchozí

Zpět na Arduino

Kdo je online

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

Reputation System ©'