Lighthouse
Member
Hallo zusammen,
ich habe meinem Mäher mit der RFID und WiFi Option über einen ESP32 aufgerüstet. Dazu ist das Bluetoth Modul rausgeflogen und ich habe ein ESP32U Bord mit externer Antenne eingebaut. Die Verbindung war mal da, dann wieder weg, wieder Da, weg, weg, da, nicht mehr zu verbinden. Also furchtbar. Es musste also die WiFi Abdeckung im Garten verbessert werden - dachte ich. Nachdem ich eine Powerlanverbindung ins Gartenhaus gelegt habe und ein weiterer Repeater im Garten lief, war die Abdeckung top. Das hat aber nichts an dem Verhalten des ESP32U verbessert. Wie ich dann häufig gelesen habe, bin ich mit diesem Problem nicht allein. Der ESP32 soll demnach ein Bug haben, sodass eine Verbindung immer wieder getrennt wird oder er ganz hängt.
Als Zwischenlösung habe ich den Code (siehe unten) in die ESP32_RFID_MQTT.ino eingefügt. Über die drei Events wird die Verbindung zum WLAN gesteuert. Tritt ein Event ein (im Setup definiert), wird die entsprechende Funktion aufgerufen. Das schöne dabei ist, dass der Verbindungsaufbau den ESP nicht blockiert. Der Code wird weiter ausgeführt. Details dazu sind auf der Seite von uPesy nachzulesen.
Damit bekomme ich zumindest immer eine Verbindung, doch leider auch nicht stabil. Manuell zu fahren ist z.B. nicht gut möglich.
Kennt ihr eine bessere Abhilfe für die Verbindungsprobleme? Gibt es ein Update für die ESP32 Bords? Ich konnte bisher leider nichts finden. Oder funktionieren die ESP32D DevKit mit interner Antenne doch besser? Ich hab auch schon überlegt einen ESP8266 für die WLAN-Aufgabe zu nutzen....
Überlegt habe ich auch schon, ob die pfodApp womöglich nicht sauber läuft. Bei einem Hänger war ein Ping möglich (?!). Arduremote läuft ja nur per Bluetooth, da aber stabil. Gibt es eine andere App zum Testen der Verbindung?
Danke
Jens
void connected_to_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.println("[+] Connected to the WiFi network");
}
void disconnected_from_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.println("[-] Disconnected from the WiFi AP");
reconnect_count++;
if (reconnect_count < 10) {
WiFi.begin(ssid, pw);
}else{
ESP.restart();
}
}
void got_ip_from_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.print("[+] Local ESP32 IP: ");
Serial.println(WiFi.localIP());
}
void setup() {
// setup code
//********************************WIFI init code*************************************
if (MODE_STA == true) {
if (debug) Serial.println("Start ESP32 Station mode");
//Se
WiFi.mode(WIFI_STA);
WiFi.onEvent(connected_to_ap, SYSTEM_EVENT_STA_CONNECTED);
WiFi.onEvent(got_ip_from_ap, SYSTEM_EVENT_STA_GOT_IP);
WiFi.onEvent(disconnected_from_ap, SYSTEM_EVENT_STA_DISCONNECTED);
WiFi.config(ip, gateway, netmask);
WiFi.begin(ssid, pw);
Serial.println("\nConnecting");
}
//setup code
}
ich habe meinem Mäher mit der RFID und WiFi Option über einen ESP32 aufgerüstet. Dazu ist das Bluetoth Modul rausgeflogen und ich habe ein ESP32U Bord mit externer Antenne eingebaut. Die Verbindung war mal da, dann wieder weg, wieder Da, weg, weg, da, nicht mehr zu verbinden. Also furchtbar. Es musste also die WiFi Abdeckung im Garten verbessert werden - dachte ich. Nachdem ich eine Powerlanverbindung ins Gartenhaus gelegt habe und ein weiterer Repeater im Garten lief, war die Abdeckung top. Das hat aber nichts an dem Verhalten des ESP32U verbessert. Wie ich dann häufig gelesen habe, bin ich mit diesem Problem nicht allein. Der ESP32 soll demnach ein Bug haben, sodass eine Verbindung immer wieder getrennt wird oder er ganz hängt.
Als Zwischenlösung habe ich den Code (siehe unten) in die ESP32_RFID_MQTT.ino eingefügt. Über die drei Events wird die Verbindung zum WLAN gesteuert. Tritt ein Event ein (im Setup definiert), wird die entsprechende Funktion aufgerufen. Das schöne dabei ist, dass der Verbindungsaufbau den ESP nicht blockiert. Der Code wird weiter ausgeführt. Details dazu sind auf der Seite von uPesy nachzulesen.
Damit bekomme ich zumindest immer eine Verbindung, doch leider auch nicht stabil. Manuell zu fahren ist z.B. nicht gut möglich.
Kennt ihr eine bessere Abhilfe für die Verbindungsprobleme? Gibt es ein Update für die ESP32 Bords? Ich konnte bisher leider nichts finden. Oder funktionieren die ESP32D DevKit mit interner Antenne doch besser? Ich hab auch schon überlegt einen ESP8266 für die WLAN-Aufgabe zu nutzen....
Überlegt habe ich auch schon, ob die pfodApp womöglich nicht sauber läuft. Bei einem Hänger war ein Ping möglich (?!). Arduremote läuft ja nur per Bluetooth, da aber stabil. Gibt es eine andere App zum Testen der Verbindung?
Danke
Jens
void connected_to_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.println("[+] Connected to the WiFi network");
}
void disconnected_from_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.println("[-] Disconnected from the WiFi AP");
reconnect_count++;
if (reconnect_count < 10) {
WiFi.begin(ssid, pw);
}else{
ESP.restart();
}
}
void got_ip_from_ap(WiFiEvent_t wifi_event, WiFiEventInfo_t wifi_info){
Serial.print("[+] Local ESP32 IP: ");
Serial.println(WiFi.localIP());
}
void setup() {
// setup code
//********************************WIFI init code*************************************
if (MODE_STA == true) {
if (debug) Serial.println("Start ESP32 Station mode");
//Se
WiFi.mode(WIFI_STA);
WiFi.onEvent(connected_to_ap, SYSTEM_EVENT_STA_CONNECTED);
WiFi.onEvent(got_ip_from_ap, SYSTEM_EVENT_STA_GOT_IP);
WiFi.onEvent(disconnected_from_ap, SYSTEM_EVENT_STA_DISCONNECTED);
WiFi.config(ip, gateway, netmask);
WiFi.begin(ssid, pw);
Serial.println("\nConnecting");
}
//setup code
}