Ich habe ein inzwischen ziemlich umfangreiches Projekt mit dem ESP. Ich habe ehrlich gesagt "Angst" den Stand der verwendeten Libraries zu aktualisieren, da ich beim letzten Versuch unzählige Fehlermeldungen beim compilieren bekommen habe und deshalb zurück rudern musste.
Leider stürzt mein ESP irgendwann während des Verbindungsaufbaus in WLAN ab bzw. nach Setup, wenn ich nichts in loop() aufrufe. Ich vermute mein RAM wird zu wenig.
Am Ende des SETUP gibt der Behfehl ESP.getFreeHeap() einen Wert von ca. 27944 zurück. Klingt mal nicht so wenig...
Danach kommen ein kryptische Zeichen. Hier mal die Debugausgabe der seriellen Schnittstelle (115000 Baud) rein
ᄂl↓ ̄ᆲl$$:x285D: {0,1}
286D: {0,2} 27792
6838M: {150,3}
ᆵトFJ
フ
95D: {0,1}
96D: {0,2} 27896
Zuerst steht die Laufzeit in Milisekunden. Danach ein D bedeutet, es ist eine Debugausgabe. M bedeutet es ist eine Meldung. {0,1} ist die Ausgabe ganz zu Beginn, {0,2} ist die Ausgabe von ESP.getFreeHeap() am Ende von setup(). Nach 6 Sekunden kommt noch eine Meldung vom die aufgrund folgenden Befehles ausgegeben wurde:
Auch wenn ich den gesamten Code in loop() auskommentiere stürzt es auch einigen Sekunden (geschätzt sind es auch ca. 7 Sekunden) ab
Da ich in Setup bzw. in den darin aufgerufenen Routinen nichts (bewusst) geändert habe, habe ich den Verdacht, dass der Heap einfach zu klein wurde...
Ich verwende folgende Libraries.
#include <RCSwitch.h>
#include <FS.h> //Ermöglicht Zugriff auf Dateisystem
#include "fauxmoESP.h"
#include "ESP8266_Alexa_HTML.h"
#include <ESPAsyncWebServer.h>
#include "ArduinoJson.h" //Library für Zugriff auf Dateiinhalt (ähnlich wie INI)
Ich glaube es macht wenig Sinn das gesamte Projekt zu posten - es ist inzwischen riesig und für einen Programmierer vermutlich chaotisch. Außerdem muss man Dateien auf SPIFFS hochladen, damit man die eigentliche Funktion bekommt...
Habt Ihr vielleicht Tipps, wie ich eventuell an Fehlermeldungen von den eingebundenen Libraries komme? Mir scheint als hätten die Debugausgaben eingearbeitet - aber ich weiß nicht, wie ich da ran komme... Kann ich bei einer anderen seriellen Einstellung der seriellen Schnittstelle die kryptischen Zeichen als "Klartext" bekommen?
Am ehesten stürzt ESPAsyncWebServer.h ab, da sich dieser selbst (also nicht in loop() getriggert) aufruft...
Danke schon mal und sorry wegen des komplizierten Sachverhaltes...