UART (RS232) per USB loggen und parsen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UART (RS232) per USB loggen und parsen

    Hallo zusammen,

    ich bin neu sowohl bei der Entwicklung von Android Apps als auch in diesem Forum.

    Ich weiss nicht ob dieser Thread der richtige für meine Frage ist. Falls das nicht der Fall sein sollte, entschuldige ich mich schonmal im Vorraus.

    Zu meinem Thema/Problem:
    Ich möchte mein Android gerät (Android 10 Telefon) per USB an einen PL2303 Prolific RS232 adapter, an einen Wechselrichter einer PV-Anlage anhängen und erstmal die Ausgabe des streams loggen
    Am besten ist es wahrscheinlich als CSV Datei zu handhaben.
    Ich habe bereits eine App gefunden die das obenbeschrieben kann, mit ausnahme der speicherung als .CSV Datei. Sie heisst Serial USB Terminal von Kai Morich.
    Ich versuche jedoch nicht nr die Daten zu lesen und zu speicher sondern hätte auch gerne einfach eine kleine, unkomplizierte Live-Anzeige und das alles nutzerfreundlich in einer kleinen App verpackt.

    Hier ist ein Beispiel der Ausgabe:

    Quellcode: Ausgabe.txt

    1. 16.04.2020 10:35:58 4 367.2 8.64 3172 232.1 13.12 3045 39
    2. 16.04.2020 10:36:08 4 366.9 8.67 3181 232.1 13.15 3054 40
    3. 16.04.2020 10:36:18 4 366.6 8.66 3173 232.6 13.10 3047 40
    4. 16.04.2020 10:36:28 4 388.7 8.41 3270 232.6 13.49 3139 40
    5. 16.04.2020 10:36:38 4 381.1 8.58 3269 232.4 13.50 3138 40
    6. 16.04.2020 10:36:48 4 380.5 8.60 3274 233.0 13.49 3143 40
    7. 16.04.2020 10:36:58 4 379.9 8.66 3291 231.1 13.67 3160 40
    8. 16.04.2020 10:37:08 4 403.3 8.34 3364 231.5 13.95 3229 40
    9. 16.04.2020 10:37:18 4 393.9 8.60 3386 232.3 14.00 3251 40

    Es wird im RS232 Standard kommuniziert mit folgenden Parametern:
    -Baud: 9600
    -Parity: keine
    -Stoppbits: 1
    -Bits: 8

    Ausgegeben wird alle 10 Sekunden. Die Ausgabe besteht aus folgendem Aufbau:
    16.04.2020 10:35:58 4 367.2 8.64 3172 232.1 13.12 3045 39

    1. Datum: 16.04.2020
    2. Uhrzeit: 10:35:58
    3. Betriebsart: 4
    4. Generatorspannung in Volt: 367.2
    5. Generatorstrom in Ampere: 8.64
    6. Generatorleistung in Watt: 3172
    7. Netzspannung in V: 232.1
    8. Netzstrom, Einspeisestrom in A: 13.12
    9. Eingespeiste Leistung in Watt: 3045
    10. Gerätetemperatur in °C: 39

    Mein Vorhaben ist es erstmal eine App zu haben die ganz einfach per USB und einem PL2303 auf eine Serielle Schnittstelle zugreifen kann und diese einfach zu testzwecken darstellt.
    Schritt zwei wäre einen Parser zu bauen, der die Daten dann liest und entweder als CSV speichert und oder ausgibt als kleines Dashboard am Display vom Handy.

    Ich habe von Android sehr wenig Ahnung und bin erst durch dieses projekt zu der Entwicklung von Android-Apps gekommen.

    Nochmal kurz was ich hier möchte:
    Ich brauche ein paar kleine Hinweise wo ich finden kann wie so etwas geht und vielleicht auch ein zwei tipps falls jemand mit so etwas schon erfahrung gesammelt hat.
    Es ist nicht mein Ziel, dass mir hier jemand die App schreibt, da ich dabei nicht sonderlich viel lerne!

    Vielen Dank im Vorraus!

    Lg
  • Hallo
    Interessant wäre erstmal zu wissen welcher Chipsatz in dem Adapter verwendet wird.

    Denn du brauchst eine Lib die dir die entsprechen den Methoden zu Verfügung stellt.
    Nur das OTG reicht da nicht aus.

    Die meisten Adapter haben einen FTDI Chip was deiner hat weiß ich nicht .
    Hier der link dazu.
    ftdichip.com/Android.htm

    Nur wenn du noch nie eine App entwickelt hast ob das dann
    richtige ist, auf diese weise in die App Programmierung einzuzeigen?

    Hoffe du beherrscht zu mindestens die Java Grundlagen und Grundlagen OOP.
    Ein Feedback auf Tipps ist auch schön. :P
  • Hallo,

    vielen Dank für die Antwort!
    Also ich hbae jetzt noch einmal nachgesehen und in dem USB Adapter, den ich verwendet hatte, ist ein PL2303HXD von Prolific verbaut.
    Hier ist das Dateblatt: prolific.com.tw/UserFiles/files/ds_pl2303HXD_v1_4_4.pdf
    Aber falls nötig habe ich auch noch andere Converter mit anderen Chipsätzen.
    Auf Seite 3, im Datenblatt, wird erwähnt, dass in Revision 1.4.4 die Android Host USB API Unterstützung hinzugefügt wurde.

    Java Grundlagen sind soweit einigermaßen vorhanden. Und das ist auch aus meiner Sicht nicht der beste Einstieg in die Programmierung. Leider erfordert dieses Projekt das gezwungener maßen....

    Aber ich bin doch noch ganz optimistisch was das angeht.

    LG
  • Hallo
    Wenn es mit der Lib von TFDI nicht gehen sollte hier noch etwas was passen sollte .
    github.com/mik3y/usb-serial-for-android


    Natürlich kannst du es auch komplett selber machen indem du selber auf den USB zugreifst.
    developer.android.com/guide/topics/connectivity/usb
    Da musst du aber alles machen. Wird einige an arbeit werden. Deshalb Lib.


    Das Interface die Schnittstelle ist das eine . Du solltest aber auch wissen wie ein Android Programm aufgebaut ist. Ist schon etwas anders als Java für PC.


    Du solltest dir erstmal die Grundlagen für eine einfache App ansehen. Indem einfach Daten die du vorgibst die Später von der PV kommen aus gibst. Layout Button ….


    Ich würde hier wohl auch einen etwas anderen weg gehen .
    Ich würde mir einen RS232 Bluetooth Adapter suchen den an die PV hängen. Und mit dem Handy ohne Kabel mit Bluetooth darauf zugreifen.
    Mich würde das Kabel gefummel einfach stören.
    Ein Feedback auf Tipps ist auch schön. :P
  • Hallo,

    danke für die tipps! Ich habe mich heute etwas mehr heute mit den librarys befasst und auch noch einige andere gefunden:
    - github.com/felHR85/UsbSerial

    In dieser gibt es eine recht gutes Beispiel Script/App zum einfachen lesen und darstellen von dem Datenstrom. Dieser wird dann schon als String ausgegeben.
    Ich muss mir in den nächsten Tagen noch ansehen, wie man die Daten dann noch schön Parsen kann. Bisher habe ich leider noch nicht so viel Infos dazu gefunden.

    Ich habe heute ein paar Tutorials zum Aufbau von Android Applikationen angesehen, was durchaus sehr hilfreich war.

    Das mit dem Bluetooth kommt leider nicht ganz in Frage, da der Wechselrichter leider auf dem Dach und damit weit weg von jeglicher stromversorgung liegt, um den Bluetooth Adapter zu versorgen...
  • Das mit dem Bluetooth kommt leider nicht ganz in Frage, da der
    Wechselrichter leider auf dem Dach und damit weit weg von jeglicher
    stromversorgung liegt, um den Bluetooth Adapter zu versorgen...


    Wieso du hast doch irgendwie das Kabel mit den supD Stecker bei dir. Wo ist das Problem da den Adapter anzuschließen und mit einem Netzteil aus einer Steckdose zu versorgen ? Oder rennst du wenn du die Daten auslesen willst immer aufs Dach?

    Null Modem Kabel Rs232 , oder auch einfach ein JYSTIY Kabel Steckter anlöten drei ardern reichen für eine serielle Verbindung.
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von jogimuc ()