ESP32 + PlatformIO + Adafruit IO = Error

OP #8010316
Lesenswert?

Liebe Forengemeinde,

ich versuche gerade ein XIAO ESP32S3 board unter Visual Code auf einem MacBook M1 mit PlattformIO ans Laufen zu bringen.

hello_world läuft schon und auch ein kleines Programm, das einen DHT22 Sensor abfragt und die Ergebnisse per SerialPort ausgibt, funktioniert.

Nun möchte ich die Werte des Sensors gerne in die Adafruit IO Cloud hochladen und habe dazu die "Adafruit IO Arduino" Lib in das Projekt eingebunden.

Sobald ich das mache, erscheint beim Build der unten angehängte Fehler. (dabei benutze ich nur die default main.cpp, die mir PlatformIO beim Anlegen eines Projekte schenkt - quasi ein hello_world). Ein Auszug aus der Fehlermeldung:

1
Compiling .pio/build/seeed_xiao_esp32s3/lib2f4/Adafruit IO Arduino/blocks/AdafruitIO_Block.cpp.o
2
Compiling .pio/build/seeed_xiao_esp32s3/lib2f4/Adafruit IO Arduino/blocks/ChartBlock.cpp.o
3
/Users/igel1/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In constructor 'WiFiClientSecure::WiFiClientSecure()':
4
/Users/igel1/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:34:5: error: '_connected' was not declared in this scope
5
     _connected = false;
6
     ^~~~~~~~~~
7
/Users/igel1/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:34:5: note: suggested alternative: 'connected'
8
     _connected = false;
9
     ^~~~~~~~~~
10
     connected

Meine platformio.ini Datei sieht wie folgt aus:

1
[env:seeed_xiao_esp32s3]
2
platform = espressif32
3
board = seeed_xiao_esp32s3
4
framework = arduino
5
lib_deps = adafruit/Adafruit IO Arduino

Wenn ich das ganze für ein stm32 board kompiliere, funktioniert's.

Habt Ihr eine Ahnung, woran das liegen könnte?

Wenn Ihr noch weitere Infos/Dateien zur Analyse benötigt, so sagt bitte einfach Bescheid. Bin etwas eingerostet in Sachen C bzw. C++.

Viele Grüße

Igel1

Angehängte Dateien:
OP #8010463
Lesenswert?

Danke an Alexander und N.M. für die Hinweise.

Ich werde dann heute Nachmittag einmal die Version von AdafruitIO "runterdrehen" und hier berichten, was dann passiert.

Und auch der Link von Alexander scheint sehr interessant zu sein - hatte ich zwar schon gesehen, aber bislang noch nicht konsequent verfolgt und umgesetzt. Kommt dann ebenfalls auf meine ToDo-Liste. Ich werde berichten ...

Dummerweise verstehe ich nicht so wirklich, wie dieses PlatformIO-Plugin funktioniert und wie und von welchen Config-Files der ganze Build-Vorgang gesteuert wird. Ich wollte mich eigentlich nicht allzu tief in all das eingraben, aber aktuell sieht es so aus, dass ich genau das tun müsste.

Ach wenn doch einfach mal diese ganzen IDE-Framework-Libs-Dingsbums-Dinge "out of the box" funktionieren würden und man sich um die eigentliche Programmierung kümmern könnte ...

Viele Grüße

Igel1

OP #8010491
Lesenswert?

Andreas S. schrieb:

Danke an Alexander und N.M. für die Hinweise.

Ich werde dann heute Nachmittag einmal die Version von AdafruitIO "runterdrehen" und hier berichten, was dann passiert.

Gesagt, getan.

Habe alle AdafruitIO Libs, die mir in PlatformIO angeboten werden ausprobiert: von der aktuellen 4.3.3 bis hinunter zur 4 Jahre alten Version 4.2.3

Ergebnis: ich bekomme überall denselben Fehler (siehe Eingangspost in diesem Thread).

Soweit mein Zwischenstand.

Viele Grüße

Igel1

#8010575
Lesenswert?

5.5.2

https://github.com/espressif/esp-idf

