Posts by HenningPi

    Hallo zusammen,


    über meinen Pi möchte ich gerne per Bluetooth seriell Bytes an ein Android-Gerät schicken. Die dazugehörige App entwickel ich in Android-Studio in Java. Bisher blieben meine Versuche eine Verbindung zwischen den beiden Geräten aufzubauen erfolglos. Auf Seite des Raspberry läuft zum Testen erstmal nur ein Python Programm, dass kontinuierlich einen String rausschickt:


    Auf Seite der App versuche ich die Daten zu empfangen und einfach nur auszugeben.


    Öffnen des Sockets


    Empfangen der Daten:


    Ich bekomme es nicht hin, dass sich die beiden Geräte verbinden. Gekoppelt sind sie. Sowohl das Android-Gerät als auch der Raspberry können sich aber nicht mit einem Socket verbinden.

    Muss ich bei der Verbindung der Sockets eventuell noch irgendwas beachten? Leider habe ich bsiher im Internet kein hilfreiches Tutorial gefunden.

    Eingestellt sind 115200 Baud.


    Mitlerweile bin ich mir doch nicht mehr so sicher wo der Flaschenhals ist. Wenn der Graph voller wird oder im Vollbildmodus über den ganzen Bildschirm malt, wird die Perfomance deutlich schlechter. Das ganze wird besser, wenn ich mit der FPS zahl runter gehe. Vielleicht ist die GPU des Raspberrys einfach nicht stark genug, bzw. pyqtgraph einfach zu schlecht "optimiert"?

    Hallo Zusammen,


    über einen virtuellen COM-Port am RPi lese ich Sensordaten in Python mit PySerial aus und verabreite diese weiter. Genauer gesagt plotte ich diese mit PyQtGraph, bzw. in einem anderen Programm mit matplotlib (zu PyQtGraph habe ich wegen GPU unterstützung gewechselt).

    So wie es aussieht scheint aber das Auslesen der Seriellen Schnittstelle der Flaschenhals zu sein. Auf meinem Windows PC läuft das Programm ohne weiteres während der RPi womöglich nicht mit dem auslesen der Seriellen Schnittstelle und somit mit dem Liefern der Daten hinterherkommt.

    Im Prinzip schicke ich mit 1kHz Pakete die 7Byte groß sind. aus den 7Byte werden anschließend die Variablenwerte extrahiert (je 3Byte pro 16Bit Variable) und in einem jeweiligen Puffer gespeichert, bis eine entsprechende Menge an Daten übersendet wurde (CHUNK). Dann werden die Daten des Chunks in die entsprechenden Datenlisten des Plots geschrieben.


    Alles auf dem Windows-Rechner kein Problem. Auf dem Pi siehts leider anders aus.

    Ist es plausibel, dass der Pi mit der Datenverarbeitung überfordert ist?


    Es handelt sich um einen Raspberry Pi 3B+ mit aktuellster Raspbian OS.


    So sieht der Code zum Auslesen der Seriellen Daten aus:

    Hallo Bernd,


    jein, auf dem Board befindet sich ein Jumper den man default so setzen kann, dass Vcc (die Versorgung der Optokoppler) auch auf Rcc (Versorgung der Relais) geschaltet wird. Alternativ kann man an Rcc aber auch eine andere 3.3/5V Quelle stecken und über einen separaten GND pin das ganze von einander isolieren. Bei mir ist an Rcc wie gesagt der 5V ausgang des Pi geschaltet. An Vcc habe ich 3.3V geschaltet, da ja die Ausgänge des Pi als Open-Drain arbeiten sollten und ich denke 5V wären da fehl am Platz. GND ist überall gleich, d.h. isoliert ist da nichts voneinander.

    Gruß Henning

    Ich habe ein paar Tests gemacht und wie es aussieht verschwinden die lila Balken sobald ich die Relais einschalte.

    Das Camera Module befindet sich in unmittelbarer Nähe zu dem Relaismodul. So wirklich erklären woher die Störimpulse kommen kann ich mir aber immer noch nicht.


    Dieses Relaismodul ist verbaut:

    https://www.conrad.de/de/p/see…rry-pi-pcduino-95841.html


    So wie es aussieht arbeitet das Pi als open Drain, da die Relaisspulen mit Strom versorgt werden, wenn der entsprechende Pin auf 0V gezogen wird. Die Ansteuerung erfolgt aber mit zwei separaten Versorgungen auf Pi Seite mit 3,3V zum Schalten der Optokoppler und separat die oben angesprochene 5V Versorgung für die Relaisspulen. Als Spannungsversorgung dient ein offizielles Raspberry Steckernetzteil mit 5V max. 3A.

    Hallo Zusammen,


    an einem RPi4 habe ich das offizielle Raspberry Camera Module 2 hängen und Streame über einen nginx Webserver livevideos ins Heimnetz. Am Raspberry ist außerdem noch ein Relaismodul zum Fernschalten über den Server.


    Leider hatte bereits ein Camera Module den Geist aufgegeben. Irgendwann ließen sich damit einfach keine Videos mehr erstellen. Auch nicht direkt über raspivid. Naja ich hatte gedacht, dass wäre eventuell eine Ausnahme und hatte ein neues Camera Module bestellt. Dieses weist jetzt nach etwa einem Monat allerdings im Bild immer vermehrter lila Balken auf. Ich befürchte, dass diese Camera auch bald den Geist aufgeben wird. Ich habe an der HW nichts verändert und auch nie unter Spannung am Flachbandkabel rumgespielt. Die einzige Erklärung die ich mir vorstellen könnte wäre, dass das Relaismodul (was über einen 5V Pin versorgt wird) irgendwelche Spannungspeaks verursacht. Laut Recherche sollen die Camera Module ja recht empfindlich gegenüber solche sein.


    Hat jemand eventuell mehr Erfahrung mit den Camera Modulen oder kann sich die lila Balken anders erklären?


    Grüße :)

    STM32 kenne ich nur in Zusammenhang (ST-LINK/V2) mit den speziellen Controllern von ST Microelectronics. Und dann würde der gar keinen seriellen Port besitzen. Was hast Du da für ein Teil?

    Exakt, die neueren NUCLEO Boards (Das sind Entwicklerboards für die unterschiedlichen STM32 Controller) haben ST-Links der Version 2.1. Solche ST-Links sind sowohl Debugger als auch Massstorage und Virtual COM-Ports.

    Siehe hier:

    https://www.mouser.de/datashee…nucleo_f030r8-1848087.pdf

    Dann passe einfach den print() Befehl an:

    Python
    if x:
        print(x)

    Gibt es auch eine einfache Methode um den empfangenen Text nicht immer mit b'' dargestellt zu bekommen? In Python3 siehts immer z.B. so aus:

    b'Empfangener Text'.


    Bezüglich des ST-Link Treibers bin ich leider immernoch nicht weiter fündig geworden. Anscheinend wird der COM Port einfach nicht von Linux unterstützt. Leider fehlt mir da auch sas Know-How um Möglichkeiten zu finden es möglich zu machen.

    Ah, ACM0 vs AMA0 - das habe ich übersehen.


    Und wenn du einen 1-sekündigen Timeout bei der seriellen Schnittstelle vereinbarst, dann kommt readline auch jede Sekunde zurück. Leer.

    Ah, klar natürlich gibt er dann jede Sekunde eine leere Zeile zurück :blush:


    Wenn ich die ganze Sache mit python3 starte, bekomme ich die oben erwähnte ausgabe immer als b'' zurück. Mit python 2.7 bekomme ich einfach nur leere Zeilen.


    Ich habe es jetzt auch geschafft immerhin schonmal etwas mit der seriellen Schnittstelle auszulesen. Zwar nicht mit dem STM32 Nucleo Board aber mit einem USB-RS232-Adapter kann ich etwas empfangen. Dieser wird auch vom Pi als ttyUSB0 erkannt.

    Laut Ausgabe ist das ein Massenspeichergerät. Nicht USB Serial. Kann man den umschalten? Wenn nicht, kann man das ggf auch erzwingen. Oder schau mal hier: https://unix.stackexchange.com…-device-not-listed-as-tty

    Hm es wird bei mir auch als ttyAMC0 erkannt wenn ich es einstecke., wie man ja oben sieht.

    Ich habe einen USB-RS232 Adapter versuchsweise angesteckt. Da sollte jetzt eigentlich erstmal nichts kommen, trotzdem wird bei mir in der Console auf dem Pi etwa jede sekunde b''ausgegeben. Das Selbe passiert, wenn ich im Python Programm Port ttyAMA0 "beobachte".

    dmesg | grep usb


    ergibt folgende Ausgabe:


    [19024.980624] usb 1-1.3: USB disconnect, device number 7

    [19029.030198] usb 1-1.3: new full-speed USB device number 8 using xhci_hcd

    [19029.167668] usb 1-1.3: New USB device found, idVendor=0483, idProduct=374b, bcdDevice= 1.00

    [19029.167687] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3

    [19029.167703] usb 1-1.3: Product: STM32 STLink

    [19029.167718] usb 1-1.3: Manufacturer: STMicroelectronics

    [19029.167731] usb 1-1.3: SerialNumber: 0672FF373333484D43043557

    [19029.231383] usb-storage 1-1.3:1.1: USB Mass Storage device detected

    [19029.231900] scsi host0: usb-storage 1-1.3:1.1

    Hm wird dann mein Controller per USB nicht richtig erkannt? Ich finde keine Info darüber welchen Serial Port ich dann verwenden soll. Momentan habe ich ein STM32 Controller mit ST-Link V2.1 angeschlossen. Der hat auch die Möglichkeit per COM Port zu kommunizieren. Fehlen dem Raspberry dafür vielleicht einfach die Treiber?

    Vielen Dank für den Link! Ich habe es mir gerade durchgelesen aber habe bisher noch nichts gefunden, was dort anders gemacht wird. Auf die Bluettoth Problematik wird dort zum Beispiel auch garnicht eingegangen.

    Hallo zusammen,


    nach einiger Suche online konnte ich mir immernoch nicht die Frage beantworten, ob man auf dem RPi4 per USB Seriell Geräte auslesen kann?


    Ich habe vor zum Beispiel einen Arduino per USB zu verbinden und möchte mir einfach nur seriell gesendete Daten anzeigen lassen.

    Ausprobiert habe ich das bereits erfolglos. Das unten zu sehende python Script soll eben genau dies tun. Online habe ich gelesen, dass ttyACM0 eigentlich vom Bluetoothmodul besetzt ist und das die Baudrate wohl nicht exakt ist, wenn die CPU Frequenz Lastabhängig geregelt wird.

    folgende Ports werden mir angezeigt:

    python -m serial.tools.list_ports

    /dev/ttyACM0

    /dev/ttyAMA0

    2 ports found

    ttyAMA0 habe ich auch schon ausprobiert.

    Weiß jemand eventuell Abhilfe? :helpnew:

    Im wesentlichen soll die Website eigentlich nur aus einer Seite bestehen. In einem Livestream wird mit HLS die PiCam gestreamt. Das klappt auch soweit. Allerdings möchte ich jetzt gerne auch ein paar Variablen und Daten aus dem Pi auf der Website anzeigen. Zum Beispiel den Status von einigen GPIOs, die CPU Temperatur usw.


    Momentan befindet sich meine index.html im /var/www/html Verzeichnis. die Bilder liegen in einem Unterverzeichnis namens "img". Zum Testen hatte ich die index.html und den img Ordner in meinen Testordner kopiert -> /var/www/demoapp/templates

    Die index.html wird wie oben beschrieben geöffnet allerdings lassen sich die Bilder nicht öffnen.


    Hier eine beispielhafte Pfadangabe in der index.html:

                    <img src="img/Record_icon.png" alt="record icon" width="30" height="30">

    flask laeuft problemlos hinter dem nginx

    Ich habe flask jetzt auf dem Pi zum Austesten zum laufen bekommen. Allerdings noch one WSGI Server. Wenn ich jetzt meine index.html Datei öffne klappt das auch soweit, nur werden mir keine Grafiken und ein darin enthaltener Videostream angezeigt. Ich vermute, dass das verwendete Python Programm keine Rechte hat auf die Unterordner zuzugreifen?


    Hier ist die Fehlermeldung in der Konsole:


    * Serving Flask app "hello" (lazy loading)

    * Environment: production

    WARNING: This is a development server. Do not use it in a production deployment.

    Use a production WSGI server instead.

    * Debug mode: off

    * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

    192.7.100.44 - - [11/Dec/2020 11:04:19] "GET / HTTP/1.1" 200 -

    192.7.100.44 - - [11/Dec/2020 11:04:19] "GET /img/Record_icon.png HTTP/1.1" 404 -

    192.7.100.44 - - [11/Dec/2020 11:04:19] "GET /img/M_icon.png HTTP/1.1" 404 -

    192.7.100.44 - - [11/Dec/2020 11:04:20] "GET /img/M_icon.png HTTP/1.1" 404 -

    192.7.100.44 - - [11/Dec/2020 11:04:20] "GET /hls/picam.m3u8 HTTP/1.1" 404 -

    Die Stichwoerter sind: flask fuer den Python-Server, AJAX fuer den Update der Seite (WebSockets wuerden natuerlich ebenfalls gehen)

    Hm... so gnaz sicher bin ich mir noch nicht wie ich das gestalten möchte. Meine aktuelle Website läuft auf einm nginx Server den ich gerne beibehalten würde. Die darauf laufende Seite würde ich gerne so erweitern, dass die Variablen angezeigt werden.

    Bisher macht es bei mir so den Eindruck als wenn node.js oder ein python server notwendig wären.