2017-08-27 39 views
1

我有這個簡單的代碼:它需要Arduino串行數據到Raspberry Pi。在Pi上,我想用PHP在瀏覽器上顯示數據。Arduino到Pi到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]中描述的PHP頁面頂部添加'error_reporting(E_ALL); ini_set('display_errors',1);'(https://stackoverflow.com/questions/1053424/how-do- i-get-php-errors-to-display) – Wndrr

+0

感謝您的回覆。 – Tony

+0

我會嘗試添加php錯誤檢查。但我懷疑這是PHP的錯誤,爲什麼它會在Mac上執行得很好,但不在Pi上?我懷疑它是否與Pi上的USB端口有關? – Tony

回答

1

在PHP中,當您獲得完全空白的頁面時,通常意味着發生了致命的服務器錯誤,但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