2013-05-28 148 views
1

我正在開發一個項目,我想通過串行通信向Arduino發送傳感器數據。串行通信Arduino到PHP

不幸的是我無法讀取PHP中的串口。然而,另一個方向(PHP到Arduino)完美地工作。 我使用RémySanchez的php_serial.class.php,由Rizwan Kassim修改。我依賴於readPort()函數。

我在Mac OS X上使用Arduino UNO和Apache WAMP服務器。 我應該實現沒有以太網屏蔽的串行連接。在進一步的步驟中,我必須將接收到的數據從串行端口保存在MySql數據庫中。 我確實看到了一些涉及這個問題的條目,但他們並沒有真正幫助我。我已經嘗試了很多。 我確定,有人有一些工作代碼,可以上傳。 我在做什麼錯? 我希望有人會發布代碼或有小費!

順便說一句,here是一個成功的傢伙的視頻。但我無法獲得代碼.... 在此先感謝您的建議!

映入眼簾的Fab

+0

字節串,我可以看到一些功能可用,http://php.net/manual/en/function。 socket-create.php或庫,例如。 https://code.google.com/p/php-serial/您究竟遇到了什麼問題? – shapeshifter

+0

http://stackoverflow.com/questions/13114275/php-serial-port-data-return-from-arduino – shapeshifter

+0

你會好100倍,只是創建交易#中間人拉入數據並暴露給PHP 。它要容易得多。 –

回答

0

的php_serial.class.php是種壞了,我不得不去適應它得到一個讀出的,所以而是採用從閱讀器方法如下: $內容=「 「; $ i = 0;

    if ($count !== 0) 
        { 
          do { 
            if ($i > $count) $content .= fread($this->_dHandle, ($count - $i)); 
            else $content .= fread($this->_dHandle, 128); 
          } while (($i += 128) === strlen($content)); 
        } 
        else 
        { 
          do { 
            $content .= fread($this->_dHandle, 128); 
          } while (($i += 128) === strlen($content)); 
        } 

我曾經就這

 //trigger_error("reading 0 ".$i, E_USER_WARNING); 
    $content .= fread($this->_dHandle, $count); 


    return str_split($content); 

然後重建在PHP