Als Fehlermeldung beim Compile kommt:
exit status 1
Compilation error: exit status 1
Keine zusätzlichen Informationen
EDIT: Ich habe die Bluetooth Library getauscht in die ESP32_BLE_Arduino
Ergebnis:
In file included from c:\Users\roger\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEAdvertising.h:15,
from c:\Users\roger\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEServer.h:19,
from c:\Users\roger\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEDevice.h:18,
from C:\Users\roger\Downloads\0=6605-BLE_client_V3.4\BLE_client\BLE_client.ino:1:
c:\Users\roger\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/FreeRTOS.h:61:28: error: 'ringbuf_type_t' has not been declared
Ringbuffer(size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT);
^~~~~~~~~~~~~~
exit status 1
Compilation error: exit status 1
Neuer Tag, neues Glück -- oder auch nicht. Ich habs auf nem neuen Rechner versucht - gleiches Ergebnis.
Dann habe ich aber gesehen, dass man detailliertere Fehlermeldungen bekommen kann. Mir fällt folgendes auf:
C:\Users\roger\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6/tools/sdk/esp32/include/driver/include/driver/can.h:13:2: warning: #warning driver/can.h is deprecated, please use driver/twai.h instead [-Wcpp] #warning driver/can.h is deprecated, please use driver/twai.h instead ^ In file included from C:\Users\roger\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6/tools/sdk/esp32/include/driver/include/driver/can.h:15, from C:\Users\roger\Downloads\7467=6664-BLE_client_V3.6\BLE_client\BLE_client.ino:11: C:\Users\roger\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6/tools/sdk/esp32/include/hal/esp32/include/hal/can_types.h:21:2: warning: #warning hal/can_types.h is deprecated, please use hal/twai_types.h instead [-Wcpp] #warning hal/can_types.h is deprecated, please use hal/twai_types.h instead ^ C:\Users\roger\Downloads\7467=6664-BLE_client_V3.6\BLE_client\Victron_CAN.ino: In function 'void setup_can_driver()': C:\Users\roger\Downloads\7467=6664-BLE_client_V3.6\BLE_client\Victron_CAN.ino:11:28: warning: missing initializer for member 'twai_general_config_t::intr_flags' [-Wmissing-field-initializers] .clkout_divider = 0}; ^
Hier also mal ein paar Warnungen - aber keine Fehler.
Hi, habe ein Problem in arduino, habe Compilererror.
Welche Settings muss man einstellen , bzw Board: habe Arduino 32 DEV.
Oder habe ich das falsche Board?
program: V3.4 BLE_connection
Danke VG
text section exceeds available space in board
Globale Variablen verwenden 56560 Bytes (17%) des dynamischen Speichers, 271120 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
Du könntest einfach in der main loop den Ladestand als PWM ausgeben, ohne den ganzen WLAN / MQTT Kram rauszuschmeissen. Also einfach mal in der Arduino Doku nachschauen, wie man eine PWM ausgibt.
Ich habe mir den Code auch so erweitert, dass in der loop noch ADCs ausgelesen werden, ging problemlos {green}
@all:
Aber womit ich leider überfordert bin, ist das Senden einer Konfiguration über BT, also Parameter des BMS ändern. Dafür müsste der Code so erweitert werden, dass über BT auch gesendet werden kann (bisher wird ja scheinbar nur gelesen). Ist da jemand dran oder kann mir etwas beim Einstieg helfen?
Ich hatte schon überlegt, stattdessen per CAN die zu ändernden Parameter zu senden (ein paar Bytes über UART zu senden würde ich vermutlich noch alleine hinbekommen). Aber wäre ja irgendwie doof, zusätzlich noch CAN anzuschließen, wenn die BT Verbindung soweit schon steht. {green}:crazy:
Außerdem müssten die Parameter natürlich auch noch vom iobroker (bzw. bei mir FHEM) zum ESP gesendet werden. Da bin ich auch raus {green}:excitement:
Nach dem Booten bekommt er auch eine IP zugewiesen.
Dann bekomme ich wiederkehrend folgende Meldungen im S.Monitor.
BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 MQTT Client not connected MQTT time for reconnect MQTT connection failed! MQTT reconnect Error BLE -> Reconnecting! BLE Advertised Device found: Name: , Address: 78:5c:65:09:0f:36, manufacturer data: 060001092002bce278ed10fdde11a20c6179e57b34a764b4df9b7a0e77 MQTT Client not connected MQTT time for reconnect
Ich habe den Namen von dem BMS eingegeben die auch in der APP angezeigt wird.
Hier meine Anpassungen
bool debug_flg = true; bool debug_flg_full_log = true; //########### Settings beginnen ######### //OTA Setting #define OTA_Hostname "JKBMS_ESP32" // -> hier ändern wenn OTA Name anders sein soll #define OTA_Passwort "xxxxxx" // -> hier ändern wenn OTA Passwort anders sein soll // MQTT Setting const char* mqtt_server = ""; // -> hier die IP des MQTT Server eingeben const int mqtt_port = 1883; // -> hier den Port einstellen für den MQTT Server const char* mqtt_username = ""; // -> hier MQTT Benutzername eintragen const char* mqtt_passwort = ""; // -> hier MQTT Passwort eingeben #define mqttname "BMS_Watchdog" // -> hier wird der MQTT Gerätename festgelegt const int mqttpublishtime_offset = 1000; //-> hier einstellen wie oft Danten gesnedet werden sollen 1000 = jede Sekunde // CAN Settings bool CAN_use = false; // -> true wenn ein CAN MOdul vorhanden und verwendet wird für die Paylontech simulation const int CAN_Cylcetime = 1000;
@henrik_79 Moin, ich denke der Fehler ist das du keinen MQTT Server angegeben hast. Ob der ESP sich mit dem JK per BLE verbindet hörst du auch an einem 2 maligen Piepton der vom JK ausgegeben wird. Ausserdem leuchtet dann die LED an der Unterseite dauerhaft. Wenn keine Verbindung besteht blinkt die LED. Es ist auch nur möglich eine Verbindung zur zeit aufzubauen, also wenn du denn ESP verbindest erst das Smartphone trennen.
@henrik_79 Kannst du die Batteriespannung nicht direkt über einen Spannungsteiler auf deine SPS geben, sind doch nur 2 Wiederstände ? Und wenn ich das richtig seheh und du 0-10V brauchst die kann der ESP eh nicht ausgeben, da kommen nur 5V max. raus.
@henrik_79 Moin, jetzt verstehe ich was du vorhast. Du möchtest den Akkufüllstand in Prozent an deine SPS übergeben. Leider sind meine Arduino Kenntnisse sehr gering. Vielleicht versuchst du mal im 1. Schritt die Ansprünge für Wifi und MQTT im Programm abzuhängen (mit 2 // vorweg), dann die debug_flg_full_log auf true umschalten und nachdem du kompiliert hast mal im log zu schauen ob du Daten vom JK angezeigt bekommst.