2017-08-27 5 views
1

私はこの単純なコードを持っています。ArduinoシリアルデータをRaspberry Piに渡します。 Piでは、ブラウザにデータをPHPで表示したいと考えています。ArduinoからPi to PHP

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

NanoまたはUnoを搭載したMacサーバーでは問題なく動作します。しかし、いったん私のPiサーバーにロードして、ポートを/ dev/ttyUSB0に変更すると、これ以上は機能しません。ブラウザは空白です。 Pi権限と関係がありますか?ありがとう。

+2

ページが空白の場合は、表示されていないPHPエラーが発生した可能性があります。 [this post](https://stackoverflow.com/questions/1053424/how-do-info/)で説明されているようにPHPページの上部に 'error_reporting(E_ALL); ini_set( 'display_errors'、1);を追加してみてください。 i-get-php-errors-to-display) – Wndrr

+0

返事をありがとう。 – Tony

+0

PHPエラーチェックを追加しようとします。しかし、私はそれがPHPのエラーであるとは思わない、なぜそれはMac上でうまくいくのだろうか?私はそれがPiのUSBポートと関係があると思う? – Tony

答えて

1

PHPでは、完全に空白のページが表示された場合、致命的なサーバーエラーが発生することがよくありますが、セキュリティ上の理由からプレーンテキストのエラーをプレーンテキストでレポートすることはできません。これをphp.ini(これはPHPのすべてに影響します)で変更するか、空白のページを表示するPHPファイルの先頭に以下の行を追加します。

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

failed to open stream: Permission deniedは、ファイルシステムのアクセス許可の問題です。 というユーザーがを実行している場合、Webサーバーにファイルを読み取る権限がありません。次のコマンドを使用して、Apacheにファイルsudo chmod -R 775 /dev/ttyUSB0を読み取る権限を与えることができます。 chmodコマンドの詳細については、this pageを参照してください。

関連する問題