BLE GATT auf ESP32 mit Arduino-C++

Hi,

ich benutze für meine nodes einen ESP32 mit Arduino, weil Micropython mit BLE noch nicht so weit ist.
Da wäre es natürlich sinnvoll, auf vorhandenem aufzubauen.

Im github hab ich keine ESP32 Version gefunden. Das nächste dran wäre dann wohl ‘node-esp8266-generic’?
Wenn ich daraus eine ESP32 Version mache plus die BLE Funktionen, wollt ihr die dann mit hier aufnehmen? Wie funktioniert das hier?

1 Like

Hi Markus,

Ja, vermutlich. Die kam erst kürzlich durch einen Beitrag von @Stefan dazu und es wäre toll, wenn wir die gleich im Anschluss auch auf den ESP32 portieren könnten.

Benutzt Du auch den HX711? Dort haben wir ein paar Dinge bereits unter anderem für den ESP32 vorbereitet [1] und können bestätigen [2], dass sich diese Bibliothek nun auch auf dem ESP32 zu Hause fühlt.

Freilich, herzlich gern.

Wir können einfach hier im Beitrag weitermachen, wenn wir uns austauschen oder abstimmen wollen. Ansonsten ist es kürzlich bei @Stefan optimal gelaufen, er hat sich ein wenig mit Git und GitHub auseinandergesetzt und dann kurzerhand einen Pull-Request eingereicht [3].

Wir haben uns dazu nur kurz über den Namen abgestimmt (hier: node-esp8266-generic/node-esp8266-generic.ino) und der Rest klappte recht gut.

Wenn Du also Deine Änderungen einfach konditional in den bestehenden Code einfließen lässt und er durch die neue Funktionalität nicht überstrapaziert wird, wäre es optimal, weil wir ihn dann nicht unnötig fragmentieren. Es bestünden ja durchaus Hoffnungen, dass wir hier eine hybride Espressif-Codebase hinbekommen. In diesem Fall würde ich dann vorschlagen, dass wir die Datei in Folge bei uns im Tree kurzerhand umbenennen zu "node-esp-generic" o.ä. Mal sehen, was @Stefan dazu sagt.

Wir freuen uns über Deinen Beitrag und wünschen frohes Schaffen. Wenn sich weitere Fragen ergeben, lass sie gerne einfach hier fallen.

Viele Grüße,
Andreas.

[1] https://github.com/bogde/HX711/pull/123
[2] GitHub - bogde/HX711: An Arduino library to interface the Avia Semiconductor HX711 24-Bit Analog-to-Digital Converter (ADC) for Weight Scales.
[3] Pull Request for ESP 8266 Wemos D1 mini based Scale with Wifi / GSM Support by u-l-m-i · Pull Request #24 · hiveeyes/arduino · GitHub

Da spricht aus meiner Sicht nix dagegen - zumal der ESP32 parat liegt, da ich hoffe damit ins Wifi per WPA2 Enterprise zu kommen, da die GSM Verbindung per SIM800 einfach nicht so stabil ist.

Allerdings wäre ich Dir @Andreas wieder für ne Hilfestellung beim umbenennen dankbar. Allerdings komme ich die nächsten 1,5 Wochen vermutlich nicht dazu ;-)

1 Like

Bin auch neu bei github. :)
Ich habs geforked, gecloned und einen neuen branch & Verzeichnis angelegt (node_esp32-generic). Das wird aber vermutlich gar nicht nötig sein, da man das eigentlich für beide gleicheitig auslegen kann.

@Stefan: gibts einen wichtigen Grund, warum das für zwei HX711 ausgelegt ist?

Ja, denke ich auch. Tu doch einstweilen so, als würde es (später) anders heißen und arbeite - ohne es zu kopieren - direkt auf Basis des Codes von @Stefan weiter. So kommen wir am besten zum Ziel.

Oder ich nenne es jetzt geschwind um, dann ist es gleich besser. "node-esp-generic" – einverstanden?

1 Like

finde ich nicht toll; ESP allein bezieht sich oft auf ESP8266, während hier ja wohl ESP32 gemeint ist. Also sollte der Maschinenname (=Prozessortyp) darin vorkommen.

