傳統單晶片(Arduino)偏向於Serial 通訊 ,非TCP /IP 通訊..
一般習慣增加 Lan Shield 或是整合網路單晶片板 主要在於價格昂貴跟功能太少..
使用FW171-3G (TP-WR703N) 體積小 成本低 再加上其強大開源openwrt fw ,usb 可再接上USB CAM or sound
裝置傳感聲音 影像 ,web 可支持cgi,Java script ,php ,python等
Client 端用TCP /IP 先與mips FW171-3G 通訊, 再用串口訊號送給 MCU單晶片通訊
應用於
WEB UI 控制 Arduino 燈號.設備等
Serial port UPS開關.
機器車 飛行器
IP CAM
Arduino to 紅外線 遙控家電.
等各種應用
這邊使用Lua 則可簡單完成 並且可以輕易美化web 頁面..
本範例 建議用已編譯好相關套件OSSLAB FW 做下面實驗
注意一下 Lua code 注釋需要用 --
vi /www/cgi-bin/web2ser --準備新增檔案
#!/usr/bin/lua
io.output("/dev/ttyUSB0") -- 這邊要注意 用哪個serial port ,dev 下確定後 先用ser2net測試.
io.write(os.getenv("QUERY_STRING"))
儲存
chmod /www/cgi-bin/web2ser 777 -- 設定權限
準備編寫頁面控制檔 vi /www/test.html 此頁面為Javascript 按下頁面上 前進 後退 右 左 icon 透過 serial 訊號分別送出 1 2 4 3 並且包含ip stream video <div style="float:left"> <script> function sendSer(value){ document.getElementById("ser").src="/cgi-bin/web2ser?"+value; } </script> <table> <tr><td/><img id="ser" width="1" height="1"> <td><input type="button" onmousedown="sendSer('1')" onmouseup="sendSer('0')" value="前進" /></td><td/></tr> <tr><td><input type="button" onmousedown="sendSer('2')" onmouseup="sendSer('0')" value="左轉" /></td><td/> <td><input type="button" onmousedown="sendSer('4')" onmouseup="sendSer('0')" value="右轉" /></td></tr> <tr><td/><td><input type="button" onmousedown="sendSer('3')" onmouseup="sendSer('0')" value="後退" /></td><td/></tr> <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('5')" value="舵機向上" /></td></tr> <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('6')" value="舵機向下" /></td></tr> </table> </div> <div style="float:left"> <iframe width="640" height="480" src="http://localhost:8080/?action=stream"/> #IP CAM steam frame </div>
單晶片板 (like arduino )程式碼為分別對 接收這些串口訊號後 再送出 PWM 或是等電機 舵機控制訊號...
參考
http://hi.baidu.com/lancerz001/item/...6aaae451fd8765
http://hi.baidu.com/szqkfsskk/item/9...6d6ed5d1f8cdcd
http://v.youku.com/v_show/id_XMzk0MDY0Nzcy.html