1
[env:seeed_xiao_esp32s3]
2
;platform = <======== Such dir etwas aktuelleres aus =========>
3
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
4
board = seeed_xiao_esp32s3
5
framework = arduino
6
lib_deps = adafruit/Adafruit IO Arduino
: Bearbeitet durch User
OP #8010750
Lesenswert?

Sorry Leute - ich musste mich erst einmal auf einen Ratschlag konzentrieren und habe Obelix X. Ratschlag verfolgt:

Obelix X. schrieb:

Schau mal hier vorbei :

https://randomnerdtutorials.com/vs-code-pioarduino-ide-esp32/ https://github.com/pioarduino

Also habe ich das PlatformIO Plugin aus VS Code rausgeworfen und duch pioarduino ersetzt (natürlich vorab auch ~/.platformio gelöscht.

Immerhin: jetzt habe ich zumindest ein Programm, was sich kompilieren lässt - Dankeschön also an Obelix X.

Einziges Manko: das Programm als solches funktioniert auf meinem XIAO ESP32S3 noch nicht :-)

Es bleibt scheinbar bei der folgenden Zeile hängen:

1
 io.connect();

Die wesentlichen Dateien habe ich einfach mal hier angehängt.

Geklaut habe ich den Code von hier: https://learn.adafruit.com/adafruit-io-basics-temperature-and-humidity

Falls Euch spontan noch etwas einfällt ...

Viele Grüße

Igel1

Angehängte Dateien:
OP #8010922
Lesenswert?

Obelix X. schrieb:

Lass den Quatsch mit den Adafruit-Libs. Nimm Bibliotheken die viel verbreiterter sind wie z.B. die von Arduino. Was ist der Grund, warum du die Adafruit-Lib nimmst?

Nun ja - ich möchte meine Daten (Temperatur und Luftfeuchtigkeit) halt in die Adafruit Cloud zu io.adafruit.com hochladen und dafür stellt Adafruit diese fertige Lib zur Verfügung (um Daten dort in sogenannte "Feeds" zu schreiben).

Ich habe inzwischen übrigens einen kleinen Fortschritt erreicht, indem ich den Code der oben verlinkten Seite einfach einmal in der Arduino IDE ausprobiert habe - das funktionierte. Bin dabei gaaanz genau nach Anleitung vorgegangen - nix denken, nur malen nach Zahlen: https://learn.adafruit.com/adafruit-io-basics-temperature-and-humidity. Damit weiß ich immerhin, dass es prinzipiell funktionieren müsste.

Nun würde ich trotzdem gerne genau diesen Code auch unter pioarduino ans Laufen bringen ... mal sehen, ob ich das (evtl. mit Eurer Hilfe) noch schaffe.

Viele Grüße

Igel1

#8010995
Lesenswert?

Zu deinem ursprünglichen Problem, dazu müsstest Du mal herausfinden wer oder was die WiFiClientSecure.cpp installiert hat. Die gibt es nämlich seit 2 Jahren gar nicht mehr.

https://github.com/espressif/arduino-esp32/commits/f2026f1/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp?browsing_rename_history=true&new_path=libraries/NetworkClientSecure/src/NetworkClientSecure.cpp&original_branch=f2026f1

OP #8011057
Lesenswert?

Alexander schrieb:

Zu deinem ursprünglichen Problem, dazu müsstest Du mal herausfinden wer oder was die WiFiClientSecure.cpp installiert hat. Die gibt es nämlich seit 2 Jahren gar nicht mehr.

https://github.com/espressif/arduino-esp32/commits/f2026f1/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp?browsing_rename_history=true&new_path=libraries/NetworkClientSecure/src/NetworkClientSecure.cpp&original_branch=f2026f1

Hab's gerade nochmals reproduziert:

Das besagte File wird genau dann installiert, sobald man über das PlatformIO-Plugin das erste Projekt anlegt und dafür "Arduino" als Framework auswählt.

Das File liegt dann hier: ~/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp

Viele Grüße

Igel1

#8011082
Lesenswert?

Arduino ist jetzt bei v3.3.7 (IDF v5.5.2) - dann ist das PlatformIO-Plugin wohl veraltet:

https://github.com/platformio/platform-espressif32/releases/v6.12.0

Supported Frameworks

  • Arduino - v2.0.17 (based on IDF v4.4.7)
  • ESP-IDF - v5.5.0