Hm, verstehe. Wir würden ja gerne eine hybride Firmware draus machen. Gut, dann lass uns ausführlicher werden. Weitere Vorschläge – diesmal alternativ auch einfach ohne das "generic" suffix, das gerade ein wenig inflationär wird. Ohnehin ists dann in der Mitte ausführlicher und nach hinten hin durchs Weglassen wieder kompakter.

  • node-espressif
  • node-esp8266-esp32

Würde ich als Namen bevorzugen - da ich die Begriffe ESP8266 & ESP32 eher Suche/Google oder in Verbindung bringe, als espressif

1 Like

2 posts were merged into an existing topic: Zwei Waagen pro Meßknoten

Guten Abend,

danke für Euren Austausch. Hierzu ein paar Gedanken von mir.

Namensfindung der Gemeinschaftsfirmware für ESP8266 und ESP32

Das finde ich argumentativ gut bzgl. “Discoverability”, danke. Ich wäre einverstanden – was sagen @poesel oder @weef?

Viele Grüße,
Andreas.

1 Like

Klingt gut, nix dagegen. Ich lass meinen branch aber erstmal beim alten Namen. Kann dann ja jemand umbenennen, der sich mit git auskennt. :D


Kompiliert schon, ist aber noch einiges auskommentiert.

1 Like

3 posts were merged into an existing topic: Zwei Waagen pro Meßknoten

Dazu fiel mir neulich noch was ein, konnte es aber jetzt erst heraussuchen. @lorenzo macht bei mellisphera ebenfalls Bluetooth und hat erst kürzlich unter anderem auch den Code dazu veröffentlicht.

Unsere Gemeinschafts-Firmwares (und nun auch die von Euch weiter verbesserten und beigetragenen - danke!) sind da doch ein Stück weit ausgereifter, daher wollte ich nur Verwandtschaft beim Szenario und dem Einsatz der verwendeten Technologien aufzeigen ;].

1 Like

Danke für den link aber Bluetooth <> BLE. Bluetooth ist ‘einfach’ nur eine serielle Schnittstelle per Funk. BLE ist mehr so eine client/server Geschichte mit vordefinierten Datenstrukturen. Das Lustige ist dann, das man den Stock mit dem Handy als Waage ansprechen und abfragen kann. Da das standardisiert ist, funktioniert das mit jeder (Waagen)App. Entsprechend auch Akkustatus, Temperatur etc…

1 Like

Danke. Das war mir nicht klar, welche Variante davon bei @lorenzo im Einsatz ist. Ich freue mich sehr auf die strukturierte BLE Geschichte. Ich hatte mich kurzzeitig mal damit befasst und was ich sah, fand ich auf den ersten Blick nicht dumm. Da ich es jedoch kaum nutze, weiß ich nicht Bescheid, wie die Interoperabilität in der Praxis mittlerweile aussieht. Das was Du dazu sagst, hört sich gut an.

Grundsätzlich würde ich die BLE Technologie auch sinnvoll bei Terkin for MicroPython zum Einsatz bringen wollen, für verschiedene Anwendungsfälle:

  • BLE Gerät als Proximity-Beacon für automatisch synthetisiertes “Imker am Stock”-Ereignis nutzen.
  • Berührungslose Interaktion mit dem u.U. unzugänglich verbauten Datenlogger am Stock ermöglichen.
  • Die Realisierung des “absolutely no infrastructure in sight” Wüstenzenarios, um dort den Imker als Datenmuli einzusetzen ¹.
  • Als Haupttelemetriepfad.

¹ Wüstenzenario – siehe auch… ;]

Hi @poesel and @Andreas good to see that you’re interested in bluetooth, since it has the big advantage to be compatible with any smartphone.
Some time ago we did some testing with BLE with @Geraldine but at the end we were short in time and decided to use standard Bluetooth. As you say BLE is a different approach with broadcasting. Also if I remember well there was an issue with a shield we used presenting some incompatibilities. Hardware can be tricky…

1 Like

5 posts were merged into an existing topic: BLE GATT auf ESP32 mit MicroPython

Es sieht so aus, als ob der Bluetooth-Softwarestack unter der Haube des Espressif SDK der Bluedroid Stack ist, der auch das Android Bluetooth Subsystem implementiert.