» Poradna » Web a internet

Sketch z random nerd ESP8266 Web server with arduino IDE nefunguje

 |   |  Microsoft Windows 7 Chrome 71.0.3578.98

Dobrý deň,som začiatočník a experimentujem s WiFi komunikáciou pomocou ESP-01.Odskúšal som už dva programy s ovládaním 1 portu cez WiFi.Fungujú oba.Zapáčil sa mi program viď titulok dotazu s dvomi tlačítkami s ovládaním 2 portov.Program sa riadne nahrá,vypíše čo má,vytvorí VEB stánku na IP adrese,zobrazí tlačítka,ale pri kliknutí na tlačítka síce prebehne komunikácia cez internet,ale stav tlačítok sa nezmení a nezmení sa ani stav portov.Porovnal som nahraný program s originálom a nezistil som žiadny rozdiel.Samotný program neviem posúdiť,lebo poznám len programovanie Arduina príkazmi z IDE.Prosím niekoho,kto vie posúdiť tento program,aby mi poradil,kde je chyba.Ďakujem a prajem pekné VianoceIvan#include <ESP8266WiFi.h> const char* ssid="HUAWEI-5S3w"; const char* password="fKYaFRcU"; WiFiServer server(80); String header; String output5State="off"; String output4State="off"; const int output5=5; const int output4=4; void setup() { // put your setup code here, to run once: Serial.begin(115200); pinMode(output5,OUTPUT); pinMode(output4,OUTPUT); digitalWrite(output5,LOW); digitalWrite(output4,LOW); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid,password); while(WiFi.status() !=WL_CONNECTED){ delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP adress:"); Serial.println(WiFi.localIP()); server.begin(); } void loop() { // put your main code here, to run repeatedly: WiFiClient client=server.available(); if(client){ Serial.println("New Client."); String currentLine=""; while (client.connected()){ if(client.available()){ char c=client.read(); Serial.write(c); header +=c; if(c=='\n'){ if(currentLine.length()==0){ client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection:close"); client.println(); if(header.indexOf("GET/5/on")>=0){ Serial.println("GPIO 5 on"); output5State="on"; digitalWrite(output5,HIGH); }else if(header.indexOf("GET/5/off")>=0){ Serial.println("GPIO 5 off"); output5State="off"; digitalWrite(output5,LOW); }else if(header.indexOf("GET/4/on")>=0){ Serial.println("GPIO 4 on"); output4State="on"; digitalWrite(output4,HIGH); }else if(header.indexOf("GET/4/off")>=0){ Serial.println("GPIO 4 off"); output4State="off"; digitalWrite(output4,LOW); } client.println("<!DOCTYPE html><html>"); client.println("<head><meta name=\"viewport\"content=\"width=device-width,initial-scale=1\">"); client.println("<link rel=\"icon\"href=\"data:,\">"); client.println("<style>html{font-family:Helvetica;display:inline-block;margin:0px auto;text-align:center;}"); client.println(".button{background-color:#195B6A;border:none;color:white;padding:16px 40px;"); client.println("text-decoration:none;font-size:30px;margin:2px;cursor:pointer;}"); client.println(".button2{background-color:#77878A;}</style></head>"); client.println("<body><h1>ESP8266 Web Server</h1>"); client.println("<p>GPIO 5 - State" + output5State + "</p>"); if(output5State=="off"){ client.println("<p><a href=\"/5/on\"><button class=\"button\">ON</button></a></p>"); }else{ client.println("<p><a href=\"/5/off\"><button class=\"button button2\">OFF</button></a></p>"); } client.println("<p>GPIO 4-State" + output4State + "</p>"); if(output4State=="off"){ client.println("<p><a href=\"/4/on\"><button class=\"button\">ON</button></a></p>"); }else{ client.println("<p><a href=\"/4/off\"><button class=\"button button2\">OFF</button><a></p>"); } client.println("</body></html>"); client.println(); break; }else{ currentLine=""; } }else if(c !='\r'){ currentLine =currentLine+ c; } } } header=""; client.stop(); Serial.println("Client disconnected."); Serial.println(""); }} [/code

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 71.0.3578.98

Už to funguje.Bolo treba z každého výrazu,kde sa nachádzal výraz GET,tento výraz odstraniť.Ivan

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Connected, Client, Serial println, Serial, Button, Sketch, Random, GPIO, Char, SSID, Here, Serial begin, Pointer, Icon, Break


Určitě si přečtěte

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

** Do deseti tisíc korun lze dnes koupit slušné notebooky ** V nabídce ale i tak převládají zastaralé a pomalé modely ** Poradíme, jak dobře vybrat i s omezeným rozpočtem

David Polesný | 103

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 6

Už desítky let se pokoušíme odposlouchávat mozek. Rusům se podařil kousek, ze kterého vám spadne brada

Už desítky let se pokoušíme odposlouchávat mozek. Rusům se podařil kousek, ze kterého vám spadne brada

** K odposlechu mozků používáme EEG ** To má ale žalostné informační rozlišení ** Rusům pomohla počítačová neuronová síť

Jakub Čížek | 29

10 mýtů a polopravd o bateriích, kterým možná ještě věříte

10 mýtů a polopravd o bateriích, kterým možná ještě věříte

** Kolem baterií a akumulátorů koluje řada mýtů, nepravd a polopravd ** Dnes vám devět z nich zkusíme vyvrátit na základě faktů ** Většina z nich totiž neplatí pro moderní lithiové baterie

Karel Kilián, David Polesný | 99


Aktuální číslo časopisu Computer

Megatest: 20 powerbank s USB-C

Test: mobily do 3 500 Kč

Radíme s výběrem routeru

Tipy na nejlepší vánoční dárky