hi,
danke erstmal für die tipps 
ich bin jetzt weitergekommen, mechanisch und elektronisch sind die beiden module fertig, der code sieht so aus:
client
Code:
#include <ESP8266WiFi.h> // Include the Wi-Fi library
const int ledPin_rt = D5;
const int ledPin_gn = D6;
const int ledPin_bl = D7;
uint8_t schalter = LOW;
int ledState_rt = LOW; // LED-Status
int ledState_gn = LOW;
int ledState_bl = LOW;
const char* ssid = "fahrrad-echo-server";
const char* password = "12345678";
void setup()
{
pinMode(ledPin_rt, OUTPUT);
pinMode(ledPin_gn, OUTPUT);
pinMode(ledPin_bl, OUTPUT);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
Serial.begin(115200);
Serial.println("code ---- /home/georg/Arduino/fahr_rad/entfernung_messen/2020_06_28/fahrrad_echo_client_1");
Serial.println('\n');
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to ");
Serial.print(ssid); Serial.println(" ...");
int i = 0;
while (WiFi.status() != WL_CONNECTED)
{ // Wait for the Wi-Fi to connect
delay(1000);
Serial.print(++i); Serial.print(' ');
}
Serial.println('\n');
Serial.println("Connection established!");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());
}
void loop()
{
/*
if ((schalter == HIGH)) // && (WiFi.softAPgetStationNum() == 0))
{
WiFi.begin(ssid, password);
digitalWrite (ledPin_rt, LOW);
digitalWrite (ledPin_gn, HIGH);
schalter = LOW;
}
else if ((schalter == LOW) && (WiFi.softAPgetStationNum() == 1))
{
WiFi.disconnect();
digitalWrite (ledPin_gn, LOW);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
}
*/
}
server
Code:
#include <ESP8266WiFi.h>
const int ledPin_rt = D5;
const int ledPin_gn = D6;
const int ledPin_bl = D7;
uint8_t schalter = LOW;
int ledState_rt = LOW; // LED-Status
int ledState_gn = LOW;
int ledState_bl = LOW;
void setup()
{
pinMode(ledPin_rt, OUTPUT);
pinMode(ledPin_gn, OUTPUT);
pinMode(ledPin_bl, OUTPUT);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
Serial.begin(115200);
Serial.println("code ---- /home/georg/Arduino/fahr_rad/entfernung_messen/2020_06_28/fahrrad_echo_server_1");
Serial.println();
Serial.print("Konfiguriere soft-AP ... ");
boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
Serial.print("Verbindung wurde ");
if (result == false)
{
Serial.println("NICHT ");
}
Serial.print("erfolgreich aufgebaut!");
}
void loop()
{
boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
if ((schalter == HIGH) && (WiFi.softAPgetStationNum() == true))
{
//boolean result = WiFi.softAP("fahrrad-echo-server", "12345678");
digitalWrite (ledPin_rt, LOW);
digitalWrite (ledPin_gn, HIGH);
schalter = LOW;
}
//else if (WiFi.softAPgetStationNum() == LOW)
// else
else if ((schalter == HIGH) && (WiFi.softAPgetStationNum() == false))
{
// client.stop();
digitalWrite (ledPin_gn, LOW);
digitalWrite (ledPin_rt, HIGH);
schalter = HIGH;
}
Serial.printf("Anzahl der Verbundenen Geräte= %d\n", WiFi.softAPgetStationNum());
delay(3000);
}
ich versuche das abbrechen der verbindung mit dem registrieren von verbundenen geräten zu realisieren ( WiFi.softAPgetStationNum() ) , habe dabei allerdings ein problem. Die verbindung wird ja ziemlich abruppt beendet, und der server merkt es nicht
...
Welche möglichkeit habe ich in diesem fall die verbindung vom server aus zu beenden, bzw. den abbruch quasi zu legalisieren? Hab schon einiges probiert, es klappt nicht. Bei einer verbindung mit einem smartphone wird der abbruch der wifi-verbindung korrekt erkannt, auch wenn ich das wlan einfach abschalte findet ein reconnect statt, bei den modulen, bzw. meinem code klappt es nicht
Lesezeichen