Mit pioarduino sollte das Problem gelöst sein (hast ja auch gesagt es kompiliert)

https://github.com/pioarduino/platform-espressif32/releases

Ansonsten vielleicht mal vscode-arduino-community probieren, damit spiele ich gerade rum.

Nemopuk schrieb:

https://marketplace.visualstudio.com/items?itemName=vscode-arduino.vscode-arduino-community

: Bearbeitet durch User
#8011306
Lesenswert?

Experiment. Schau mal wo bei Dir auf dem Rechner diese Datei liegt.

https://github.com/espressif/arduino-esp32/blob/3.3.7/libraries/NetworkClientSecure/src/WiFiClientSecure.h

bin mir nicht sicher, irgendwo unter

1
~/Library/Arduino15
2
~/Documents/Arduino/libraries

Wenn die Ordnerstruktur es zulässt, dann lösche mal den gesamten libraries Ordner und setze einen Symlink vom arduino-esp32 Library Ordner ins framework-arduinoespressif32. Sollte hinterher so aussehen.

1
~/.platformio/packages/framework-arduinoespressif32/libraries/NetworkClientSecure/src/WiFiClientSecure.h <- gelöscht
2
~/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.h <- neu
OP #8011527
Lesenswert?

Alexander schrieb:

Experiment. Schau mal wo bei Dir auf dem Rechner diese Datei liegt.

Habe auf meinem Mac mal alle Verzeichnisse unterhalb von meinem User-Homeverzeichnis nach "WiFiClientSecure*" durchsucht.

Das Ergebnis findest Du/Ihr im Anhang. Notiz dazu: unterhalb von /Users/igel1/esp/ liegen meine Visual Studio Code Projekte für den ESP32.

Viele Grüße

Igel1

PS: den Symlink-Test mache ich nachher noch - werde dann wieder hier berichten.

Angehängte Dateien:
: Bearbeitet durch User
OP #8011737
Lesenswert?

Alexander schrieb:

Vermutlich stimmt der Core nicht. Bleibt nur noch die letzte Alternative.

... und die wäre?

Aber ich muss gestehen: vmtl. liegt es auch ein wenig an meiner Ahnungslosigkeit. Was genau meinst Du z.B. mit "Core"?

Und überhaupt ist mir nicht so ganz klar, wie das ganze funktioniert:

  • Wird bei der Initialisierung eines Projektes im Verzeichnis ~/.platform ein Arduino-Betriebssystem hinterlegt?

  • Wenn ja: wie finde ich die Version dieses Arduino-Betriebssystems heraus?

  • Verbirgt sich hinter diesem "Betriebssystem" im Falle des ESP32S3 in Wirklichkeit ein FreeRTOS?

Viele Grüße

Igel1

#8011751
Lesenswert?

Das Experiment hat ja nur die Libs vom Arduino ESP Framework eingebunden, nicht das ganze Framework. Das passt alles nicht zueinander. Experiment gescheitert, und da ich selbst nur dummer Arduino Nutzer bin keine Lust da rumzufrickeln. Wenn die das nicht mal hinkriegen oder keine Lust haben.

Der ESP32-S3 ist ne leicht andere Hardware und im core/ gibts da für die verschiedenen ESP noch Unterordner, nehme an das sind die HAL Libs die nicht passen, bin mir aber jetzt auch nicht sicher wie platformio die auswählt, da ich noch kein anderes Board genutzt habe.

Also lösch den veralteten platformio Arduino Kram der nicht funktioniert und installiere die vscode-arduino-community Extension.

Dazu die Datei vscode-arduino-darwin-x64.vsix herunterladen.

In VS Code - Extensions - oben rechts drei Punkte - Install from VSIX

https://github.com/tylerjwatson/vscode-arduino/releases/tag/v0.6.1

Danach neustarten, unten in der Statusleiste ESPTool (zum flashen) auswählen, Board auswählen, COM Port auswählen, usw.

OP #8011771
Lesenswert?

Habe jetzt mal alle Teile des Codes, die AdafruitIO zum Hochladen der Daten nutzen, aus dem Programm geworfen.

Es bleibt das reine Lesen und Ausgeben der Temperatur und Luftfeuchtewerte des DHT22 Sensors übrig - das funktioniert.

