ESP32: Bluetooth-Verbindung zum RadiaCode

Begonnen von DG0MG, 23. Juli 2024, 14:33

⏪ vorheriges - nächstes ⏩

DG0MG

Hat auch noch keiner gemacht, aber ich sehe einen riesen Bedarf und viele Möglichkeiten:

Der RadiaCode hat Bluetooth, ein ESP32 hat Bluetooth.

Es fehlt eine Bibliothek, mit der man den RadiaCode von einem ESP32 aus per Bluetooth ansprechen kann selbst, wenn es erstmal nur zum Auslesen der Dosisleistung reicht.

Das würde viele weitere Möglichkeiten eröffnen: Weitersenden der Messdaten per WLAN oder LORA ins TTN, Karten-Darstellung im Web, großes Display aus 7seg-LED, Neopixeln oder E-Ink, eine Sprachausgabe.. Wenn ich noch zehn Minuten weiterdenke, fallen mir noch hundert andere mögliche Projekte ein. Auch wenn es eigentlich ein mobiles Gerät ist, hindert einen ja nichts daran, es auch stationär zu verwenden.

Den RadiaCode per USB anzusprechen, gibts schon eine Möglichkeit, die erfordert aber wohl auf Grund des Pythons etwas wie den Rasperry Pi:
https://github.com/cdump/radiacode
https://github.com/ckuethe/radiacode-tools




"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

Dsl71

Aaah , wiederum Danke für den link. Werd mal schaun ob ich mich da verbinden kann mitm RadonEye Logger.

PS: Suche weiterhin Leute mit V2 und V3 Radon Eyes und einem ESP32 sowie Platform IO Wissen.

silfox

Ich schicke einmal den Code, den ich auf einem RaspberryPi verwende.
Interessant ist, dass einige Funktionen des RC103 vom Konverter nicht abgebildet werden.
Dazu gehört z.B. eine Listmode-Funktion.
Es gibt wohl 2 Teams bei der Firma - mit Schnittstelle...

Ansonsten muss ich ergänzen, dass ich selten ein so kompliziertes Verfahren der Kodierung von Daten gesehen habe.
Mit dem Ergebnis, dass z.B. ein Spektrum extrem komprimiert wird.
Aber trotzdem !!

Ich habe ein Copyright der GNU General Public Licens vorangestellt, in der Hoffnung, keinen Ärger mit dem Code zu bekommen ??

Man muss das tgz-File entpacken, in den Ordner wechseln und make aufrufen.
Zuvor sollte man ausführen:
sudo apt install libusb-1.0-0-dev libusb-dev

Vermutlich muss man auch noch 82-radiacode.rules in das Verzeichnis "/etc/udev/rules.d/" des Pi kopieren.

Ein Spektrum mit den zusätzlichen Header-Daten (wie es vom Programm erzeugt wird) habe ich im Ordner beigefügt.

Ich kann nicht garantieren, dass alles korrekt funktioniert.
(Ich gehe davon aus, dass nur ein Detektor pro RaspberryPi unterstützt wird...)
Wenn es Verbesserungen gibt, wäre eine Rückmeldung hilfreich.

PS.: radiacode.txt muss nach radiacode.tgz umbenannt werden.

DG0MG

Zitat von: silfox am 23. Juli 2024, 20:36Ich schicke einmal den Code, den ich auf einem RaspberryPi verwende.

Offenbar hast Du nur den letzten Satz gelesen. Bitte versuche, zu erfassen, was diese Rubrik "Ideenbox" für einen Sinn hat, ich habs hier definiert:
https://www.geigerzaehlerforum.de/index.php/topic,2405.0.html

Ich stelle oben im ersten Beitrag fest, dass es noch KEINE BLUETOOTH-Verbindung zwischen RC und ESP32 gibt. Mehr nicht.

Entweder alle zucken jetzt mit den Schultern und sagen: "Is halt so.".
ODER irgendjemand nimmt sich dieses Problems an, setzt sich hin, macht ein Projekt draus und stellt das Stunden/Tage/Monate/Jahre später ausführlich und nachnutzbar hier vor.

Eine weitere Lösung zu posten, die den RadiaCode ebenfalls per USB ankoppelt (so verstehe ich den Quellcode) ist im Sinne der Aufgabenstellung deshalb überhaupt nicht zielführend.
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

silfox

Wenn man ein Gerät anbinden will, muss man es über eine Schnittstelle anbinden.
Wenn man dann noch Daten austauschen will, muss man verstehen, was das Gerät sagt.
Man spricht dann von einem Decoder.
In dem Code, den ich zuvor verschickt hatte - wofür ich mich entschuldige - gibt es nur ganz wenig Zeilen Code für die USB-Schnittstelle.
Das Wesentliche ist der Teil, der zur Dekodierung der Daten verwendet wird.
Und der ist unabhängig von der Schnittstelle.

