Daten an serielle Schnittstelle senden funktioniert nicht zufriedenstellend

Gast #3500107
Lesenswert?

Guten Abend!

Ich habe ein Raspberry Pi mit einem wheezy-Linux drauf. Die serielle 
Schnittstelle mit den Pins TxD und RxD heisst bei mir /dev/ttyAMA0. An 
die serielle Schnittstelle habe ich einen optischen Lesekopf 
angeschlossen. Den Lesekopf habe ich auf einen Stromzähler drauf 
gesetzt. Der Lesekopf verfügt über eine Sendeteil und ein Empfangsteil 
(beides glaub ich Fototransistoren, aber egal).

Zunächst habe ich mit dem Programm "minicom" experimentiert.
Ich kann Daten an die serielle Schnittstelle in Minicom senden und 
empfange Daten. Ich habe das lokale echo abgeschaltet. Die Daten müssen 
also von der einen Diode gesendet werden und der Empfang erfolgt über 
den Emfpangsbaustein (Bild hilfe0.jpg).

Ich möchte gerne, dass mir der Zähler antwortet und Daten sendet. Dazu 
muss ich dem Stromzähler über die serielle Schnittstelle das Kommando 
/?! + CR + LF zusenden. Die Baudrate steht auf 300, Modus 7R1 wie in der 
Beschreibung beschrieben.

Tippe ich in minicom den Befehl kurz ein /?! und drücke zweimal return, 
dann antwortet der Zähler nichts, obwohl er es eigentl. sollte.

Nun gut, ich habe ein php-Programm bekommen, dass ich verwenden soll.

Ich habe zunächst nicht das ganze php-Programm genommen, weil es bei mir 
nicht funktioniert. Ich habe es vereinfacht und man sieht das Programm 
in dem Bild hilfe1.JPG.

Dann habe ich das Programm im Webbrowser gestartet, leider kommt das 
Programm in den Fehler - aber es wird keine Fehlernummer angezeigt (Bild 
hilfe2.jpg).

Ich habe keine Idee, wie ich per php-Sript, dass ich dann im Webbrowser 
aufrufe, etwas an die serielle Schnittstelle senden kann.

Ich muss es also hinbekommen, dass das Programm nicht mehr in den Fehler 
geht. Aber weil keine Fehlermeldungen geliefert werden, kenne ich die 
Ursache nicht.

Kann mir jemand von Euch vlt. einen Tipp geben?
Angehängte Dateien:
Gast #3500155
Lesenswert?

Datensendung schrieb:
> Ich möchte gerne, dass mir der Zähler antwortet und Daten sendet. Dazu
> muss ich dem Stromzähler über die serielle Schnittstelle das Kommando
> /?! + CR + LF zusenden. Die Baudrate steht auf 300, Modus 7R1 wie in der
> Beschreibung beschrieben.

Ich glaube Minicom sendet standardmäßig kein CR+LF wenn du Enter 
drückst, IIRC. Du musst das einstellen. Ich nutze für solche Sachen aber 
eh lieber GNU screen.
#3500171
Lesenswert?

Mach mal einen Aufruf von phpinfo(); in dein Programm. Das zeigt die 
u.a. den Account an unter dem Apache läuft. Bei mir ist das z.B. 
www-data. Jetzt guck mal, mit welchen Berechtigungen der serielle Port 
in deinem System ist. Bei mir sieht das so aus:
1
crw-rw---- 1 root dialout 4, 64 Jan 11 20:41 /dev/ttyS0

Damit www-data auf /dev/ttyS0 zugreifen kann muss demzufolge www-data 
zur Gruppe "dialout" hinzugefügt werden (usermod). Apache danach 
neustarten und der Zugriff auf den seriellen Port sollte dann klappen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren