nano RP2040 connect
Nicht falsch verstehen: Der Cloud-Code funktioniert, aber wenn die Verbindung zum Wlan mal unterbrochen wird, oder bei Start nicht vorhanden ist wird der Code blockiert und/oder es erfolgt ein kompletter Neustart.
Kann ich das beeinflussen? Wenn ja - wie? In der thingProperties.h kann ich keine Möglichkeit dafür entdecken.
Meine Codeausführung ist primär. Die Unterbrechung der Cloudverbindung sollte meinen Code nicht gleich stoppen.
void loop() {
ArduinoCloud.update();
if (ArduinoCloud.connected() == 0) {
// ➜ nicht verbunden, nichts tun oder was auch immer
} else {
// ➜ in Verbindung gebracht. Code, der nur ausgeführt werden sollte, während eine Verbindung besteht.
}
}
Mein Lösungsansatz: Die Cloud wird erst später initialisiert.
Ich habe das jetzt prinzipiell so gelöst. Erste Test´s funktionieren erst mal gut.
..
#include "thingProperties.h" // Arduino Cloud
..
void loop()
{
//ArduinoCloud.update();
if (millis() >= lastmillis4 + 60000){ // Cloud erst nach 1 min
StateUPCloud = true; // UPCloud freischalten
}
UPCloud(); // UP
}
void UPCloud()
{
if (StateUPCloud == true) // erst nach Ablauf Zeitverzögerung nach Neu-Einschalten
{
if (SetupUPCloud == false) // Setup nur 1x
{
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
SetupUPCloud = true;
}
ArduinoCloud.update();
tft.drawString("Mit Cloud nach 1min verbunden!", 40, 220, 2);
if (WiFi.status() == WL_CONNECTED) {
tft.drawString("Mit Cloud verbunden ", 40, 200, 2);
}
else
{
tft.drawString("Cloudverbindung erst nach 1min...", 40, 200, 2);
}
}
}
Es hat sich aber ein neues Problem mit der Cloud gezeigt:
Wird die Verbindung zur Cloud irgendwann unterbrochen wird ein Reset ausgeführt. Neu einwählen darf er sich gerne, aber bitte kein Reset und Neustart - da wird mein Code ja wieder unterbrochen...
Hat jemand einen Tip wie ich das verhindern kann?
Dan such doch im deinem Geheimen Code wo das passiert
Mag sein das in irgend einer Lib ist das so vorgesehen.
Na ja ist ja so wen eine Wolke sich "ausregnet" ist die nicht mehr da, deshalb heißt ja das ganze "Cloud"
Hier ist ein Beispielcode, der die connected()-Methode verwendet:
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
void setup() {
// Initialisieren Sie die Verbindung zur Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
// Überprüfen Sie, ob eine Verbindung zur Cloud besteht
if (ArduinoCloud.connected()) {
// Wenn eine Verbindung besteht, führen Sie den Code aus
// ...
} else {
// Wenn keine Verbindung besteht, führen Sie den Code aus
// ...
}
}
Kopieren
Ich hoffe, das hilft Ihnen weiter! Lassen Sie mich wissen, wenn Sie weitere Fragen haben.
"
Die Cloudverbindung läuft bei mir auch nicht stabil. Manchmal geht gar nix mehr, und manchmal funktioniert der gleiche Code perfekt. Ich weiss noch nicht so recht was ich davon halten soll.
Die Verbindungsabfrage mit if (ArduinoCloud.connected()) zeigt öfters auch falsch an.