Ganz so übel scheint der pioarduino-Core also nicht zu sein. (ich nutze ja pioarduino statt plattformIO).

Viele Grüße

Igel1

PS: und Danke an Dich, Alexander, für Deine Mühen!

OP #8011839
Lesenswert?

Alexander schrieb:

Also lösch den veralteten platformio Arduino Kram der nicht funktioniert und installiere die vscode-arduino-community Extension.

Dazu die Datei vscode-arduino-darwin-x64.vsix herunterladen.

In VS Code - Extensions - oben rechts drei Punkte - Install from VSIX

https://github.com/tylerjwatson/vscode-arduino/releases/tag/v0.6.1

Ich muss gestehen, dass ich diesen Weg nur ungern gehen möchte, weil die Datei 3 Jahre alt ist und das Projekt scheinbar tot ist.

Ich würde lieber "mainstream" bleiben, weil ich auf möglichst viel Doku im Internet angewiesen bin und auch gerne an Aktualisierungen und Neuerungen der jeweiligen Projekte teilnehmen möchte.

Viele Grüße

Igel1

OP #8012176
Lesenswert?

Alexander schrieb:

Hier ist die aktuelle Version als Nachfolger der offiziellen Extension.

https://github.com/vscode-arduino/vscode-arduino

Nach all den vielen Fehlversuchen, brauchte ich heute eine kleine Pause, um die ganzen Niederlagen zu verarbeiten.

Ich werde es dann nochmals mit dem o.g. Plugin probieren - allerdings bin ich auch damit nicht so ganz glücklich, denn auch in diesem Projekt ist seit einem Jahr nix mehr passiert.

Wenn allerdings, wie Du in Deinem weiteren Post beschreibst, von dem Plugin sowieso nur das Original-Arduino-Framework einer (dann vmtl. notwendigen) Arduino-IDE Parallelinstallation angezapft wird, so sollte das nicht so schlimm sein, weil ja dann die Arduino-IDE-Installation die Framework-Aktualisierung übernimmt.

Hast Du, Alexander, dieses Plugin ebenfalls im Einsatz?

Viele Grüße

Igel1

#8012310
Lesenswert?

Hallo, ich würde meine ersten Versuche mit dem 'normalen' ESP32 (z.B.: AZ-DELIVERY ESP-32 Dev Kit C V4) machen. Mit diesem Board gibt es sicher mehr Erfahrungen als mit der S3 Varianten und das Board wird von PlatformIO unterstützt. Ich persönlich verwende es seit Jahren erfolgreich, um per https Daten auf Azure Table Storage Tabellen hochzuladen. z.B. -https://github.com/RoSchmi/Esp32_WiFiManager_HeatingSurvey Viele Grüße Roland

#8012313
Lesenswert?

Andreas S. schrieb:

Wenn allerdings, wie Du in Deinem weiteren Post beschreibst, von dem Plugin sowieso nur das Original-Arduino-Framework einer (dann vmtl. notwendigen) Arduino-IDE Parallelinstallation angezapft wird, so sollte das nicht so schlimm sein, weil ja dann die Arduino-IDE-Installation die Framework-Aktualisierung übernimmt.

Richtig. Das Arduino IDE Verzeichnis war bei mir schon drauf, lediglich die arduino-cli.exe musste ich mir selbst runterladen und in %PATH% hinzufügen.

https://docs.arduino.cc/arduino-cli/installation

Andreas S. schrieb:

Hast Du, Alexander, dieses Plugin ebenfalls im Einsatz?

Definiere Einsatz. Ich nutze VS Code nicht. Der genannte Nutzer der es mir empfohlen hat hat es wieder gelöscht. Sonst kenne ich keinen der es im Einsatz hat.

Alexander schrieb:

Ansonsten vielleicht mal vscode-arduino-community probieren, damit spiele ich gerade rum.

#8012761
Lesenswert?

Ich hatte Zeit noch mal zu schauen, die Arduino CLI besteht nur aus einer Binary - ich hab sie mir unter C:\Users\User\AppData\Local\Arduino15\arduino-cli\arduino-cli.exe abgelegt. Ich lese aber gerade das ist gar nicht nötig, die Extension hat diese schon bundled.

