2017-08-27 6 views
1

Ich habe diesen einfachen Code: Es dauert Arduino serielle Daten zu einem Raspberry Pi. Auf dem Pi möchte ich die Daten in einem Browser in PHP anzeigen.Arduino zu Pi zu PHP

<?php 
    $fp = fopen('/dev/cu.wchusbserial1a12130','r+'); //use this for Mac Nano 
    echo $fp."<br>"; 
    echo fread($fp, "10"); 
    fclose($fp); 
?> 

Es funktioniert perfekt auf dem Mac-Server mit einem Nano oder Uno. Aber sobald ich es auf meinen Pi-Server lade und den Port in/dev/ttyUSB0 ändere, funktioniert es nicht mehr. Der Browser ist leer. Hat es etwas mit den Pi-Berechtigungen zu tun? Vielen Dank.

+2

Wenn die Seite leer ist, bedeutet das wahrscheinlich, dass Sie einen PHP-Fehler erhalten haben, der nicht angezeigt wurde. Versuchen Sie, 'error_reporting (E_ALL); ini_set ('display_errors', 1);' oben auf Ihrer PHP-Seite hinzuzufügen, wie in [dieser Beitrag] beschrieben (https://stackoverflow.com/questions/1053424/how-do- i-get-php-errors-to-display) – Wndrr

+0

Danke für die Antwort. – Tony

+0

Ich werde versuchen, die PHP-Fehlerprüfung hinzuzufügen. Aber ich bezweifle, dass es PHP-Fehler ist, warum würde es gut auf dem Mac, aber nicht auf dem Pi aussprechen? Ich vermute, wenn es mit dem USB-Anschluss am Pi zu tun hat? – Tony

Antwort

1

In PHP, wenn Sie eine komplett leere Seite bekommen, bedeutet dies oft, dass ein schwerwiegender Serverfehler aufgetreten ist, aber dass PHP den Fehler im Klartext nicht an den Client melden konnte (aus Sicherheitsgründen). Sie können dies entweder in der php.ini ändern (dies betrifft alle von PHP) oder indem Sie die folgenden Zeilen am Anfang der PHP-Datei hinzufügen, die Ihnen eine leere Seite bietet.

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

Jetzt für die failed to open stream: Permission denied ist es ein Problem Dateisystem Erlaubnis. Der Benutzer läuft der Webserver hat nicht die Berechtigung, die Datei zu lesen. Sie können den folgenden Befehl verwenden, um Apache die Berechtigung zum Lesen Ihrer Datei sudo chmod -R 775 /dev/ttyUSB0 zu erteilen. Weitere Informationen zum Befehl chmod finden Sie unter this page.