Problème de page HTML sur ESP8266

Orsam999
lun, 10/11/2021 - 11:41
Bonjour à tous,
J'ai un problème d'affichage de la page html dans mes navigateur web des tablettes et téléphones.
Je vous explique tout ça :
J'ai suivi tous les tuto de U=RI sur comment utiliser le esp8266. J'ai flasher le bios de l'ESP avec NodeMCU, j'ai transféré le code de Julio (http://www.les-electroniciens.com/videos/esp8266-application-android) avec ESPlorer dans mon ESP afin d'avoir une belle page web avec deux boutons, pour allumer et éteindre les deux GPIO de mon ESP, et tout fonctionne parfaitement sur tous mes PC.
Tout, pas tout à fait. Sur les tablettes et smartphones, la html page avec mes deux boutons ne s'affiche pas et pire, il y a une erreur "la page ne répond pas."
Malgré cette erreur sur les appareil mobiles, quand je tape l'url avec GPIOON ou GPIOOFF ma led s'allume et s’étreind, mais pas de page WEB.
Le problème c'est que je ne connait pas python alors je ne sais pas si cela vient du code. Le voici :
-----------------------------------------------------------------
wifi.setmode(wifi.STATION)
wifi.sta.config ("monWIFI","MOTPASSE") -- Réseau Wifi et Clé
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<html><header></header><body><h1> ESP8266 Web Server 6</h1>";
buf = buf.."<p>GPIO0 <a href=\"?pin=GPIO0ON\"><button>ON</button></a> <a href=\"?pin=GPIO0OFF\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=GPIO2ON\"><button>ON</button></a> <a href=\"?pin=GPIO2OFF\"><button>OFF</button></a></p></body></html>";
local _on,_off = "",""
if(_GET.pin == "GPIO0ON")then
gpio.write(led1, gpio.HIGH);
elseif(_GET.pin == "GPIO0OFF")then
gpio.write(led1, gpio.LOW);
elseif(_GET.pin == "GPIO2ON")then
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "GPIO2OFF")then
gpio.write(led2, gpio.LOW);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)-----------------------------------------------------------------
Merci à tous par avance
Walter
jeu, 10/14/2021 - 14:59
Bonjour,
essaye de mettre un tmr.delay(500000) après le client:send(buf);
pour laisser le temps d'envoyer la page HTML avant de couper la connexion.
Orsam999
ven, 10/15/2021 - 09:24
Ca fonctionne !
Merci beaucoup