Hier mal meine Config. Ist halt Windows.

C:\Users\User\AppData\Local\Arduino15\arduino-cli.yaml

1
board_manager:
2
    additional_urls:
3
        - https://espressif.github.io/arduino-esp32/package_esp32_index.json

C:\Users\User\AppData\Roaming\Code\User\settings.json

1
{
2
  "telemetry.telemetryLevel": "off",
3
  "arduino.disableIntelliSense": false,
4
  "arduino.useArduinoCli": true,
5
  "arduino.verbose": true,
6
  "arduino.logLevel": "verbose",
7
  "arduino.allowPDEFiletype": false,
8
  "arduino.enableUSBDetection": true,
9
  "arduino.disableTestingOpen": false,
10
  "arduino.skipHeaderProvider": false,
11
  "arduino.additionalUrls": [
12
    "http://espressif.github.io/arduino-esp32/package_esp32_index.json"
13
  ],
14
  "C_Cpp.default.configurationProvider": "vsciot-vscode.vscode-arduino",
15
  "C_Cpp.intelliSenseEngine": "Default",
16
  "C_Cpp.default.includePath": [
17
    "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-libs\\*\\include\\**",
18
    "${workspaceFolder}\\**"
19
  ],
20
  "C_Cpp.default.compilerPath": "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\*\\bin\\xtensa-esp32-elf-g++"
21
}
OP #8012762
Lesenswert?

Alexander schrieb:

Richtig. Das Arduino IDE Verzeichnis war bei mir schon drauf, lediglich die arduino-cli.exe musste ich mir selbst runterladen und in %PATH% hinzufügen.

Hmmm - in der Installationsanleitung des Plugins wird empfohlen der (angeblich mit dem Plugin mitgelieferte?) Arduino CLI zu verwenden:

"Either the legacy Arduino IDE or Arduino CLI are required. The recommended approach is to use the version of Arduino CLI that comes bundled with the extension, which works out of the box. Support for the legacy Arduino IDE will be removed in a future version of the extension."

Kümmere mich am Wochenende mal näher darum. Ihr hört von mir.

Viele Grüße

Igel1

OP #8013254
Lesenswert?

Also:

Habe die das Plugin "Arduino Community Edition" in der Version 0.7.2 in mein VS Code installiert und in den Setting > Extensions > Arduino Configuration die Option "Use Arduino CLI" aktiviert, dann Neustart.

Dann ein funktionierendes Projekt aus meiner Original Arduino IDE nach VS Code kopiert und in den Workspace importiert.

Dann über den Arduino Board Manager das "esp32 by Espressif Systems" ausgewählt, das gab aber schon folgenden Fehler:

1
[Starting] Install package - esp32...
2
esp32:esp32:3.3.7
3
[Error] Exit with code=null"

Watt nu?

Keine Ahnung, keine Doku, nix ... Komme irgendwie auf keine grünen Zweig ...

Viele Grüße

Igel1

#8013458
Lesenswert?

Habe mal ein kurzes Beispielprojekt, das mir die Copilot KI gegeben hat unter VS-Code, Platformio Extension kompiliert. Kompilierung lief ohne Fehlermeldungen.

platformio.ini: [env:seeed_xiao_esp32s3] platform = espressif32 board = seeed_xiao_esp32s3 framework = arduino lib_deps = adafruit/Adafruit IO Arduino@^4.3.3

Code: #include <Arduino.h> #include "AdafruitIO_WiFi.h" #define IO_USERNAME "dein_username" #define IO_KEY "dein_aio_key" #define WIFI_SSID "dein_wifi" #define WIFI_PASS "dein_passwort" AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); AdafruitIO_Feed *temperature = io.feed("temperature");

void setup() { Serial.begin(115200); io.connect(); while(io.status() < AIO_CONNECTED) { delay(500); } temperature->save(23.5); } void loop() { io.run(); }

OP #8013520
Lesenswert?

Roland S. schrieb:

Habe mal ein kurzes Beispielprojekt, das mir die Copilot KI gegeben hat unter VS-Code, Platformio Extension kompiliert. Kompilierung lief ohne Fehlermeldungen.

Hallo Roland,

