.. versuch .. den Quellcode der vorher funktioniert hat .. Oder teile .. deinen Quelltext. //Crypi
Problem: Ein Server ist vom Client nicht ansprechbar; Basis ESP8266.
Projekt:
Eine WLAN-Server-Client-Kombination aus zwei ESP8266 soll die Information eines im Briefkasten angekommenen Poststücks in einen Wohnraum weiterleiten und da anzeigen. Im Wohnraum wird ein ESP8266 als AP (alternativ, eigener Versuch: soft-AP) eingerichtet mit dem Programm FLAG. Im Briefkasten wird mit einem gleichen ESP und einem Sensor der Client mit dem Programm "Pbox" eingerichtet. Durch den Einwurf von Post wird der Client resettet, aus dem "Tiefschlaf" geweckt, meldet das dem Server und geht wieder in den Tiefschlaf. Der Server zeigt durch Einschalten eines Signals den Empfang dieser Nachricht, die vom eingeworfenen Postgut ausgelöst wurde. Das Projekt ist in dem "ESP8266-Projektbuch" beschrieben; Autor Martin Mohr. "ESP" meint hier eine kleine Platine mit ESP8266 12-F, USB-Buchse, 5Vzu3,3V-Wandler etc.
Abbildung ESP-Projektbuch.JPG
Realisierung
Dieses Projekt "Briefkasten-is-was-drin-Sensor" mit "Signalausgabe" habe ich nach der Beschreibung in der ebook-Ausgabe "Das ESP8266-Projektbuch" angefangen. Die beiden Programmteile "FLAG" für Signalausgabe im Wohnbereich und "PBox" für Briefkasten+Sensor wurden ausgelesen (schlechte PDF, leider viele Lese-, Schreib- und daraus Compilier-Fehler) und als separate *ino-Codes abgelegt. Arbeitsbasis Arduino IDE 2.1.1 mit core ESP8266 3.1.2.
Abbildung ArduinoIDE2-1-1.JPG
Nach compilieren und flashen der beiden Programme ist die WLAN-SSID nicht bzw. nicht zuverlässig zu finden. Im folgenden Code sind Zeilen aus dem Originaltext blau markiert. Wenn die blauen Zeilen (alt, original) durch die roten (neu erstellt) ersetzt werden (Kommentarmarken!) wird ein WLAN-Server (Abbildung) aufgebaut und feststellbar.
Code:
..FLAG..
// Programm Flag-ESP aus "ESP8266 Das Projektbuch", Seiten 27ff ... korr 08072023
/* Beginn: bearbeitet am 20.07.2023 00:44; Board #01, Einstellg >>FLAG<< auf
. . . . . . .
Aktuell bearbeitet 27 07 2023 13h30 übernommen aus D:\..\A2_00\Etest1\AZ..6h14.txt */
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "NodeKTM"; // Empfänger ist hier FLAG ! ! <<< Aufrufer = Postbox ! !
//## const char* pass = "12345678"; //
// / / / / / / Neue/geänderte Deklrarationen etc
const char* password = "12345678"; //Enter Password here
IPAddress local_ip(192,168,1,119);
// \ \ \ \ \ \ Neue/geänderte Deklarationen etc
IPAddress ip(192,168,1,120);
IPAddress gateway(192,168,1,1); // 22072023-1810 geändert von 1 auf 100 >>>>> nutzt nix, zurück auf 1
IPAddress subnet(255,255,255,0);
//
String inString;
ESP8266WebServer server(80);
// --------------------------
void handleRoot()
{
server.send(200, "text/plain", "ESP Flag Server");
}
// --------------------------
void handleFlag()
{
server.send(200, "text/plain", "Flag is up");
delay(1500);
}
// -------------------------------------------------------
void setup() // ssid = "FLAG";
{ // Sequenz setup Start
Serial.begin(115200);
Serial.println("\r\n") ;
// -------------------------- Beginn "alter" WiFi-Beginn aus "..Projektbuch.."
// WiFi.begin(ssid, password); // im Original (-buch) steht "pass"
// WiFi.config(ip, gateway, subnet);
// -------------------------- Ende "alter" WiFi-Beginn
// -------------------------- Beginn "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
delay(100);
// -------------------------- Ende "neuer" WiFi-Beginn aus "..Simpl..Srvr-01.."
delay( 1000);
while (WiFi.status() != WL_CONNECTED) //#### "FLAG"=Anzeige
{
delay( 500);
Serial.print(".");
} //
Serial.println("") ;
Serial.print("Datei ESPtst1.ino für FLAG. ");
Serial.print("Verbunden mit ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()) ;
delay(1500);
server.on("/",handleRoot) ;
server.on("/flag/", handleFlag);
server.begin();
Serial.println("HTTP server started");
} // Sequenz setup Ende
void loop(void)
{
server.handleClient();
}
Code:
..Pbox..
// Programm Postbox-ESP aus "ESP8266 Das Projektbuch", Seiten 35ff ... korr 08072023
/* bearbeitet am 20.07.2023 23:46 => hh:mm setup mit delay(1500) vor+nach Serial.println
. . . .
aktuell bearbeitet 27 07 2023 11:04 Code für Pbox aus "..Projektbuch.." übernommen/kontrolliert
27 07 2023 11h30 >> geändert nur ssid > "NodeKTM" und pass > "12345678"
27 07 2023 14h00 >> und geändert: delay nach "serial.begin"
/ / / / */
#include <ESP8266WiFi.h>
const char* ssid = "NodeKTM"; // Dies hier ist Postbox (Empfänger ist FLAG/2)
const char* pass = "12345678"; //
//## const char* serverIp = "192,168,1,119"; // wie FLAG geändert auf 20 am 24.07.2023-17h46
const char* serverIp = "192,168,1,122"; // 29.07.2023-16h28 neu; laut WLAN-Daten von Board#01/NodeKTM
// Versuche: 16h45: 117, 16h46 118, 16:53 119, 17:00 120, 17:17 121, 17h26 122
int serverPort = 80;
WiFiClient client;
// --------------------------
void setup()
{
Serial.begin(115200);
delay( 1000);
Serial.println("\r\n"); // Anmelde"text"; Pbox #02, Zeilenvorschub
WiFi.begin (ssid, pass); //
while (WiFi.status() != WL_CONNECTED)
{
delay( 500);
Serial.print(".");
}
delay( 1000);
Serial.println("");
Serial.print("Pbox verbunden mit ");
Serial.print(ssid);
Serial.print(", IP address: ");
Serial.println(WiFi.localIP());
if ( !client.connect(serverIp, serverPort) )
{
Serial.println("connect fail");
}
client.print("GET /flag/");
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverIp);
client.println("Connection: close");
client.println();
client.stop();
delay(1500); //
ESP.deepSleep(0);
}
void loop() { }
Abb NodeKTM-WLAN-IPv4-x121-17h17.JPG
Problem:
Der Server ist vom Client nicht ansprechbar. Seine IPv4-Adresse *.121 ist nicht erreichbar, siehe Terminaldarstellung. Variation der serverIp im Programm Pbox von 192,168,1,117 bis *.122 zeigten keinen Erfolg.
Abb Terminal_28072023-23h52.JPG Abb Terminal_29072023-17h42.JPG
Kennt jemand dieses Problem? Bitte um Hilfe.
Wo sind meine Fehler? Sind die angezeigten IPs, siehe Bild "NodeKTM-WLAN..", richtig? Muss für die Kommunikation eine andere erstellt/angesprochen werden? Welche?
Danke im Voraus
Lesezeichen