- web_server.cpp: static String _logBuf -> char[6001] im BSS-Segment Jeder LOG_I/E/D-Aufruf loeste String-Reallokation aus (~280 Bytes/min Drift) Fix: memmove-basierter Ring-Puffer, kein malloc/free mehr - mqtt_client.cpp: JsonDocument in publishHeartbeat() und _doPublishSession() durch snprintf-JSON ersetzt (kein ArduinoJson-Heap-Pool alle 60 s) - config.h: LOG-Puffer von 200 auf 320 Bytes erhoeht (Truncation fix) - platformio.ini: CORE_DEBUG_LEVEL wieder auf 1 (war 3 fuer Heap-Diagnose)
272 lines
11 KiB
INI
272 lines
11 KiB
INI
; PlatformIO Project Configuration File
|
||
;
|
||
; Build options: build flags, source filter
|
||
; Upload options: custom upload port, speed and extra flags
|
||
; Library options: dependencies, extra library storages
|
||
; Advanced options: extra scripting
|
||
;
|
||
; Please visit documentation for the other options and examples
|
||
; https://docs.platformio.org/page/projectconf.html
|
||
|
||
; =============================================================================
|
||
; GEMEINSAME BASIS - wird von allen Environments geerbt
|
||
; =============================================================================
|
||
[env]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
monitor_filters = esp32_exception_decoder, default
|
||
board_build.partitions = min_spiffs.csv
|
||
build_flags =
|
||
-DCORE_DEBUG_LEVEL=1 ; 0=keine, 1=Fehler, 3=Info, 5=Verbose
|
||
-DARDUINO_LOOP_STACK_SIZE=8192
|
||
-DELEGANTOTA_USE_ASYNC_WEBSERVER=1
|
||
-DFIRMWARE_VERSION='"1.2.1"' ; Semantic Versioning – hier erhöhen bei neuem Release
|
||
lib_deps =
|
||
majicDesigns/MD_Parola @ ^3.7.3
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
knolleary/PubSubClient @ ^2.8
|
||
tzapu/WiFiManager @ ^2.0.17
|
||
https://github.com/me-no-dev/AsyncTCP.git
|
||
https://github.com/me-no-dev/ESPAsyncWebServer.git
|
||
bblanchon/ArduinoJson @ ^7.3.0
|
||
https://github.com/ayushsharma82/ElegantOTA.git
|
||
|
||
; =============================================================================
|
||
; HAUPT-ENVIRONMENT - USB Flash & Monitor
|
||
; pio run -e az-delivery-devkit-v4 --target upload
|
||
; =============================================================================
|
||
[env:az-delivery-devkit-v4]
|
||
upload_port = COM3
|
||
monitor_dtr = 0
|
||
monitor_rts = 0
|
||
|
||
; =============================================================================
|
||
; OTA ENVIRONMENT – Firmware via WiFi flashen (ArduinoOTA / espota)
|
||
; Erscheint in Arduino IDE als Netzwerk-Port: lasercutter-display.local
|
||
; PlatformIO: pio run -e az-delivery-devkit-v4-ota --target upload
|
||
; IP anpassen: upload_port = <IP des ESP32> (oder lasercutter-display.local)
|
||
;
|
||
; Falls ein Web-Passwort gesetzt ist, muss es hier eingetragen werden:
|
||
; upload_flags = --auth=DEIN_WEBPASSWORT
|
||
; Oder als Umgebungsvariable (empfohlen, damit das Passwort nicht im Repo landet):
|
||
; Vor dem Upload: set LASERCUTTER_OTA_PW=DEIN_PASSWORT (Windows)
|
||
; upload_flags = --auth=${sysenv.LASERCUTTER_OTA_PW}
|
||
; =============================================================================
|
||
[env:az-delivery-devkit-v4-ota]
|
||
;upload_port = 172.30.30.90
|
||
upload_port = 192.168.2.62
|
||
upload_protocol = espota
|
||
; upload_flags = --auth=DEIN_WEBPASSWORT ; <-- auskommentieren und anpassen wenn Passwort gesetzt
|
||
|
||
; =============================================================================
|
||
; OTA ENVIRONMENT (HTTP) – Firmware via ElegantOTA Webinterface
|
||
; Nur als Fallback falls ArduinoOTA nicht erreichbar
|
||
; pio run -e az-delivery-devkit-v4-ota-http --target upload
|
||
; =============================================================================
|
||
[env:az-delivery-devkit-v4-ota-http]
|
||
;upload_port = 172.30.30.90
|
||
upload_port = 192.168.2.62
|
||
upload_protocol = custom
|
||
extra_scripts = upload_ota.py
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 1.4 – Dot-Matrix-Display Verdrahtungstest
|
||
; Flash: pio run -e test-display --target upload
|
||
; =============================================================================
|
||
[env:test-display]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
build_src_filter = -<*> +<../test_sketches/test_display.cpp>
|
||
; SPI auf 1 MHz reduzieren: robuster bei 8 verketteten Modulen / langen Leitungen
|
||
build_flags =
|
||
-DMAX_SPI_CLOCK_SPEED=1000000L
|
||
-Wno-cpp ; unterdrückt "INFO: ARDUINO SPI interface selected"-Warning aus MD_MAX72XX
|
||
lib_deps =
|
||
majicDesigns/MD_Parola @ ^3.7.3
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT – Telnet-Server Verifikation (ohne externe Libraries)
|
||
; Testet ob WiFiServer/WiFiClient auf dem ESP32 korrekt schreibt.
|
||
; Credentials: TEST_WIFI_SSID + TEST_WIFI_PASSWORD in mqtt_test_secrets.h
|
||
; Flash: pio run -e test-telnet --target upload
|
||
; Monitor: pio device monitor (USB Serial, 115200)
|
||
; Telnet: telnet <IP> 23 (oder PuTTY Telnet Port 23)
|
||
; =============================================================================
|
||
[env:test-telnet]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = 172.30.30.90
|
||
upload_protocol = espota
|
||
monitor_speed = 115200
|
||
board_build.partitions = min_spiffs.csv
|
||
build_src_filter = -<*> +<../test_sketches/test_telnet.cpp>
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 1.5 – Push Button / Potentialfreier Schalter Verdrahtungstest
|
||
; Flash: pio run -e test-button --target upload
|
||
; =============================================================================
|
||
[env:test-button]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
build_src_filter = -<*> +<../test_sketches/test_button.cpp>
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 2.2 – NVS Persistenz-Verifizierung
|
||
; Flash: pio run -e test-nvs --target upload
|
||
; Monitor: pio device monitor -e test-nvs
|
||
; =============================================================================
|
||
[env:test-nvs]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
build_src_filter = -<*> +<../test_sketches/test_nvs.cpp> +<../src/settings.cpp>
|
||
; MD_MAX72XX wird nur wegen config.h -> DISPLAY_HW_TYPE benötigt
|
||
lib_deps =
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 3.3 – WiFiManager Verbindungstest
|
||
; Flash: pio run -e test-wifi --target upload
|
||
; Monitor: pio device monitor -e test-wifi
|
||
; Credentials löschen: BOOT-Taste (GPIO 0) beim Start 3 s gedrückt halten
|
||
; =============================================================================
|
||
[env:test-wifi]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
board_build.partitions = min_spiffs.csv
|
||
build_src_filter = -<*> +<../test_sketches/test_wifi.cpp> +<../src/wifi_connector.cpp>
|
||
lib_deps =
|
||
tzapu/WiFiManager @ ^2.0.17
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 5.6 – LaserTracker Verifikation
|
||
; Flash: pio run -e test-laser-tracker --target upload
|
||
; Monitor: pio device monitor -e test-laser-tracker
|
||
; Button (GPIO 4) druecken = Laser aktiv simulieren
|
||
; BOOT-Taste (GPIO 0) 3s halten = Gesamtzeit loeschen
|
||
; =============================================================================
|
||
[env:test-laser-tracker]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
build_src_filter = -<*> +<../test_sketches/test_laser_tracker.cpp> +<../src/display_manager.cpp> +<../src/settings.cpp> +<../src/laser_tracker.cpp>
|
||
build_flags =
|
||
-Wno-cpp
|
||
lib_deps =
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 4.3 – DisplayManager Verifikation
|
||
; Flash: pio run -e test-display-mgr --target upload
|
||
; Monitor: pio device monitor -e test-display-mgr
|
||
; =============================================================================
|
||
[env:test-display-mgr]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
build_src_filter = -<*> +<../test_sketches/test_display_manager.cpp> +<../src/display_manager.cpp>
|
||
build_flags =
|
||
-Wno-cpp
|
||
lib_deps =
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 6.5 – MqttClient Verifikation
|
||
; Flash: pio run -e test-mqtt --target upload
|
||
; Monitor: pio device monitor -e test-mqtt
|
||
;
|
||
; Verifikation:
|
||
; - MQTT Explorer -> broker.hivemq.com:1883
|
||
; - Subscribe: lasercutter/#
|
||
; - lasercutter/status erscheint beim Connect (retained) und alle 60s
|
||
; - lasercutter/session erscheint nach Laser-AUS (GPIO 4 loslassen)
|
||
; - Publish lasercutter/reset Payload "1" -> Gesamtzeit wird geloescht
|
||
; - BOOT-Taste 3s halten -> lokaler Reset
|
||
; =============================================================================
|
||
[env:test-mqtt]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
board_build.partitions = min_spiffs.csv
|
||
build_src_filter = -<*> +<../test_sketches/test_mqtt_client.cpp> +<../src/settings.cpp> +<../src/display_manager.cpp> +<../src/laser_tracker.cpp> +<../src/wifi_connector.cpp> +<../src/mqtt_client.cpp>
|
||
build_flags =
|
||
-Wno-cpp
|
||
lib_deps =
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
knolleary/PubSubClient @ ^2.8
|
||
tzapu/WiFiManager @ ^2.0.17
|
||
bblanchon/ArduinoJson @ ^7.3.0
|
||
|
||
; =============================================================================
|
||
; TEST ENVIRONMENT 7.7 – WebServer Verifikation
|
||
; Flash: pio run -e test-web --target upload
|
||
; Monitor: pio device monitor -e test-web
|
||
;
|
||
; Verifikation:
|
||
; - IP-Adresse aus Serial Monitor ablesen
|
||
; - Browser: http://<IP>/ -> Statusseite
|
||
; - Browser: http://<IP>/config -> Konfigurationsformular
|
||
; - Browser: http://<IP>/update -> ElegantOTA
|
||
; - Gesamtzeit-Reset-Button testen
|
||
; - Konfiguration aendern + nach Neustart pruefen
|
||
; =============================================================================
|
||
[env:test-web]
|
||
platform = espressif32
|
||
board = az-delivery-devkit-v4
|
||
framework = arduino
|
||
upload_port = COM3
|
||
monitor_speed = 115200
|
||
monitor_echo = yes
|
||
board_build.partitions = min_spiffs.csv
|
||
build_src_filter =
|
||
-<*>
|
||
+<../test_sketches/test_web_server.cpp>
|
||
+<../src/settings.cpp>
|
||
+<../src/display_manager.cpp>
|
||
+<../src/laser_tracker.cpp>
|
||
+<../src/wifi_connector.cpp>
|
||
+<../src/mqtt_client.cpp>
|
||
+<../src/web_server.cpp>
|
||
build_flags =
|
||
-Wno-cpp
|
||
-DASYNC_TCP_SSL_ENABLED=0
|
||
-DELEGANTOTA_USE_ASYNC_WEBSERVER=1
|
||
lib_deps =
|
||
majicDesigns/MD_MAX72XX @ ^3.5.1
|
||
knolleary/PubSubClient @ ^2.8
|
||
tzapu/WiFiManager @ ^2.0.17
|
||
bblanchon/ArduinoJson @ ^7.3.0
|
||
https://github.com/me-no-dev/AsyncTCP.git
|
||
https://github.com/me-no-dev/ESPAsyncWebServer.git
|
||
https://github.com/ayushsharma82/ElegantOTA.git
|