WeMos D1 WIFI WebServer
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
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.
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.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 169
- Registrován: čtv dub 12, 2018 2:44 pm
- Reputace: 9
- Bydliště: Trencin
Re: WeMos D1 WIFI WebServer
FVE1 - 3kW do 48V 7.2kWh LiFe cez 5kW Axpert, FVE2 domcek pre maleho - 0.26kW do 12V 0.5kWh LiFe cez Victron375, termicky ohrev vody 200 l
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
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.
Původ pochází ocať https://startingelectronics.org/tutoria ... eb-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?
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;
}
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?
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
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);
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
Tak to bych fakt rád ale nevím jak nato.rottenkiwi píše:Tak to daj na SPIFFS.
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;
}
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
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:
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;
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
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:
A taky to nefunguje a nevim proč
Stránka na IP adrese se nezobrazí jen toto nebo nějaká takováto obdoba ale pokud dam zobrazit zdrojový kod stránky zobrazí se toto
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();
}
Stránka na IP adrese se nezobrazí jen toto nebo nějaká takováto obdoba ale pokud dam zobrazit zdrojový kod stránky zobrazí se toto
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
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.
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.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
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
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
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
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.
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.
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Tu tie štvrté chýbajú, tam musia byť bez lomítka.
Ja to dnes nedám, lebo fakt na to nevidím.
Ja to dnes nedám, lebo fakt na to nevidím.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
blbě jsem to zkopiroval
webSite += " <body onload=\"GetArduinoInputs()\">\n";
webSite += " <body onload=\"GetArduinoInputs()\">\n";
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
MOžno by bolo vhodné upraviť tento projekt.
https://forum.mypower.cz/viewtopic.php?f=61&t=4403
Lebo s tými \\ \" \' bude kopa roboty.
https://forum.mypower.cz/viewtopic.php?f=61&t=4403
Lebo s tými \\ \" \' bude kopa roboty.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
Všiml jsem si témy WeMos D1 - FSBrowser example
I FSBrowser jsem upravoval budíky baly vidět, ale neukazovaly
I FSBrowser jsem upravoval budíky baly vidět, ale neukazovaly
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
A komunikácia vyzerá ako ? Posiela Wemos odpoved ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
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.
Len ho premenuj na .txt, lebo inak ho nepošleš, alebo ho zipni.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
- petrzobran
- Příspěvky: 147
- Registrován: sob pro 07, 2013 5:41 pm
- Reputace: 10
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
Mam podobnej problem, kterej mě už dlouho pije krev. Wemos se odpojí, port zmizne. Restartuju MTB a chvíli to zas funguje.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
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 3 Odpovědi
- 931 Zobrazení
-
Poslední příspěvek od Solarnoob
-
- 1 Odpovědi
- 950 Zobrazení
-
Poslední příspěvek od antoni_sk
-
- 3 Odpovědi
- 1410 Zobrazení
-
Poslední příspěvek od zovo
-
- 2 Odpovědi
- 1023 Zobrazení
-
Poslední příspěvek od skopec
-
-
Vyčítanie dát z regulátora Epsolar cez wifi eBox-WIFI-01
Vyčítanie dát z regulátora Epsolar cez wifi eBox-WIFI-01
- 157 Odpovědi
- 27015 Zobrazení
-
Poslední příspěvek od Forrest
-
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot] a 0 hostů