Ik ben met een projectje bezig om via de nodemcu en met een oled schermpje en matrixbordjes een lichtkrant te maken die behalve vaste tekst ook via een qr scan met een link naar een url , een zelf ingezonden tekst kan projecteren op het led. ik heb alleen geen verbinding met de url. De serial zegt steeds connection failed. Zover ik kan zien heb ik alles goed in de sketch , maar ik kom er niet uit. Bij opstart geeft het oled een AP waar je dan via een menu je ssid en ww in kan voeren van je wifi netwerk. Op deze manier heb je dus verbinding met WIFI. Bij het vervallen/uitvallen van de WIFI, komt het AP terug op de oled. Mijn serial geeft aan dat het geen verbinding heeft maar het AP komt niet op, dus ik heb nog verbinding met mijn WIFI, alleen geen verbinding met de gewenste URL en de respons die het moet geven op mijn matrix led.
Hieronder een print van de serial en daaronder een stuk code van de verbinding die het moet doen.
Iemand die kan helpen ?
Serial:
16:31:06.693 -> connection failed
16:39:10.701 -> *WM:
16:39:10.701 -> *WM: AutoConnect
16:39:10.701 -> *WM: Connecting as wifi client...
16:39:10.701 -> *WM: Status:
16:39:10.701 -> *WM: 6
16:39:10.701 -> *WM: Using last saved values, should be faster
16:39:13.891 -> *WM: Connection result:
16:39:13.891 -> *WM: 3
16:39:13.891 -> *WM: IP Address:
16:39:13.891 -> *WM: 192.168.101.74
16:39:14.097 -> connection failed
16:39:46.659 -> connection failed
16:41:28.425 -> *WM:
16:41:28.425 -> *WM: AutoConnect
16:41:28.425 -> *WM: Connecting as wifi client...
16:41:28.425 -> *WM: Status:
16:41:28.425 -> *WM: 6
16:41:28.425 -> *WM: Using last saved values, should be faster
16:41:31.716 -> *WM: Connection result:
16:41:31.716 -> *WM: 3
16:41:31.716 -> *WM: IP Address:
16:41:31.716 -> *WM: 192.168.101.74
16:41:31.852 -> connection failed
16:42:04.363 -> connection failed
16:42:36.893 -> connection failed
16:43:09.420 -> connection failed
16:43:41.937 -> connection failed
16:44:14.473 -> connection failed
16:44:46.995 -> connection failed
16:45:19.531 -> connection failed
16:45:52.076 -> connection failed
16:46:24.605 -> connection failed
16:47:46.474 -> *WM:
16:47:46.474 -> *WM: AutoConnect
16:47:46.474 -> *WM: Connecting as wifi client...
16:47:46.474 -> *WM: Status:
16:47:46.474 -> *WM: 6
16:47:46.474 -> *WM: Using last saved values, should be faster
16:47:49.559 -> *WM: Connection result:
16:47:49.559 -> *WM: 3
16:47:49.559 -> *WM: IP Address:
16:47:49.559 -> *WM: 192.168.101.74
16:47:49.726 -> connection failed
16:48:22.235 -> connection failed
16:48:54.793 -> connection failed
16:49:27.319 -> connection failed
16:49:59.845 -> connection failed
16:50:32.362 -> connection failed
16:51:04.858 -> connection failed
16:51:37.396 -> connection failed
16:52:09.932 -> connection failed
16:52:42.454 -> connection failed
16:53:15.033 -> connection failed
16:53:47.517 -> connection failed
16:54:20.053 -> connection failed
16:54:52.554 -> connection failed
16:55:25.074 -> connection failed
16:55:57.859 -> connection failed
16:56:30.307 -> connection failed
16:57:02.850 -> connection failed
16:57:35.345 -> connection failed
16:58:07.884 -> connection failed
16:58:40.410 -> connection failed
Code:
void ConnectToServer(){
// Use WiFiClient class to create TCP connections
const char* host = " example.com"; // Here coms your Webserver / Host adress
String url = "/matrix/myText.txt"; // The Path and Filename
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server
while(client.available()){
String line = client.readStringUntil('\r');
//Serial.print(line); // Diag, Show's all the lines from HTTP answere
if(line.endsWith("EOT")){ // line with EOT at the end? (adding in PHP-Script to the end of text)
line = line.substring(1,line.length() -3); // Shortens the string by by 3 characters "EOT"
if (line == "WiFiReset"){ // Secret phrase to reset WiFi settings. Next start in config Mode
wifiManager.resetSettings();
}
De reply van de server geeft wel een EOT aan en doet zijn werk dus, alleen komt het niet bij mijn esp terecht. Ergens in de verbinding is iets dus niet OK. Ik kan het niet vinden, mijn router kan ESP aan, dat is het niet. Andere host ook al geprobeerd maar ook geen succes.
Ik kan geen oplossing vinden voor het probleem. Iemand die het weet mag het zeggen