das ist sehr nett von Dir, dass Du die Kompilierung auf Deinem Computer (Windows?) einmal ausprobiert hast.

Richtig interessant wäre, ob der Code auch auf Deinem ESP läuft. Solltest Du keinen ESP32S3 zur Hand haben, so nimm einfach einen anderen.

Insbesondere, wenn Du den Code ein wenig modifizierst und vor und hinter das io.connect() noch ein Serial.print("vor connect"); bzw. Serial.print("nach connect"); hinzufügst.

Bei mir kompilierte der Code nämlich ebenfalls (zumindest unter pioarduino), hing dann aber genau bei io.connect(), wenn ich ihn auf den ESP32S3 gespielt habe.

Viele Grüße

Igel1

#8013688
Lesenswert?

So ich hab mal in der VS Code Arduino Community Edition über F1 -> Arduino: Library Manager -> Adafruit IO Arduino die Library installiert. Das Beispiel aus dem Release v4.3.3 hat nicht kompiliert, das aus dem Master hingegen schon:

https://github.com/adafruit/Adafruit_IO_Arduino/blob/222440c/examples/adafruitio_15_temp_humidity/adafruitio_15_temp_humidity.ino#L49

1
---- Opened the serial port COM3 ----
2
ets Jul 29 2019 12:21:46
3

4
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
5
configsip: 0, SPIWP:0xee
6
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
7
mode:DIO, clock div:1
8
load:0x3fff0030,len:4980
9
load:0x40078000,len:16612
10
load:0x40080400,len:3500
11
entry 0x400805b4
12
Connecting to Adafruit IO.......
13
---- Closed serial port COM3 due to disconnection from the machine ----

Ich sehe Connecting to Adafruit IO....... und die Punkte werden immer mehr (falls Du das mit hängen meinst?) Ich habe nichts konfiguriert.

In der settings.json habe ich als arduino.path den übergeordneten Pfad der arduino-cli Binary angegeben (ohne Dateinamen) damit ist sichergestellt das mein selbstinstalliertes Arduino-CLI verwendet wird.

1
{
2
    "telemetry.telemetryLevel": "off",
3
    "arduino.disableIntelliSense": false,
4
    "arduino.useArduinoCli": true,
5
    "arduino.verbose": true,
6
    "arduino.logLevel": "verbose",
7
    "arduino.allowPDEFiletype": false,
8
    "arduino.enableUSBDetection": true,
9
    "arduino.disableTestingOpen": false,
10
    "arduino.skipHeaderProvider": false,
11
    "arduino.path": "C:\\Users\\User\\AppData\\Local\\Arduino15\\arduino-cli",
12
    "arduino.additionalUrls": [
13
        "http://espressif.github.io/arduino-esp32/package_esp32_index.json"
14
    ],
15
    "C_Cpp.default.configurationProvider": "vsciot-vscode.vscode-arduino",
16
    "C_Cpp.intelliSenseEngine": "Default"
17
}

Bei MacOS musst Du evtl. noch den Gatekeeper für die arduino-cli deaktivieren wenn Du diese Meldung Exit with code=null hast, das ist ein Mac spezifisches Problem.

: Bearbeitet durch User
OP #8014320
Lesenswert?

Roland S. schrieb:

Hallo, ich habe jetzt zunächst einfach mal versucht ohne die AdafruitIO_WiFi library per REST einen Wert hochzuladen. Das hat schon mal geklappt.

-https://github.com/RoSchmi/Esp32_Adafruit_IO_REST_Test

Viele Grüße Roland

Hallo Roland,

bin schwer beeindruckt! Du hast Dir richtig viel Mühe gemacht und Du hast es tatsächlich gerockt!

Darf ich fragen, welche Tool-Kombination Du jetzt letztendlich verwendet hast?

Dem Code nach sieht das nach VS Code + platformIO + Arduino Framework aus, stimmt's?

Wie generierst Du dieses schöne Projekt-Struktur? Gibt's dafür einen Knopp in platformIO?

Viele Grüße

Igel1

OP #8014345
Lesenswert?

Alexander schrieb:

So ich hab mal in der VS Code Arduino Community Edition über F1 -> Arduino: Library Manager -> Adafruit IO Arduino die Library installiert. Das Beispiel aus dem Release v4.3.3 hat nicht kompiliert, das aus dem Master hingegen schon:

