9600,'bits' => 8,'stop' => 1,'parity' => 0)); // 按照 AT2051 說明書所說的, 要抓 ID 1 的偵測器就輸入給 01H, ID 2 給 02H 以此類推 dio_write($fd,"\x01H",1); // write 0x01H to /dev/cuaU0 for($i=1 ; $i<=7 ; $i++) { // AT2051 最多只會輸出 7 個字 $data = dio_read($fd, 2); // 從 AT2051 取得資料, 由於它最多一次只會吐 2 個字元, 所有後面只需要 2 即可 if($data == "T" || $go){ // 一開始的字元偶爾會出現多餘的換行字元, 所以從抓到 T 才開始 $go=1; // 給個抓到 T 之後都要跑的 tag $temp .= $data; // 把抓到的字通通串起來 // for debug 用, 顯示每次的回傳值 if ($debug) echo "$i => $data\n"; } } if ($debug) echo "$temp\n"; // 把我不要的字通通取代掉 $temp = str_replace("T1=+", "", $temp); if ($debug) echo "$temp\n"; $temp = str_replace("C", "", $temp); if ($debug) echo "$temp\n"; $up = "不知道"; // 以下這邊是給 mrtg 畫圖輸出用的, 共輸出四行 echo "0" . "\n"; // 綠色區塊 echo $temp . ""; // 藍色線 echo $up . "\n"; // 運作時間 echo "AT2051 溫度\n"; // 註解 // 養成關閉連線的好習慣 dio_close($fd); ?>