Ich hab in letzter Zeit relativ viel über BLE und Zigbee gelesen und würde gerne mal ein Prototypen damit aufbauen, um die Thematik auch praktischer besser fassen zu können. Ich habe aktuell einen Arduino Nano, welcher mittels 2x 18650-Akku (~4500mAh) mit Strom versorgt wird. Aktuell macht mein Prototyp nichts anderes als alle ~30Minuten aufzuwachen, einen Buzzer zum piepen zu bringen und wieder schlafen zu gehen. Gerne würde ich nun ein CC2542 oder CC2541 Modul kaufen und den Arduino mittels RST-Pin neustarten, sobald auf dem BLE-Modul eine Nachricht ankommt (das ganze möglichst Stromsparend und über Funk). Ich hab gelesen, dass BLE im "Sleep-Modus" rund 10uA benötitgt und trotztdem in dieser Zeit Nachrichten Empfangen und somit darauf reagieren kann. Meine Fragen: 1.) Sind meine jetztigen Annahmen richtig? 2.) Könnt ihr mir alternative Module oder Tutorials empfehlen? 3.) Habt ihr bereits Erfahrung oder Tipps die mir helfen könnten? PS: Ja der jetzige Anwendungsfall (nur piepen) ist nicht sinnvoll, es geht wirklich nur ums lernen und probieren Grüße Walter
Walter schrieb: > 1.) Sind meine jetztigen Annahmen richtig? Die Annahme dabei ist sicher, dass es bereits eine Verbindung gibt. Wenn es keine Verbindung gibt, müsste das Modul advertising data senden, damit eine entsprechende Gegenstelle (Controller) einen Verbindungsaufbau initieren kann. Der zeitliche Abstand, mit dem diese advertising data Packete gesendet werden, beeinflusst die Leistung und die Zeit, die im Schnitt für einen Verbindungsaufbau nötig ist. > 2.) Könnt ihr mir alternative Module oder Tutorials empfehlen? Für so eine Anwendung reicht wahrscheinlich jedes breakout board mit einem BLE fähigen Microcontroller (z.B. auch die nrf51 von Nordic). Als Gegenstück kannst Du dann einen generischen GATT Client verwenden. > PS: Ja der jetzige Anwendungsfall (nur piepen) ist nicht sinnvoll, es > geht wirklich nur ums lernen und probieren Na, es kommt halt drauf an, was genau Du lernen möchtest und was Du nicht mehr lernen musst. Hier ein Link zur GATT Dokumentation von Apple. Die finde ich ganz hilfreich: https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html
Torsten R. schrieb: > Walter schrieb: > >> 1.) Sind meine jetztigen Annahmen richtig? > > Die Annahme dabei ist sicher, dass es bereits eine Verbindung gibt. Wenn > es keine Verbindung gibt, müsste das Modul advertising data senden, > damit eine entsprechende Gegenstelle (Controller) einen > Verbindungsaufbau initieren kann. Der zeitliche Abstand, mit dem diese > advertising data Packete gesendet werden, beeinflusst die Leistung und > die Zeit, die im Schnitt für einen Verbindungsaufbau nötig ist. > Wie würde man in diesem Fall vorgehen um es möglichst Stromsparend zu halten. Ich gehe davon aus, dass man den Arduino in den Deepsleep schickt und den TX vom CC2540 an den RST Pin vom Arduino anschließt. Der CC2540 ist dann permanent im Sleep und würde den Arduino wecken, insofern eine Message hineinkommt, von dem Gerät mit dem der BLE verbunden ist? Leider gibt es hierzu kaum auffindbare Anleitung im Netz.
Walter schrieb: > Wie würde man in diesem Fall vorgehen um es möglichst Stromsparend zu > halten. > Ich gehe davon aus, dass man den Arduino in den Deepsleep schickt und > den TX vom CC2540 an den RST Pin vom Arduino anschließt. Der CC2540 ist > dann permanent im Sleep und würde den Arduino wecken, insofern eine > Message hineinkommt, von dem Gerät mit dem der BLE verbunden ist? Das Gerät müsste erst einmal eine Verbindung zum CC2540 aufbauen. Damit das Gerät eine Verbindung aufbauen kann, muss das Gerät aber erst einmal ein Advertising vom CC2540 empfangen. Der CC2540 muss also ständig Advertising data senden, damit Gerät überhaupt eine Verbindung aufbauen kann. Das Interval, mit dem der CC2540 advertisments sendet bestimmt dann auch, wie lange es im Schnitt dauert, bis das Gerät ein Advertisment vom CC2540 empfängt. > Leider gibt es hierzu kaum auffindbare Anleitung im Netz. Ich weis jetzt nicht, was Du mit Anleitung meinst. Aber zu BLE und dem von Dir ins Auge gefasste CC2540 gibt es öffentlich zugängliche Dokumentation.
Walter schrieb: > Gerne würde ich nun ein CC2542 oder CC2541 Modul kaufen und den Arduino > mittels RST-Pin neustarten, sobald auf dem BLE-Modul eine Nachricht > ankommt (das ganze möglichst Stromsparend und über Funk). Nimm einen Chip mit ARM drin, z.B.: https://www.conrad.de/de/p/sensorkit-texas-instruments-launchxl-cc2650-1518509.html http://www.ti.com/tool/LAUNCHXL-CC2650 Dieses Teil hat einen großen Vorteil: Du brauchst Deinen Arduino gar nicht mehr. Der Funkchip hat nämlich zu dem Prozessor für den Funk noch einen zweiten Prozessor eingebaut, auf dem Deine Anwendung läuft. Ein JTAG Debugger zum Entwickeln ist auch gleich mit dabei. Für das fertige Produkt nimmst Du natürlich ein Board ohne Debugger, das hier ist extra zum Entwickeln und schnellen Ausprobieren gedacht. Und: Das hier ist die 50'er Version der Chipreihe, die alle Protokolle kann, nicht nur BLE, sondern auch alles, was auf IEEE 802.15.4 aufbaut: Zigbee, Thread, 6LoWPAN,... Software dafür gibts bei TI zum Download. Link steht oben. fchk PS: Solche Chips gibts von mehreren Herstellern: SiLabs und NordicMicro sind die bekannteren. Aber da Du gerade schon bei TI hängen geblieben bist... Auch von TI gibts neuere Versionen, z.B: http://www.ti.com/tool/LAUNCHXL-CC26X2R1 aber das ist eventuell für Privatleute schlechter zu bekommen, und für den ersten Einstieg ist es egal.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.