Forum: Mikrocontroller und Digitale Elektronik Daten an serielle Schnittstelle senden funktioniert nicht zufriedenstellend


von Datensendung (Gast)


Angehängte Dateien:

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?

von Peter II (Gast)


Lesenswert?

Datensendung schrieb:
> Kann mir jemand von Euch vlt. einen Tipp geben?

der Apache wird wohl keine rechte auf /dev/ttyAMA0 haben.

von Datensendung (Gast)


Lesenswert?

Peter II schrieb:
> der Apache wird wohl keine rechte auf /dev/ttyAMA0 haben.

aber ich habe mich doch als root eingeloggt.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

probier doch erst mal vom PC aus, ob der Zähler so reagiert wie 
angenommen

von Peter II (Gast)


Lesenswert?

Datensendung schrieb:
> aber ich habe mich doch als root eingeloggt.

aber der Apache wird doch wohl nicht als root laufen. Egal wie du dich 
ein logst.

von greg (Gast)


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.

von Datensendung (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> probier doch erst mal vom PC aus, ob der Zähler so reagiert wie
> angenommen

dass hab ich ja mit dem Minicom-Programm probiert und das Kommando /?! 
hingesendet, aber der Zähler antwortet nichts.

von Luther B. (luther-blissett)


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.

von Datensendung (Gast)


Lesenswert?

greg schrieb:
> lieber GNU screen.

ist GNU-Screen eine Alternative zu putty oder zu minicom?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.