Habe mal den Master mit der Release v4.3.3 verglichen. Es haben sich lediglich die Beispiele und eine irrelevante Datei verändert. In den Beispielen war wohl ein Bug drin. Die eigentliche Lib ist unverändert.

Aber danke für den Tipp - das könnte ich auch nochmals probieren.

https://github.com/adafruit/Adafruit_IO_Arduino/blob/222440c/examples/adafruitio_15_temp_humidity/adafruitio_15_temp_humidity.ino#L49

1
> ---- Opened the serial port COM3 ----
2
> ets Jul 29 2019 12:21:46
3
> 
4
> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
5
> configsip: 0, SPIWP:0xee
6
> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
7
> mode:DIO, clock div:1
8
> load:0x3fff0030,len:4980
9
> load:0x40078000,len:16612
10
> load:0x40080400,len:3500
11
> entry 0x400805b4
12
> Connecting to Adafruit IO.......
13
> ---- Closed serial port COM3 due to disconnection from the machine ----
14
>

Ich sehe Connecting to Adafruit IO....... und die Punkte werden immer mehr (falls Du das mit hängen meinst?) Ich habe nichts konfiguriert.

Nein - meiner scheint sich in io.connect() aufzuhängen - ein print-statement danach wurde nicht mehr ausgedruckt.

In der settings.json habe ich als arduino.path den übergeordneten Pfad der arduino-cli Binary angegeben (ohne Dateinamen) damit ist sichergestellt das mein selbstinstalliertes Arduino-CLI verwendet wird.

Das werde ich ebenfalls noch probieren. Die arduino-cli habe ich bereits separat installiert.

1
> {
2
>     "telemetry.telemetryLevel": "off",
3
>     "arduino.disableIntelliSense": false,
4
>     "arduino.useArduinoCli": true,
5
>     "arduino.verbose": true,
6
>     "arduino.logLevel": "verbose",
7
>     "arduino.allowPDEFiletype": false,
8
>     "arduino.enableUSBDetection": true,
9
>     "arduino.disableTestingOpen": false,
10
>     "arduino.skipHeaderProvider": false,
11
>     "arduino.path": 
12
> "C:\\Users\\User\\AppData\\Local\\Arduino15\\arduino-cli",
13
>     "arduino.additionalUrls": [
14
>         "http://espressif.github.io/arduino-esp32/package_esp32_index.json"
15
>     ],
16
>     "C_Cpp.default.configurationProvider": 
17
> "vsciot-vscode.vscode-arduino",
18
>     "C_Cpp.intelliSenseEngine": "Default"
19
> }
20
>

Bei MacOS musst Du evtl. noch den Gatekeeper für die arduino-cli deaktivieren wenn Du diese Meldung Exit with code=null hast, das ist ein Mac spezifisches Problem.

Wow - das ist ein toller Hinweis - darauf wäre ich im Leben nicht gekommen. Keine Ahnung, ob ich den Gatekeeper für die arduino-cli deaktiviert bekomme. Mal schauen.

Habe dummerweise aktuell nicht so viel Zeit, um alles, was ich probieren möchte, auch tatsächlich auszutesten. Es rufen leider auch andere Pflichten ...

Viele Grüße

Igel1

#8014358
Lesenswert?

Andreas S. schrieb:

Darf ich fragen, welche Tool-Kombination Du jetzt letztendlich verwendet hast?

Wie generierst Du dieses schöne Projekt-Struktur? Gibt's dafür einen Knopp in platformIO?

Danke für das Lob. Ja, VS-Code + PlatformIO Extension + Arduino Framework. Den passenden Code liefert mir jetzt häufig Copilot, und das verblüffend gut, wenn man Ihm die richtigen Fragen stellt. Die PlatformIO Extension gibt die Projektstruktur ja schon weitgehend vor und erzeugt auch sozusagen auf Knopfdruck das lokale Git Repository. In den Ordner include schreibe ich immer eine spezielle .gitignore und die Kombination config_secret.h und config_secret_template.h, damit ich nicht immer versehentlich die Credentials auf Github hochlade. Die Arduino IO Cloud wollte ich mir schon länger mal ansehen, bin aber etwas enttäuscht, dass die Daten in der kostenlosen Variante nur 4 Wochen erhalten bleiben? Die Bezahlversion ist nicht gerade billig. Da lob ich mir doch Azure Storage Tables. Da zahl ich aktuell ca. 30 Cent im Monat und hab die Sensordaten von vielen zurückliegenden Jahren in der Cloud.

