Forum: Mikrocontroller und Digitale Elektronik Alternative zu RN4870 BLE Modul


von Tobias S. (herrgesangsverein)


Lesenswert?

Hallo,

ich möchte eine Reihe von Feuchtigkeitemessern in meinem Garten 
verteilen und die Messdaten periodisch per Funk an eine Empfangstation 
übertragen.
Ich hatte mir dazu das RN4870 BLE Modul von Microchip ausgesucht, weil 
es schön klein ist,wenig Energie verbraucht und mich direkt mit einem 
(Linux/WIndows)-PC kommunizieren lässt. So war die Hoffnung.

Zu meiner Enttäuschung scheint es keine Möglichkeit zu geben, auf einem 
Windows PC einen virtuellen COM port zu erhalten, um über das Modul per 
BLE mit dem uC dahinter zu kommunizieren. Also: PC-BLE-UART-uC.
Auch mit Linux scheint es nicht zu gehen.

Kann mir jemand ein kompaktes, energiesparendes, günstiges Funkmodul 
nennen, das auf meine Anwendung passen könnte?

von Olaf (Gast)


Lesenswert?

> Zu meiner Enttäuschung scheint es keine Möglichkeit zu geben, auf einem

Es gibt keine virtuellen Comport fuer BLE. Sowas gab es nur bei normalen
Bluetooth. BLE ist etwas komplett anderes.

Olaf

von Jobst M. (jobstens-de)


Lesenswert?

Olaf schrieb:
> Es gibt keine virtuellen Comport fuer BLE.

Jain. Man muss ihn eben selbst bauen, die RN4870 unterstützen das auch. 
Vor einiger Zeit habe ich in der Firma mal eine kleine App für Android 
geschrieben, die mit diesen Modulen kommunizieren kann.
Findet man auch im Netz Infos zu.
Ist aber schon etwas Gefrickel.

Es gibt auch BLE Terminalprogramme für den PC / Apps fürs Handy.
Damit habe ich allerdings keine Erfolge gehabt.

Hmmmm ...
Du möchtest unbedingt an den PC connecten!?
Eine App reicht Dir nicht?

Gruß
Jobst

von Olaf (Gast)


Lesenswert?

> Jain. Man muss ihn eben selbst bauen,

Ja selbst bauen kann man immer alles. Silabs hat da z.B auch was.
Ist dann aber nicht kompatibel sondern hardwarespezifisch.
Und ich meine Nordic hat auch was eigenes.

Olaf

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Tobias S. schrieb:

> Kann mir jemand ein kompaktes, energiesparendes, günstiges Funkmodul
> nennen, das auf meine Anwendung passen könnte?

Du könntest aber auch einfach die GATT API verwenden (und nicht die UART 
API): 
https://learn.microsoft.com/en-us/windows/uwp/devices-sensors/gatt-client

von Ralf (Gast)


Lesenswert?

Tobias S. schrieb:
> Kann mir jemand ein kompaktes, energiesparendes, günstiges Funkmodul
> nennen, das auf meine Anwendung passen könnte?

Energiesparend beißt sich mit Zuverlässigkeit = Reichweite. Günstig 
meist ebenfalls.
Etwas tiefer in die Brieftasche gegriffen kann ich Dir XBee-Funkmodule 
empfehlen. Sehr komfortables Arbeiten mit denen. Com-Port am PC 
inklusive.

von Tobias S. (herrgesangsverein)


Lesenswert?

> Du möchtest unbedingt an den PC connecten!?
ja, das ist wichtig. Da meine Haussteuerung auf Linux-Servern läuft, 
müssen die Daten am Ende in einem PC-System landen.
Natürlich könnte man eine Empfangstation auf uC-Basis und serieller 
Schnittstelle auf PC-Seite machen, aber diesen Aufwand würde ich gerne 
vermeiden.

von Tobias S. (herrgesangsverein)


Lesenswert?

Olaf schrieb:
>> Zu meiner Enttäuschung scheint es keine Möglichkeit zu geben, auf einem
>
> Es gibt keine virtuellen Comport fuer BLE. Sowas gab es nur bei normalen
> Bluetooth. BLE ist etwas komplett anderes.

Ja, das ist mir dann auch aufgefallen. Sehr schade. Deshalb suche ich ja 
eine Alternative.

von olaf (Gast)


Lesenswert?

> Ja, das ist mir dann auch aufgefallen. Sehr schade. Deshalb suche ich ja
> eine Alternative.

Dann nimm z.B die hier:

Beitrag "JDY-40 ein neuer Geniestreich aus China?"

Da musst du eigentlich garnicht denken, die funktionieren einfach so.

Oder du lernst halt mal 2-3Tage wie BLE funktioniert und verzichtest auf
eine virtuelle Schnittstelle. Alle anderen Leute koennen ja mit BLE
auch Daten uebertragen.

Der Vorteil von BLE ist in der Hauptsache das es in dein Handy drin ist. 
Da kannst du einfach in 1-2Tagen ein huebsches Programm 
zusammenschustern das auf Handy, Linux und Windows laeuft. (falls du 
Qt/C++ kannst)

Olaf

von noreply@noreply.com (Gast)


Lesenswert?

Ich sehe das als Softwareproblem auf den PC (Linux und Windows). Man 
braucht Software die mit BLE/GATT zusammenspielen.

Und in 2 bis 3 Tagen ist das höchstens für Hochbegabte zu schaffen. Ich 
habe mich mal mit Linux in einer älteren Betriebssystemversion und Bluez 
ein paar Tage rumgeärgert. Und das waren JDY-Module. Ob die JDY-40 kann 
ich jetzt nicht genau sagen. Die Charakteristiken habe ich bekommen, 
aber danach wäre es in Softwareentwicklung abgeglitten. Wie vorher schon 
gesagt, ich habe noch keine Terminalemulation gefunden, die die 
seriellen Charakteristiken verarbeitet. Nur eine Pythonimplementation 
aus einen GIT, die ich mir auf meinen Hauptrechner nicht installieren 
wollte.

von noreply@noreply.com (Gast)


Lesenswert?

Sie den nachfolgende Beitrag. Serielle Verbindung bis zu den 
Charakteristiken hat funktioniert. Danach müßten die Charakteristiken im 
PC verarbeitet werden.

Beitrag "Re: Lidl-Multimeter PDM-300-C2 Analyse und Erweiterungen"

von olaf (Gast)


Lesenswert?

> Und in 2 bis 3 Tagen ist das höchstens für Hochbegabte zu schaffen.

Ich hab vorausgesetzt das man mit Qt/C++ umgehen kann. Die Basisklassen 
fuer BLE werden dir dann mitgeliefert. Beispiele die du einfach 
uebersetzt und dein Modul damit finden kannst gibt es auch. Daher ist 
das nicht so die Schwierigkeit.

Wenn man irgendein anderes Framework nutzt dann wird das da vermutlich 
nicht viel anders sein und irgendwas sollte man ja schon programmieren 
koennen wenn man sowas bauen will.

Und ja, wenn du richtig tief in BLE eintauchen willst dann ist das 
schwieriger und dauert eher 2-3Wochen, aber auf der Seite des 
Mikrocontrollers musst du das ja sowieso.

> Wie vorher schon gesagt, ich habe noch keine Terminalemulation gefunden,
> die die seriellen Charakteristiken verarbeitet.

Das kann es bei BLE nicht geben weil das einfach nicht vorgesehen ist.
Das einzige was es geben kann ist Geraete die eine Firmware haben welche 
sowas fuer dich umsetzen, aber dann halt Herstellerspezifisch.

Olaf

von Stefan (Gast)


Lesenswert?

olaf schrieb:
> Und ja, wenn du richtig tief in BLE eintauchen willst dann ist das
> schwieriger und dauert eher 2-3Wochen, aber auf der Seite des
> Mikrocontrollers musst du das ja sowieso.

