ESP32

mest

Member
Hallo und einen schönen guten Abend,
benötige wieder einmal Hilfe. Kämpfe z. Z. mit der Installation der esp32_ble.ino. Habe den Code von GitHub Ardumower / Sunray / esp32 _ble /esp32_ble.ino übernommen.
Wenn ich die esp32_ble.ino überprüfe, bleibt der Compiler bei der Zeile 189 stehen

class MyCallbacks: public BLECharacteristicCallbacks {
void onStatus(BLECharacteristic* pCharacteristic, BLECharacteristicCallbacks::Status s, uint32_t code){
if (s == BLECharacteristicCallbacks::Status::SUCCESS_NOTIFY){
//CONSOLE.println("onStatus: SUCCESS_NOTIFY");
// notify success => send next BLE packet...
bleNotify();
}

und bringt eine Fehlermeldung:

Arduino: 1.8.15 (Windows Store 1.8.49.0) (Windows 10), Board: "ESP32 Dev Module, Disabled, Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

esp32_ble:189:83: error: 'BLECharacteristicCallbacks::Status' has not been declared
void onStatus(BLECharacteristic* pCharacteristic, BLECharacteristicCallbacks::Status s, uint32_t code){
esp32_ble:195:5: error: expected ';' after class definition
}
Mehrere Bibliotheken wurden für "WiFi.h" gefunden
Benutzt: C:\Users\st-me\OneDrive\Dokumente\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
Nicht benutzt: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.49.0_x86__mdqgnx93n4wtt\libraries\WiFi

Mehrere Bibliotheken wurden für "BLEDevice.h" gefunden
Benutzt: C:\Users\st-me\OneDrive\Dokumente\Arduino\libraries\ESP32_BLE_Arduino
Nicht benutzt: C:\Users\st-me\OneDrive\Dokumente\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\BLE

exit status 1
'BLECharacteristicCallbacks::Status' has not been declared

Kann jemand damit etwas anfangen? An welcher Schraube muss ich drehen, dass die Installation funktioniert? Ich sehe hier nicht mehr durch.

Vielen Dank im voraus.

Mit freundlichen Grüßen aus Chemnitz

Stefan Meyer
 
Hallo,
der Fehler erscheint wenn bereits eine BLE-Library (für ein anderes Projekt) in der Arduino-IDE installiert ist. Die IDE verwendet dann leider die falsche BLE-Datei (nicht die vom ESP32). Lösung: Die Arduino IDE neu installieren bzw. eleganter: die Libraries löschen welche die "falsche" BLE-Datei enthalten... (C:\Users\st-me\OneDrive\Dokumente\Arduino\libraries\ESP32_BLE_Arduino)
 
Zuletzt bearbeitet:
Hallo Alexander,
vielen Dank für Deine Antwort. Du hattest wie immer den Finger drauf. Die Überprüfung läuft einwandfrei durch. Habe aber schon wieder das nächste Problem. Der Treiber von Silicon Lab lässt sich zwar installieren aber der COM-Port wird nicht angezeigt. Experimentiere schon seit Sonntag. Hast Du eine Idee? Windows 10 20H2.
Treiber von Silicon Labs, CP210x USB to UART Bridge. Diesen Treiber habe ich von der Website Silicon Labs heruntergeladen. Es ist der aktuellste.
Dieser Treiber sollte einen seriellen Port erzeugen. Die Installation des Treibers verläuft ohne Probleme. Im Geräte-Manager wird aber kein entsprechender Port angezeigt. Ich habe alles mögliche versucht, ohne Erfolg.
Wenn ich im Geräte-Manager die Installation des Treibers im Menü Aktion, Legacyhardware hinzufügen, durchführe, erfolgt die Anzeige eines neuen Ports (Silicon Labs CP210x USB to UART Bridge) mit gelben Dreieck und Ausrufezeichen. Fehlermeldung: (Das Gerät kann nicht gestartet werden. (Code 10)
Die angegebene Anforderung ist kein für das Zielgerät gültiger Vorgang.)
Ein aktualisieren des Treibers ist nicht möglich. Windows sagt, dass der beste Treiber installiert ist.
Windows erkennt den USB Anschluss des ESP32 auch nicht. Fehlermeldung: USB-Gerät wurde nicht erkannt. Das letzte USB-Gerät, das an diesen Computer angeschlossen wurde, hat nicht ordnungsgemäß funktioniert und wird nicht von Windows erkannt..
 
Ich würde mal ein anderes USB-Kabel probieren (möglichst dick und möglichst kurz). 50% der USB-Kabel welche im Umlauf sind (zu geringer Querschnitt für kurze hohe Ströme) verursachen einen Fehler bei den unterschiedlichsten Geräten ist mein persönlicher Eindruck ;-)...
 
USB kann schön sein, wenn es funktioniert. Manchmal ist es aber auch der Useless Serial Bus ;-)

Neben dem Kabel, wie Alexander schon erwähnt hat, würde ich versuchen, es an einem anderen Gerät anzuschließen.
Hast Du per Zufall ein Virtualiserungssoftware laufen (VMWare, VirtualBox). Die neigen dazu USB Geräte gleich durchzuleiten, sprich, sie stehen dem Host dann nicht zur Verfügung.

Manchmal hilft auch ein Reboot von Windows.
 
Pc komlett runterfahren, neustarten und die Ide öffnen. Dann sollte das Wlan esp32 Update funktionieren.
2. Ein alter Treiber mit einer höheren Priorität bremst den SL Treiber aus. Suchen und löschen.
3. F3 WINDOWS Neuinstallation und gleich den neuen SL Treiber aufspielen. Dann IDE und das funktioniert auch. Nur keine SW mit alten Treibern installieren.
VG Hartmut
 