Aber ich muss schon klar sagen, dass der Ton mit dem hier miteinander kommuniziert wird nicht dem entspricht, was ich erwarte.

Dsl71

@silfox Ich darf eh Teile des codes (auch veröffentlichen) verwenden? - Und Danke für den konvertierten Code !lg

DL3HRT

Zitat von: silfox am 23. Juli 2024, 21:26Aber ich muss schon klar sagen, dass der Ton mit dem hier miteinander kommuniziert wird nicht dem entspricht, was ich erwarte.
Ironiemodus EIN
Da hast du vollkommen Recht. Der Ton in diesem Forum hebt sich wohltuend von vielen anderen Foren ab. ;)
Ironiemodus AUS

Dsl71

Zitat von: Dsl71 am 23. Juli 2024, 21:33@silfox Ich darf eh Teile des codes (auch veröffentlichen) verwenden? - Und Danke für den konvertierten Code !lg

ah,eh GPL, grad gesehen

DG0MG

Zitat von: silfox am 23. Juli 2024, 21:26Aber ich muss schon klar sagen, dass der Ton mit dem hier miteinander kommuniziert wird nicht dem entspricht, was ich erwarte.

Ich kann meinen Text oben noch dreimal lesen und finde nichts, was daran unsachlich wäre. Einen Hinweis darauf, dass Du Off-Topic schreibst, was eigentlich in jedem Online-Textmedium verpönt ist, erlaube ich mir als Finanzier dieses Forums jederzeit geben zu dürfen, unabhängig von Deinen Erwartungen.
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

Dsl71

@DG0MG A bisserl lockerer könnte das aber schon formuliert werden lieber Admin ;)

Und zum Off-Topic: Silfox hat wesentliche Teile in C++ übersetzt, was eine große Hilfe ist. Wie gesagt ich schreib den Bluetooth Teil fürn ESP32 dazu.

Dsl71

#10
Sodale, erste Erfolge bahnen sich an:

- Stabiler Connect/Reconnect mit BLE zum RadiaCode scheint zu gehen
- Unabhängiger parallel Betrieb vom RadonEye ist möglich.

Next Step: Kommandos über BLE und Return Notifies auswerten.


UPDATE: Ich sende und empfange ;-)

@silfox Ohne deinen Code hätte ich wesentlich länger gebraucht ! Thx again

Dsl71

14:28:54.551 > 26 08 00 85 01 00 00 00 C3 00 00 00 B7 00 00 57 96 0A 00 00 20 B4 40 E4 83 02 37 33 00 BD 00 40
14:28:54.552 > 00 00 B8 01 01 BA C4 0A 00 14 00 32 00 00 00 00 00 80 40 A6 9B C4 35 00 00 C0 40 34 80 B7 35 00
14:28:54.552 > 00 00 40 82 E2 C7 36 00 00 C0 40 C3 64 AA 35 00 00 80 40 17 B7 51 35 00 00 80 40 17 B7 51 35 00
14:28:54.552 > 00 00 41 27 A0 09 36 00 00 00 41 6C 09 F9 35 00 00 C0 40 34 80 37 36 00 00 40 41 6F 12 83 36 00
14:28:54.553 > 00 C0 40 C0 EC 1E 38 00 00 C0 40 2D B2 1D 38 00 00 C0 40 11 C7 BA 37 00 00 C0 40 C0 EC 1E 38 00
14:28:54.553 > 00 40 41 04 56 8E 38 00 00 80 40 B3 7B 72 36 00 00 00 40 A6 9B C4 35 00 00 00 00 00 00 00 00 00
14:28:54.554 > 00 80 40 FA ED 6B 36 00 00 00 41 FA ED EB 35
14:28:55.970 > fill_rdata: count_rate=5.628906 (5.10) dose_rate=7.779312e-06 (18.90) flags=64 rt_flags=0
14:28:55.971 > DESCRIPTOR rt=0s gdr=0.078 (18.90)uSv/h temp=27.25C charge=47.34% cps=5.63 (5.10) cal (0.000000 0.000000 0.000000)
14:28:55.971 > Write Command RadiaCode

:yahoo:

Sie dürfen in diesem Board keine Dateianhänge sehen.


Jetzt noch die Kaffeemaschine und die Waschmaschine, dann bin ich fertig. hehe

Quick and dirty adaption...
Sie dürfen in diesem Board keine Dateianhänge sehen.

BLE_RadiaCodeSetup();   --> im setup() aufrufen
BLE_RadiaCodeWorker(); --> in loop() alle paar Sekunden aufrufen


silfox

Herzlichen Glückwunsch für die schnelle Implementierung!
Ich bin gespannt, wie es mit der Kaffeemaschine und der Waschmaschine weitergeht!