RS232 Daten werden nicht angezeigt?!

  • Hallo zusammen,

    Nach diesem Projekt (Funk Magnetkontakt/Reed Switch zur Fenster/Tür Überwachung - TinyTx3) baue ich gerade ein System auf, um festzustellen, welche Türen bzw. Fenster geschlossen bzw. geöffnet sind. Alles funktioniert soweit. Der Receiver am Pi empfängt auch die Daten da die LED leuchtet sobald ein Kontakt öffnet oder schließt, allerdings wird in der Konsole unter folgendem Code keine Daten angezeigt.


    Fehlermeldungen werden keine angezeigt. Es wird in der Konsole eben nur "Warte auf Daten...." angezeigt und eben nichts wenn der Receiver was empfängt...

    Würde mich über Hilfe sehr freuen.

    Beste Grüße

    Florian

  • Hallo,

    was für Daten erwartest du denn? Im Moment liest du 1000 Byte in max 0.1 Sekunden....

    Wenn deine Daten ein Newline-Zeichen (oder ein anderes Terminierungszeichen) enthalten, wäre es einfach, darauf zu warten.

    Oder testweise mal das timeout raus nehmen, um zu sehen, ob überhaupt Daten ankommen.

    Gruß, noisefloor

    P.S.: Ich gehe mal davon aus, dass dein Python-Code auf dem Raspi korrekt eingerückt ist - weil so wie im obigen Code-Block funktioniert es sich nicht.

  • Hallo Florian,

    ein paar Fragen, bevor man Dir gezielt weiterhelfen kann:

    1. Wie hast Du die serielle Schnittstelle freigegeben?
    2. Hast Du Sender und Empfänger synchronisiert?
    3. Mit welchen Pegeln sendet der Sender - welche Pegel erwartet der Raspberry Pi
    4. Hast Du paarweise RX mit TX - und nicht RX-RX und TX-TX verbunden?

    Wenn diese 4 Fragen geklärt sind, würde ich auf Empfängerseite das Programm cutecom laufen lassen. Dann siehst Du, ob und welche Daten überhaupt ankommen.

    Zu dem Programm kommen mir ein paar Zeilen auch sehr merkwürdig vor. Aber das kann man später klären.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. November 2015 um 16:31)

  • Hi,

    folgendes soll ausgelesen werden bzw. so sollte es aussehen:

    Ich benutze gerade zum Testen noch den Code aus dem verlinkten Beitrag, später soll dann ein eigener her wenn es dann über mein Webinterface laufen soll.

    Ja, korrekt eingerückt ist es auf dem Pi, habe es für den Beitrag nur nicht vom Pi kopiert sondern aus dem verlinkten Beitrag.

    Hast du eine Idee an was es liegen könnte? Habe es soeben ohne Timeout probiert, aber genau das gleiche wie davor. Ich bekomm keine Daten rein.

    Florian
    Automatisch zusammengefügt:
    Hallo Andreas,

    1. Ich bin laut der Anleitung im Beitrag vorgegangen.

    Code
    sudo apt-get update
    sudo apt-get install python-serial
    sudo wget https://raw.github.com/lurch/rpi-serial-console/master/rpi-serial-console -O /usr/bin/rpi-serial-console && sudo chmod +x /usr/bin/rpi-serial-console
    sudo rpi-serial-console disable


    Diese Schritte habe ich durchgearbeitet bevor ich den Script ausführte.

    2. Was meinst du genau damit? Ich denke dass ich es aber nicht gemacht habe. Auf jeden Fall werden die Daten am Receiver empfangen da die LED die Empfangen der Daten signalisiert sobald ich an den Reed-Kontakt den Magnet nähere oder entferne.

    3. Das kann ich dir auch nicht genau sagen, ich benutze eben diese Boards aus dem Projekt. Im Projekt habe es aber so funktioniert.

    4. Ich bezweifle das ich etwas verkauft habe, da der Receiver ein Board ist das direkt mit einer Stiftleiste auf den Pi gesteckt werden kann.

    Was ist cutecom für ein Programm? bzw. wie kann ich es installieren bzw. in dem Fall benutzen.

    Beste Grüße
    Florian

    Einmal editiert, zuletzt von floflovaldo (21. November 2015 um 16:40)

  • Hallo Florian,

    nach Deinen Antworten zu urteilen, hast Du wohl die serielle Schnittstelle nicht ordnungsgemäß eingerichtet. Zwar hast Du irgendwelche Python-Module / Libraries geladen, aber die serielle Schnittstelle als solche wird davon nicht tangiert.

    zu 1.: Einrichten der seriellen Schnittstelle am Raspberry Pi

    Mache einmal

    Code
    sudo raspi-config


    Dort wählst Du [font="Courier New"]Advanced Opotion[/font]s aus und aktivierst [font="Courier New"]Serial[/font]. Dann bestätigst Du, bis das Programm beendet ist.

    Danach rebootest Du.

    Dann sollte die serielle Schnittstelle aktiviert sein.
    Sicherheitshalber kannst Du noch Folgendes machen bzw. prüfen:


    Code
    sudo nano /boot/cmdline.txt

    In dieser Datei ist eine Zeile

    Code
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    Aus dieser machst Du

    Code
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    Geänderte Datei speichern.

    Dann machst Du

    Code
    sudo nano /etc/inittab

    Hier gibt es relativ weit am Ende folgende Zeilen

    Code
    #Spawn a getty on Raspberry Pi serial line
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


    oder

    Code
    #Spawn a getty on Raspberry Pi serial line
    2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

    Hier hängst Du ein # vor die Zeile, also

    Code
    #Spawn a getty on Raspberry Pi serial line
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


    oder

    Code
    #Spawn a getty on Raspberry Pi serial line
    #2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

    Speichern. Dann bootest Du neu mit

    Code
    sudo reboot


    zu 2. Synchronisation der seriellen Schnittstelle

    Sender und Empfänger müssen mit der gleichen Baudrate, der gleichen Parität und der gleichen Anzahl an Start- und Stoppbits arbeiten, sonst funktioniert die Kommunikation nicht oder es kommt nur Datensalat an.

    Mit welchen Parametern die Serielle Schnittstelle eingestellt ist, verrät Dir der Befehl

    Code
    stty -a

    Wie einzelne Parameter eingestellt werden, erfährst Du über

    Code
    man stty


    [font="Courier New"]cutecom[/font] ist ein recht brauchbarer Monitor der seriellen Schnittstelle, mit dem Du sehen kannst, welche Daten über die serielle Schnittstelle gesendet werden. Mit dem Programm kannst Du auch Daten senden, um zu sehen, wie ein Empfänger darauf reagiert.
    Bevor Du mit [font="Courier New"]cutecom[/font] keine vernünftigen Daten siehst, kannst Du mit einer selbstgeschriebenen Software keinen Erfolg haben.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. November 2015 um 17:07)

  • Hallo Andreas,

    Schritt 1 habe ich gemacht. Bei Schritt zwei habe ich eine Geschwindigkeit von 38400 baud. Nur ist mir mit dem Befehl nicht klar wie ich das jetzt ändere auf 9600.

    Was ich nur äußerst komisch finde, der Receiver leuchtet jetzt nicht mehr auf wenn eigentlich Daten empfangen werden sollten. Was könnte da die Ursache sein? Mit mehreren Sendern habe ich es versucht, und der Receiver blinkt noch beim booten, also dürfte es eigentlich ja nicht an Receiver und Sender liegen?

    Beste Grüße
    Florian

    Nachtrag: Baudrate ist jetzt auf 9600. Dein Befehl hat funktioniert, nur hats das irgendwie erst nach einem Reboot angezeigt.

    Einmal editiert, zuletzt von floflovaldo (21. November 2015 um 21:13)

  • Hallo Florian.

    dass der Receiver beim Booten blinkt, liegt daran, dass beim Booten die GPIO14/15 als serielle Schnittstelle arbeiten. Das heißt jede Boot-Meldung wird über TX ausgegeben und selbst das Passwort könntest Du über RX eingeben.

    Schau Dir mal

    Code
    man stty


    an. Da steht genau, was Du eingeben musst, um die Baudrate zu ändern.

    Probier mal

    Code
    stty 9600

    Es kann aber nur dann funktionieren, wenn Du alle Parameter (Datenbitts, Parität, Stopbits) zwischen Sender und Empfänger abgleichst.

    Hast Du [font="Courier New"]cutecom[/font] installiert? Damit geht das am einfachsten, da alle Parameter über die graphische Benutzerschnittstelle gesetzt werden können.Und Du siehst das Ergebnis sofort.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo,

    ich bin mir nicht sicher was ich genau nehmen muss zum auswählen.
    Wäre folgendes evtl. richtig? Das war so das einzige was Input und Output betrifft und mir sinnvoll erscheint:

    Code
    Special settings:
           N      set the input and output speeds to N bauds

    Cutecom installiere ich gerade.

    Beste Grüße
    Florian

    Nachtrag: Baudrate ist jetzt auf 9600. Dein Befehl hat funktioniert, nur hats das irgendwie erst nach einem Reboot angezeigt.

    Einmal editiert, zuletzt von floflovaldo (21. November 2015 um 21:14)

  • Hallo Florian,

    die Änderung der Baudrate ist auch ohne Reboot wirksam. Sonst wären ja die ganzen Programme zu dem Thema sinnlos.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hi,

    Ich habe aus einem anderen Grund rebootet und dann hat es die Änderung auf jeden Fall angezeigt.

    Zu dem Programm Cutecom. Wie öffne ich die grafische Oberfläche? Mir zeigt es dazu nirgends unter der grafischen Oberfläche vom Pi was an. Muss man das mit einem Befehl starten?

    Beste Grüße

    Florian

  • Hallo Florian,

    wenn Dir cutecom bei der Installation nicht ins Applikationsmenü gewandert ist, dann probiere es mal mit Öffnen des LXTerminals. Das öffnet sich, wenn Du auf das Symbol klickst, das einem Computerbildschirm nachempfunden ist.

    Dort gibst Du einfach ein:

    Code
    cutecom


    oder

    Code
    cutecom &

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hi,

    Das Öffnen hat soweit funktioniert, danke. Aber mir ist nicht bewusst wie mir das Programm weiterhilft.

    Das Problem wie vorher schon erwähnt ist ja dass der Receiver seit der Konfiguration und Aktivierung von "Serial" nicht mehr blinkt wenn er eig. Daten empfangen sollte vom Sender. Vorher hat es funktioniert das ich sobald ich eben ein Magnetkontakt geschlossen oder geöffnet habe hat die LED geblinkt. Klar übertragen hat nicht funktioniert. Aber so gerade funktioniert leider gar nichts mehr und ich weiß nicht woran es liegt. Hast du da eine Idee

    Was sollte ich jetzt genau mit dem Programm versuchen? Welche Schnittstelle muss ich da eingeben? Baudrate ist klar 9600, und die Felder darunter mit mit "Data Bits" und Stop Bits"?

    Beste Grüße
    Florian

  • Hallo Florian,

    wenn Du die serielle Schnittstelle über die GPIO14/15 der GPIO-Ports des Raspberry Pi realisiert hast: Device /dev/ttyAMA0 (sonst /dev/ttyACM0)

    Zu den anderen Parametern musst Du Dich an der Bedienungsanleitung des Empfängers orientieren. Gängig sind 8 Datenbits, 1 Stop-Bit, Handshake kann deaktiviert sein.

    Und wenn der Raspberry etwas wie Kommandos senden soll, dann musst Du diese in der Eingabezeile eingeben.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Florian,

    momentan arbeite ich für eine Auftragsentwicklung, bei der es hauptsächlich um die serielle Datenübertragung geht.

    Bei mir läuft seit Stunden (!) CuteCom (als Kontroll-Empfänger), ein selbstgeschriebener Test-Sender) und meine Entwicklung zur Umsetzung der Kommunikation zwischen RPi und mehreren Controllern über die serielle Schnittstelle.

    Es funktioniert so, wie ich Dir das den ganzen Abend über schreibe. Du brauchst es eigentlich nur umzusetzen.

    Poste doch mal einen Screenshot von CuteCom mit Deinen Eingaben. Ansonsten können wir hier noch stundenlang schreiben.

    Poste auch mal die Inhalte von

    Code
    /boot/cmdline.txt


    und von

    Code
    /etc/inittab

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. November 2015 um 23:09)

  • Vorher kam gar nichts bei Cutecom, jetzt nach nochmaligem probieren kam eine Fehlermeldung siehe Bild.

    Inhalt der Datei "cmdline.txt":

    Code
    dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    Inhalt der "inittab":

    Florian

  • Hallo Florian,

    in Beitrag #5 habe ich Dir nahegelegt, zwei Dateien zu ändern. Diese beiden hast Du jetzt gepostet. Die Umsetzung der Änderungen vermag ich nicht zu erkennen.

    Somit sind die Dinge, zwischen #6 und #16 diskutiert wurden, jetzt so ziemlich ins Leere gelaufen.

    Erfolg hat die Sache nur dann, wenn Du Vorschläge von Usern, die Ahnung haben, auch umsetzt. Irgendwie habe ich keine Lust, irgendwas zu empfehlen und Dich dann aufzuforden, einen Nachweis zu erbringen, dass Du das auch umgesetzt hast.

    Die Fehhlermeldung in CuteCom bedeutet, dass entweder an der seriellen Schnittstelle /dev/ttyAMA0 (0 = Null!) nichts angeschlossen ist - oder es diese Schnittstelle nicht gibt. Oder belegt ist - was die beiden angeforderten Dateien nahelegen.

    Also: Bitte zurück zu Beitrag #5, die beiden Änderungen vornehmen und hier nochmals posten!

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. November 2015 um 23:58)

  • Hallo Andreas,

    ich bin mir wirklich sicher das ich diese geändert hatte. Ich weiß nicht woran es liegt, aber ich habe Sie eigentlich geändert und dann mit Strg + O gespeichert und hab die Datei mit Strg + X geschlossen.

    Sorry für die Nachfrage aber gibt es eine Möglichkeit das sich diese Dateien wieder in den "Ursprungszustand" ändern? Tut mir wirklich Leid, aber ich weiß nicht wie das passiert ist. Ich habe das nähmlich extra bevor ich weiter machte nochmals überprüft...

    Zu der Fehlermeldung. Was kann ich da machen? Das Board steckt auf den GPIOs ist also definitiv dran! Und die LED leuchtet beim booten ja ebenfalls.

    Ich werde das ganze morgen früh nochmal durchprobieren. Danke schon mal für deine ganze Hilfe.

    Beste Grüße
    Florian

  • Hallo Florian,

    das glaube ich Dir auch alles - aber die Dateien sehen nicht so aus, wie es erforderlich ist, dass es auch funktionieren kann.

    Passe also als Erstes die Dateien gemäß Beitrag #5 an - und poste den Inhalt. Erst dann kann man hier systematisch weiter machen.

    Kannst Du mal ein Photo von der Erweiterungskarte und den ... machen? Auch da kann man noch Fehler mutmaßen.

    Lass uns Morgen früh weiter machen... ;)

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hi,

    Mach ich dir morgen alles. Wenn du genaues zu dem Empfänger Board und dem Sender suchst, Viel ist auch in dem Beitrag den ich ganz am Anfang verlinkt hatte beschrieben (weiß nicht ob da noch was notwendig ist).

    Werde morgen alles noch ändern und dann nochmal posten mit Bild.

    Danke und Beste Grüße
    Florian

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!