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?

Edited by pau
Link to comment
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 to comment
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...