OpenWrt簡(jiǎn)介
OpenWrt 可以被描述為一個(gè)嵌入式的 Linux 發(fā)行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類(lèi))而不是試圖建立一個(gè)單一的、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個(gè)完全可寫(xiě)的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。
對(duì)于開(kāi)發(fā)人員,OpenWrt 是使用框架來(lái)構(gòu)建應(yīng)用程序,而無(wú)需建立一個(gè)完整的固件來(lái)支持;對(duì)于用戶來(lái)說(shuō),這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。
關(guān)于基于OpenWrt和TCPIP協(xié)議的Android遠(yuǎn)程無(wú)線智能機(jī)械彈琴手系統(tǒng).
?本文利用TCP/IP 協(xié)議,的Android 設(shè)備接入互聯(lián)網(wǎng),遠(yuǎn)程發(fā)送控制信號(hào)給刷有OpenWrt 嵌入式系統(tǒng)的3G 路由器,路由器用串口將信號(hào)給Arduino 控制板解析控制信號(hào)并控制機(jī)械彈琴手動(dòng)作,這一套解決方案不僅可以應(yīng)用于智能家居、工業(yè)控制,還可以應(yīng)用于遠(yuǎn)程教育。
一、TCP/IP 協(xié)議
TCP/IP 協(xié)議棧是一個(gè)實(shí)現(xiàn)網(wǎng)絡(luò)上通信的協(xié)議族,這種協(xié)議使得不同平臺(tái)架構(gòu)網(wǎng)絡(luò)之間的互聯(lián)成為可能,它是一個(gè)真正開(kāi)放系統(tǒng),最早起源于一個(gè)關(guān)于分組交換網(wǎng)絡(luò)研究的項(xiàng)目,后來(lái)發(fā)展成為Internet事實(shí)上的通信標(biāo)準(zhǔn)。TCP/IP 協(xié)議采用分層的結(jié)構(gòu)形式,總共分成四層,是對(duì)OSI 結(jié)構(gòu)的簡(jiǎn)化,它們每一層都實(shí)現(xiàn)了不同的功能模塊和通信協(xié)議,每一層都為上一層提供不同的功能模塊和通信協(xié)議,每一層都為上一層提供支持。
如圖1TCP/IP 協(xié)議結(jié)構(gòu)
二、OpenWrt 路由嵌入式系統(tǒng)
OpenWrt 是一個(gè)開(kāi)源的Linux 版本,主要是用于嵌入式系統(tǒng),其強(qiáng)大之處在于它的網(wǎng)絡(luò)部分功能,現(xiàn)在很多嵌入式設(shè)備的代碼都是使用OpenWrt 或者參考OpenWrt 是運(yùn)行在嵌入式CPU 上,OpenWrt 做成的。主頻一般都在幾百兆左右,F(xiàn)lash 閃存一般為8M 或者16M,SDRAM 內(nèi)存一般是16M。主流路由器固件有dd-wrt,tomato,openwrt三類(lèi)。對(duì)于開(kāi)發(fā)人員,dd-wrt,tomato,OpenWrt 是使用框架來(lái)構(gòu)建應(yīng)用程序,而無(wú)需建立一個(gè)完整的固件來(lái)支持; 對(duì)于用戶來(lái)說(shuō),這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。
本文中1的mini 路由器是常見(jiàn)的TP-LINK
無(wú)線標(biāo)準(zhǔn):
IEEE
TL-WR7O3N v1,4MFlash,32MDDR,
有線標(biāo)準(zhǔn):IEEE
802.11n、IEEE 802.11g、IEEE 802.11b,
802.3、IEEE 802.3u,最高傳輸速度150Mbps,信道數(shù)
1個(gè)10/100Mbps LAN/WAN 復(fù)用接口,1個(gè)USB接口,內(nèi)置天線,支持3G、VPN、WDS 無(wú)線橋接、無(wú)線MAC 地址過(guò)濾、無(wú)線安全功能開(kāi)關(guān)、64/128/152位WEP 加密、WPA-PSK/WPA2-PSK、WPA/WPA2 安全機(jī)制,遠(yuǎn)程WEB 管理,配置文件導(dǎo)入與導(dǎo)出,WEB軟件升級(jí)。
在www.openwrt.org.cn 下載中心下載TL-WR703N的OpenWrt 固件,路由器通過(guò)網(wǎng)線連接電腦后登陸路由器,在路由器的固件升級(jí)中選擇文件進(jìn)行升級(jí),升
級(jí)中不要斷電,否則導(dǎo)致路由器損壞,整個(gè)過(guò)程需要5分鐘左右,升級(jí)后路由器的USB就具備了駁接攝像頭或者直插U 盤(pán)的功能,而官方版本只支持駁接3G
上網(wǎng)卡。刷完后固件版本為OpenWrt FirmWareAttitude Adjustment( r31054) /LuCI Trunk
(trunk-svn8380 ),嵌入式Linux 內(nèi)核版本為3.2.12。WIFI智能模塊,直接把就是把3G 路由器改裝的,TTL 焊點(diǎn)引到了迷你USB 接[ 1,這樣就可以跟控制板進(jìn)行通信和供電。遠(yuǎn)程設(shè)置的基本流程就是將連上寬帶的無(wú)線路由
器添加一個(gè)虛擬服務(wù)器,IP 為192.168.1.17 ,新建兩個(gè)服務(wù)端口,視頻接入端口為8080,控制端口為2001,將3G 無(wú)線路由器的模式Access Point 改為Client并連上無(wú)線路由器,查看無(wú)線路由器的WAN口IP地址為202.203.41.14 ,在手機(jī)端接入服務(wù)器IP設(shè)置為202.203.41.14
,這樣手機(jī)連上寬帶后就可以連接上遠(yuǎn)程的3G 路由器。
圖2 IP遠(yuǎn)程連接拓?fù)浣Y(jié)構(gòu)
三、Arduino控制系統(tǒng)
Arduino平臺(tái)的基礎(chǔ)就是AVR 指令集的單片機(jī)。Arduino是一個(gè)能夠用來(lái)感應(yīng)和控制現(xiàn)實(shí)物理世界的套工具。它由一個(gè)基于單片機(jī)并且開(kāi)放源碼的硬件
平臺(tái),和一套為Arduino 板編寫(xiě)程序的開(kāi)發(fā)環(huán)境組成。Arduino 可以用來(lái)開(kāi)發(fā)交互產(chǎn)品,比如它可以讀取大量的開(kāi)關(guān)和傳感器信號(hào),并且可以控制各式各樣的電燈、電機(jī)和其他物理設(shè)備。
圖3 Arduino控制板的框圖。
圖4 控制系統(tǒng)組成框圖
四、Android 手機(jī)端軟件設(shè)計(jì)
Android 提供一套關(guān)于wifi 連接和數(shù)據(jù)信號(hào)收發(fā)的API,我們利用這些API 可以快速開(kāi)發(fā)相關(guān)軟件,軟件Main.java 的基本函數(shù)構(gòu)成如圖5。
圖5 Main.java 基本函數(shù)構(gòu)成
常用鋼琴鍵為21個(gè)鍵,即分別實(shí)現(xiàn)高中低三個(gè)音階,安卓軟件界面如圖7。
六、總結(jié)
本文提出了一套完整了遠(yuǎn)程控制方案,包括硬件部分和軟件部分,隨著遠(yuǎn)程無(wú)線控制的發(fā)展,這個(gè)方向會(huì)越來(lái)越被大家所青睞,然而目前網(wǎng)絡(luò)連接中廣泛使用的IPV4 協(xié)議地址空間上存在很大的局限性,地址空間的局限往往使得運(yùn)營(yíng)商動(dòng)態(tài)分配IP地址。如果自己有唯一的域名的話就可以解決這個(gè)問(wèn)題,解析到域名的IP地址就可以唯一的連接到此地址作為服務(wù)器了,理論上全國(guó)各地均可以進(jìn)行遠(yuǎn)程連接和控制。
評(píng)論