Vielen Dank für die Hinweise, werde nochmals die Problematik bearbeiten und berichte Euch dann das Ergebnis. Nochmals Danke.
 
Hallo, hatte soeben den erhofften Erfolg. Habe das USB Kabel ausgewechselt (das dritte USB Kabel) und im Geräte-Manager erschien der Com-Port von Silicon Labs. Alexander hatte den Finger drauf. Das Übertragen an den esp32 verlief ohne Probleme.
Nochmals vielen Dank an alle für Eure Hinweise.
 
Bei mir verliere ich die Bluetooth mit Error 8 und auch W-LAN Verbindung. Hat jemand eine Idee? Aktuell kann ich den Mäher starten und etwas mit dem Joystick fahren, aber er fährt immer nur 20 - 30cm und hält wieder an.
 

Anhänge

  • Screenshot_20210713-222955.png
    Screenshot_20210713-222955.png
    237,8 KB · Aufrufe: 11
Ist aufgesteckt. Nicht verlötet oder verklebt. Was mich halt wundert am Anfang kann man den Ardumower ein paar Meter per APP fahren lassen, dann hält er plötzlich an, dann fährt er wieder ein paar Zentimeter weiter und das wiederholt sich innerhalb 1 - 3 Meter und dann bleibt er ganz stehen und die Verbindung bricht dann vollends. Ich muss heute Abend mal den Seriellen Monitor vom M4 Central anschauen. Vielleicht weiß ich dann was los ist.
 
Du musst etwas mit den Einstellungen des ESP32 spielen:

# BLE_MIN_INTERVAL 2
# definiere BLE_MAX_INTERVAL 10
# definiere BLE_LATENCY 0
#define BLE_TIMEOUT 30

und bei WIFI:

#define WIFI_TIMEOUT_FIRST_RESPONSE 800
#define WIFI_TIMEOUT_RESPONSE 400

Gerade bei BT verhält sich auch jedes Smartphone anders, dementsprechend kann man die ESP32 Einstellungen nicht für jedes Smartphone 1:1 übernehmen. Für die App reicht es in der Regel aus, willst du den Mover steuern gibt es mitunter Probleme.

Kommt zuviel über den ESP32 rein scheint er des Öfteren überzulaufen oder die Kommunikation ESP - M4 kommt dann nicht mehr hinterher.
 
Ok, ich werde mir das mal ansehen, ich vermute aber das bei mir der Akku leer ist. Und deshalb der Mäher stehen blieb und danach die Kommunikation abgebrochen ist. Ich habe heuet nämlich über den Seriellen Monitor was von "undervoltage" gelesen. Dann ist vermutlich die IMU ausgefallen und dann die Motoren. Wahrscheinlich ist es somit Hausgemacht.

Ist es eigentlich Möglich den Ardumower per W-LAN einzuschalten? Vermutlich nicht, oder?

Wie ist das mit der Ladestation, da wird er wahrscheinlich immer an sein, oder?
 
nein, per WLan kannst du ihn nicht einschalten. Ist der Mover aus ist auch der ESP32 aus.
Du müsstest dir was basteln ... z.B. wenn du eine SmartHome Zentrale o.ä hast konntest du einen Funkschalter parallel zum Einschaltknopf bauen.
Ich z.B. schalte LS, Base und Mover per Homematic ein und schicke den Mäher auch per Homematic raus. Das geht ja seit dem Alexander den Einschaltknopf mit mehreren Funktionen belegt hat - siehe config.h
Zum Einschalten und Losschicken des Movers habe ich einen Homematic IP Batterieschalter mit weitem Eingangsbereich genommen und parallel zum Einschalttaster geschaltet. Der Homematic Batterieschalter bekommt dann einen kurzen Einschaltimpuls von 0,9sek und damit ist der Mover an bzw. fährt beim nächsten Impuls los.

Wenn du ihn einfach nur in der LS stehen hast bleibt er solange an wie die LS auch Strom hat bzw. Strom über die Ladekontakte kommt. Deswegen wird bei mir auch die LS geschaltet.
 
Aber mit einer Ladestation dürfte er doch nicht ausgehen, weil zum Laden der Ardumower an sein muss. Und das Netzteil der Ladestation wird sich auch nicht abschalten. Es wird doch nur die Ladesteuerung aufhören wenn der Akku nicht geladen wird.
 
Habe ich doch geschrieben ... wenn der Mover in der LS steht geht er NICHT aus solange die LS Strom hat.
Wenn du den Stecker nicht rausziehst hat sie dauerhaft Strom.

Nur ich für meinen teil schalte die LS nach 12h aus - und dementsprechend auch den Mäher
 
Ok, überlesen. Homematic habe ich leider nicht, ich könnte es höchstens über die Fritzbox machen und dann über VPN von der Ferne.
 
Naja, AVM hat ja keinen Aktor den du irgendwie geartet in den Mäher bekommst.
Mit AVM könntest du die Ladestation schalten - das geht. Damit würde dann nach Abschalten der LS auch der Mäher ausgehen.
Zum Einschalten des Mähers musst du dann allerdings doch raus - es reicht nicht wenn du die Ladestation einschaltest. Du musst dann trotzdem noch den Einschalttaster am Mäher bedienen.

Ich habe parallel zum Einschalttaster am Mäher folgendes Modell:
 
Oben