Das ist doch irre. Welches Ingenieurs-Genie denkt sich solchen Wahnsinn 
aus?
Nur weil man ein paar poplige Bytes übertragen will?

von olaf (Gast)


Lesenswert?

> Das ist doch irre. Welches Ingenieurs-Genie denkt sich
> solchen Wahnsinn aus?

Naja, es ist fuer das dahinterstehende Konzept schon gut und sinnvoll.
Dafuer hast du dann standardisierte Services:
https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit 
UUID Numbers Document.pdf

Aber ja, ein bisschen ueberdreht/abgehoben ist es sicherlich auch. 
Vermutlich gerade in dem bemuehen Standards zu setzen mit denen man 
alles abdecken kann.

> Nur weil man ein paar poplige Bytes übertragen will?

Niemand interessiert sich vermutlich so besonders dafuer was du willst. 
:-)

Es ist aber auch so das der Hintergedanke bei BLE war moeglichst 
stromsparend zu sein. Da passt ein serieller Stream unbekannten Inhalts 
schlecht in das Blockorientierte Konzept. Wer das nicht will kann ja 
normales Bluetooth nehmen und zahlt den Preis des hoeheren 
Stromverbrauchs. Das ist halt das andere Konzept.

Ohne Arme keine Kekse.

Olaf

von Tobias S. (herrgesangsverein)


Lesenswert?

olaf schrieb:
> Dann nimm z.B die hier:
>
> Beitrag "JDY-40 ein neuer Geniestreich aus China?"
>
Danke für den konstruktiven Vorschlag. Damit kann ich leben, wenn das 
auch mit dem one-to-many Modus funktioniert. Dann muss die Zentrale eben 
über RS232 an den Rechner angeschlossen werden.
Und ich muss mir noch ein Protokoll ausdenken, wie ich die periodisch 
aus dem Schlaf aufwecke und Kollisionen erkenne.

von Jobst M. (jobstens-de)


Lesenswert?

olaf schrieb:
> aber auf der Seite des
> Mikrocontrollers musst du das ja sowieso.

Wie schon von mir gesagt, wird sowas vom RN4780 unterstützt. Entwickeln 
muss man vor allem auf der anderen Seite.

Man kann auch 2 der Module koppeln und hat dann eine UART zu UART 
Verbindung. Wie, steht im Datenblatt.
Aber man kann eben auch nur 2 Module koppeln.

> Das einzige was es geben kann ist Geraete die eine Firmware haben welche
> sowas fuer dich umsetzen, aber dann halt Herstellerspezifisch.

Richtig, mit anderen Modulen arbeitet das auch nicht zusammen.


Gruß
Jobst

von noreply@noreply.com (Gast)


Lesenswert?

Die sauberste Lösung wäre, auf den RN4780 gleich die Feuchtemessung zu 
implementieren und als Charakteristik über BLE anzubieten. ;-)

Vom Konzept her sind das alles Mikrocontroller, die BLE über 
Bibliotheken anbieten.

von Tobias S. (herrgesangsverein)


Lesenswert?

noreply@noreply.com schrieb:
> Die sauberste Lösung wäre, auf den RN4780 gleich die Feuchtemessung zu
> implementieren und als Charakteristik über BLE anzubieten. ;-)

Das stimmt auch. Ist aber auch nicht nur Arbeit, sondern kann auch gut 
scheitern, sich durch die Charakteristika-Schlüssel etc durchzufinden 
und zu konfigurieren im Modul.
Die andere Seite ist auch nicht ohne: wie verarbeite ich die 
übertragenen Daten in Linux so, um sie in mein Node-red zu bekommen.
Schön wäre es für mich gewesen, den UART des Moduls zu bedienen und auf 
der anderen Seite kommen Zeichen aus dem seriellen Device /dev/serial 
raus.

Ich werde mich mal belesen, ob ich mir das zutraue und parallel habe ich 
die China-Dinger bestellt. Da ist die Herausforderung ja eher die 
Kollisionserkennung bei mehreren Teilnehmern.

Viele Grüße,
Tobias

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
Noch kein Account? Hier anmelden.