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?
Datensendung schrieb: > Kann mir jemand von Euch vlt. einen Tipp geben? der Apache wird wohl keine rechte auf /dev/ttyAMA0 haben.
Peter II schrieb: > der Apache wird wohl keine rechte auf /dev/ttyAMA0 haben. aber ich habe mich doch als root eingeloggt.
probier doch erst mal vom PC aus, ob der Zähler so reagiert wie angenommen
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.