Jump to content

MQTT direkt über WLAN (ESP32)


pau

Recommended Posts

Hallo,

wenn ich das richtig verstehe, kann man MQTT bei Tinkerforge nur nutzen, wenn ich einen Host im gleichen Netzwerk habe, welcher mit dem Brickdaemon und den "API-Bindings" arbeitet.

Bei meinem Projekt ist es nicht möglich einen Host zu haben, die Daten müssen direkt über WLAN und MQTT versendet werden. Es handelt sich um ein größeres Projekt mit 10+ ESP32 und über 50 Sensoren.

Leider habe ich keine Erfahrung mit platformio oder Tinkerforge. Könnt ihr mir Tipps geben, welche Dateien ich anfassen muss, um ein neues Arduinosktipt zu schreiben, welches Sensordaten (Tinkerforge Sensoren) ausließt und direkt per MQTT versendet?

https://github.com/Tinkerforge/esp32-firmware/tree/master

Habt ihr gute allgemeine Tipps zum weiteren Vorgehen für meinen Fall?

bearbeitet von pau
Link zu diesem Kommentar
Share on other sites

Du hast zwei Möglichkeiten:

1. Kannst du die ganze Standardfirmware ignorieren und dir einen "normalen" Arduino-Sketch schreiben. Dokumentation dafür findest du hier: https://www.tinkerforge.com/de/doc/Software/API_Bindings_uC_HAL_Arduino_ESP32_Brick.html bzw. für den ESP32 Ethernet Brick hier:https://www.tinkerforge.com/de/doc/Software/API_Bindings_uC_HAL_Arduino_ESP32_Ethernet_Brick.html  Das ist für den Anfang einfacher, du musst aber die Netzwerk- und MQTT-verbindungen von Hand aufbauen oder dir eine MQTT-Bibliothek suchen.

2. Kannst du dir die ESP-Firmware erweitern, dafür haben wir hier: https://www.tinkerforge.com/de/doc/Tutorials/Tutorial_ESP32_Firmware/Tutorial.html#tutorial-esp32-firmware ein Tutorial. Du müsstest im Endeffekt das Mqtt-Modul reinkompilieren (bei den custom_backend_modules und custom_frontend_modules jeweils zu der Liste hinzufügen) und dir ein eigenes Modul schreiben, dass die Sensoren ausliest und die Daten in eine API schreibt. Das ist im Tutorial Phase 2. APIs werden sowohl für die Kommunikation mit dem Webinterface über HTTP, als auch für MQTT verwendet. Das sollte also automatisch funktionieren. Der restliche Teil der Implementierung ist dann relativ ähnlich zu dem Arduino-Sketch den du dir in Variante 1 geschrieben hättest.

In beiden Fällen benutzt du die C/C++-Bindings für Mikrocontroller für die Kommunikation mit den Bricklets (wir haben für jedes Bricklet Beispiele!), der Teil sollte also mehr oder weniger identisch aussehen.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...