Viele Grüße Roland

OP #8016355
Lesenswert?

Heureka - es funktioniert!

Mein DHT22 Temperatur/Humidity Sensor sendet jetzt seine Daten per ESP32S3-Board in die AdafruitIO-Cloud.

Als Code habe ich dafür das Original Beispiel aus der Adafruit IO Arduino Library verwendet (adafruitio_15_temp_humidity.ino).

Die verwendete Toolsuite/Hardware/Config ist:

  • XIAO ESP32S3 Board
  • Arduino-CLI v1.4.1 (nicht die Arduino IDE)
  • VS Code v1.109.5
  • Arduino Community Edition Plugin v0.7.2
  • Board Manager: "esp32 by Expressif Systems"
  • Board Configuration: "XIAO_ESP32S3 (esp32)" mit default-Einstellungen
  • Adafruit IO Arduino Libs v4.3.4
  • Beispielcode "adafruitio_15_temp_humidity" aus der vorgenannten Lib ... DATA_PIN in der *.ino angepasst und credentials in config.h angepasst

Für die Nachwelt habe ich alles haarklitzeklein in anliegender Datei dokumentiert.

@Alexander und Roland:

Ich bin super stolz und happy, dass ich es final nun doch noch geschafft habe - ich war zwischenzeitlich arg frustriert gewesen.

Aber Ihr habt mich mit Euren Ideen und Vorschlägen die ganze Zeit super unterstützt und bei der Stange gehalten - dafür hier ein dickes Dankeschön an Euch beide!

Viele Grüße

Igel1

PS: letztlich konnte ich leider nicht mehr herausfinden, warum meine ersten Versuche allesamt gescheitert waren: war's meine Unfähigkeit (vermutlich)? Oder haben die vielen Updates die vorgestern reinkamen die Wende gebracht? Egal - Hauptsache es läuft jetzt endlich.

: Bearbeitet durch User
OP #8016596
Lesenswert?

Alexander schrieb:

Welche Updates, macOS 26.3 (Tahoe)?

Ja, mein MacOS habe ich auch upgedated, aber ich glaube kaum, dass es daran lag.

Viel wahrscheinlicher könnte es an der Adafruit IO Arduino Lib gelegen haben - die wurde am Wed Feb 25 20:24:46 2026 +0000 von 4.3.3. auf 4.3.4. upgedated.

Zusätzlich meine ich aus dem Augenwinkel ebenfalls bemerkt zu haben, dass auch die Arduino IDE upgedated wurde (bin mir aber nicht ganz sicher und eigentlich verwende ich die ja auch gar nicht in meinem VS Code Plugin).

Ich könnte jetzt alles nochmals zurückdrehen auf die alten Versionen und herausfinden, woran es tatsächlich lag, aber ... dafür bin ich schlichtweg zu faul bzw. es ist mir nicht wichtig genug.

Aktuell wundere ich mich gerade, warum der Code nicht läuft, wenn mein ESP32S3 Board nicht mit dem Mac verbunden ist und wenn dort nicht der Serielle Monitor gestartet ist ... Aber auch das werde ich noch herausfinden ... kann ja nicht so schwierig sein wie das Eingangsproblem.

Viele Grüße

Igel1

#8016648
Lesenswert?

Andreas S. schrieb:

Aktuell wundere ich mich gerade, warum der Code nicht läuft, wenn mein ESP32S3 Board nicht mit dem Mac verbunden ist und wenn dort nicht der Serielle Monitor gestartet ist

Wahrscheinlich wartet er darauf, dass im Sendepuffer Platz frei wird. Da niemand ihn ausliest, hängt das Programm nun. Ist bei STM32 auch so.

In einer anderen (eigenen) Implementierung breche ich das Warten nach 10 ms ab, und wenn das USB Kabel abgezogen ist, wird das Senden sofort abgebrochen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren