李玉斌
(貴州電子信息職業(yè)技術(shù)學(xué)院電子工程系,貴州 凱里 556000)
論基于OPENWRT系統(tǒng)路由器的遠(yuǎn)程監(jiān)控平臺(tái)構(gòu)建
李玉斌
(貴州電子信息職業(yè)技術(shù)學(xué)院電子工程系,貴州 凱里 556000)
本文主要討論設(shè)計(jì)基于嵌入式OpenWrt系統(tǒng)的路由器的遠(yuǎn)程監(jiān)控平臺(tái),涵蓋的功能有視頻音頻監(jiān)測(cè)、自主移動(dòng)、環(huán)境信息采集、位置定位、WiFi通信等,是一種具有高性價(jià)比、良好的操控性、安全性及可配置的遠(yuǎn)程監(jiān)控智能設(shè)備平臺(tái)。
OPENWRT系統(tǒng);遠(yuǎn)程監(jiān)控;平臺(tái)構(gòu)建
上層以安裝OPEN WRT系統(tǒng)TP—Link WR703N路由器(基于Atheros的AR9331芯片)作為上層的主板,主要負(fù)責(zé)功能為圖像采集模塊、無線通信模塊的功能,實(shí)現(xiàn)控制信號(hào)、圖像采集、聲音采集和WiFi無線通信的數(shù)據(jù)傳輸。上層架構(gòu)硬件核心系統(tǒng)是基于TP—Link WR703N的改造路由器,安裝OpenWrt系統(tǒng)設(shè)計(jì)出基于Atheros的AR9331芯片WiFi通信模塊,選擇天敏S606、S608的網(wǎng)絡(luò)攝像頭為監(jiān)控視頻和聲音的硬件設(shè)施。實(shí)現(xiàn)遠(yuǎn)程監(jiān)控、控制等功能。并且預(yù)留可擴(kuò)張的接口,用于智能家居的控制。
下層是以通用8位或16位單片機(jī)為控制板,外接傳感器、電機(jī)驅(qū)動(dòng)、顯示、串口通信電路等。主要實(shí)現(xiàn)運(yùn)動(dòng)過程控制、傳感器數(shù)據(jù)處理、串口遙控信號(hào)的接收和執(zhí)行。
遠(yuǎn)程監(jiān)控平臺(tái)的軟件設(shè)計(jì)包括嵌入式操作系統(tǒng)、網(wǎng)絡(luò)攝像頭加載程序、視頻處理程序、WEB服務(wù)器程序以及單片機(jī)控制應(yīng)用程序等。核心系統(tǒng)選用嵌入式LINUX發(fā)行版OpenWrt為上層硬件架構(gòu)即路由器的操作系統(tǒng)。OpenWrt的設(shè)計(jì)開發(fā)理念是將操作系統(tǒng)分解組合成為一套完全可寫的文件系統(tǒng)及軟件包管理,使用軟件包的概念來管理嵌入式設(shè)備,因此嵌入軟件開發(fā)的過程變得更為簡單和容易。
我們需要通過改裝的路由器使實(shí)現(xiàn)下面的功能:驅(qū)動(dòng)并控制攝像頭,通過串口控制硬件層的C51單片機(jī),驅(qū)動(dòng)無線網(wǎng)卡并連接,運(yùn)行服務(wù)端,提供UI界面。而實(shí)現(xiàn)以上的功能,我們需要首先構(gòu)建一個(gè)嵌入式操作系統(tǒng)。經(jīng)過反復(fù)地討論研究,我們決定在主芯片是Atheros的AR9331路由器上移植OpenWrt。
OpenWrt它是一個(gè)開源的用于各種無線路由及嵌入式設(shè)備的linux發(fā)行版。它可以實(shí)現(xiàn)與另外一個(gè)著名的固件DD-WRT相類似的功能。OpenWrt提供了一個(gè)完全可寫文件系統(tǒng)及軟件包管理,它通過簡單易用的方式,最大限度地降低了嵌入式linux開發(fā)的門檻,它允許使用軟件包的概念來定制嵌入式設(shè)備,這使得它能適用于絕大多數(shù)應(yīng)用并實(shí)現(xiàn)更多的功能。對(duì)于開發(fā)人員,OpenWrt提供簡單易用的環(huán)境框架來構(gòu)建應(yīng)用程序。OpenWrt主頁:http://www.OpenWrt.org。
本課題重點(diǎn)研究的路由器,已經(jīng)發(fā)布有通用的版本,因此不需要自己再去重復(fù)的編譯。為了深入學(xué)習(xí)和了解,也可以下載源碼來自己編譯,得到的“固件”效果是一樣。
整體設(shè)計(jì)實(shí)現(xiàn)的步驟:
(1)改造能刷Linux的無線路由器,將其操作系統(tǒng)刷成OpenWrt。
(2)將Linux下的攝像頭驅(qū)動(dòng)安裝到路由器上, 即在路由器上安裝程序: 掛載攝像頭、安裝MJPEG。
(3)PC端與機(jī)器人建立通訊。
(4)通過上位機(jī)操作,選擇PC端的上位機(jī)軟件,利用上位機(jī)的Socket把特定的數(shù)據(jù)包發(fā)送到路由端。直接控制單片機(jī)電機(jī)運(yùn)動(dòng),并能實(shí)時(shí)接收到機(jī)器人上的攝像頭視頻。整體設(shè)計(jì)如下圖1所示:
圖1 OPENWRT系統(tǒng)路由器的遠(yuǎn)程監(jiān)控平臺(tái)整體架構(gòu)
提前準(zhǔn)備好OPENWRT系統(tǒng)編譯好的“固件”,具體編譯方法在下一章會(huì)有介紹。這里先學(xué)會(huì)運(yùn)用成熟的網(wǎng)絡(luò)公共資源,尋找主頁:http://www.OpenWrt.org或下載固件“openwrt-ar71xx-generic-tlwr703n-v1-squashfs-sysupgrade.bin”(針對(duì)TP-LINK WR703N路由器,F(xiàn)lash=4MB RAM=32MB ar9331芯片屬于ar71xx),在官網(wǎng)下載最新的OpenWrt固件,保證各種軟件的安裝不出問題,但是不提供界面LUCI(WEB服務(wù)器軟件LuC),openwrt系統(tǒng)下的WEB服務(wù)器LuCi是一個(gè)嵌入式設(shè)備的Web框架。
本系統(tǒng)需要給路由器刷OPENWRT系統(tǒng)。目前刷機(jī)大致有兩種方法,一種是通過網(wǎng)線法進(jìn)行刷機(jī),另一種是通過TTL線進(jìn)行刷機(jī)。一般采用網(wǎng)線法刷機(jī)比較簡單,不需要什么工具。下面重點(diǎn)介紹網(wǎng)線法刷機(jī)步驟:
第一步:首先關(guān)閉路由器電源,網(wǎng)線連接電腦和路由器的LAN4或LAN1。
第二步:電腦IP設(shè)置為192.168.1.X/255.255.255.0(X為2-255之間的任意數(shù)字),網(wǎng)關(guān)不用設(shè)置。
第三步:用針狀物按住路由器的RST鍵,然后打開路由器電源,等待大概10至15秒鐘,路由器的電源燈會(huì)變成紅色,此時(shí)可松開復(fù)位按鍵。
第四步:運(yùn)行電腦端的cmd.exe,然后輸入ping 192.168.1.1,測(cè)試是否能ping通,如能ping 通繼續(xù),否則返回檢查。
第五步:打開電腦瀏覽器輸入192.168.1.1,會(huì)出現(xiàn)一個(gè)頁面,即出現(xiàn)CFE更新的頁面,這里要選擇要刷的OpenWrt固件,請(qǐng)按圖示文字進(jìn)行操作更新固件,此時(shí)固件選擇“openwrt-ar71xxgeneric-tl-wr703n-v1-squashfs-sysupgrade.bin”,點(diǎn)擊確定開始刷機(jī),然后等待一會(huì)兒,大概兩分鐘后路由器會(huì)自動(dòng)重啟,至此說明路由器刷機(jī)完成。
第六步:這里還需要進(jìn)行的步驟是開啟WiFi,設(shè)置pppoe聯(lián)網(wǎng),安裝LUCI,本處暫時(shí)不詳細(xì)討論,因?yàn)樵谧约壕幾g固件時(shí)候可以將LUCI軟件編譯在一起。
也可以非常方便的在openwrt官網(wǎng)可得到LUCI軟件安裝包,使用putty(該軟件是嵌入式系統(tǒng)調(diào)試常用的軟件)登陸路由后,通過如 下命令安裝LUCI與中文包:
即可完成LUCI的安裝。
最后支持中文界面運(yùn)行在PC上ping 192.168.1.1,如能ping 通路由器,則表示本次刷機(jī)成功,這時(shí)候可以訪問http://192.168.1.1將會(huì)看到期待的openwrt WEB中文界面,即WEB服務(wù)器軟件LuC中文版。如不能ping通則關(guān)閉電源,回到步驟前面幾步重做。
5.1 路由器掛載攝像頭
目前常用的USB攝像頭分兩種:有驅(qū)的和免驅(qū)的。在本系統(tǒng)中使用的是有驅(qū)的,主控芯片為中星微301,此攝像頭掛載成功率100%,并且性價(jià)比高,特別適合本系統(tǒng)的設(shè)計(jì)。以下是OpenWrt 掛載攝像頭的程序參考語句。
5.2 安裝監(jiān)控端作用的軟件MJPEG
MJPEG作為一個(gè)小型的視頻服務(wù)器軟件,對(duì)系統(tǒng)消耗非常小,也很適合本系統(tǒng)設(shè)計(jì)。(另外一種預(yù)選方案是考慮安裝Palantir模塊)
(1)安裝MJPEG
使用如下命令安裝:
Opkg install mjpg-strcamer
(2)啟動(dòng)MJPEG
/etc/init.d/mjpg-streamer start
(3)查看圖像
由于火狐瀏覽器支持動(dòng)態(tài)刷新,因此需要下載安裝火狐瀏覽器。在地址欄輸入:http://192.168.1.1:8080/?action-stream 可查看到攝像頭的動(dòng)態(tài)視頻。
通過上位機(jī)操作,選擇PC端的上位機(jī)軟件,利用上位機(jī)的Socket把特定的數(shù)據(jù)包發(fā)送到路由端。直接控制單片機(jī)電機(jī)運(yùn)動(dòng),并能實(shí)時(shí)接收到機(jī)器人上的攝像頭視頻。關(guān)于嵌入式系統(tǒng)通過上位機(jī)與PC通信的研究,已經(jīng)有許多成熟的方案,本處不在展開討論。
本課題創(chuàng)新點(diǎn)在于采用常見的無線路由器作為硬件平臺(tái),通過在其上移植刷寫開放及擴(kuò)展性極佳的OpenWrt(linux)系統(tǒng),作為整個(gè)系統(tǒng)的軟硬件基礎(chǔ);WIFI作為通訊手段;可在通過網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控及控制;預(yù)留接口擴(kuò)展智能家居控制系統(tǒng)。經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值方面,本課題的提供了一套新穎的、高性價(jià)比的智能平臺(tái),適用于玩具娛樂、遠(yuǎn)程監(jiān)控、簡單WEB網(wǎng)絡(luò)服務(wù)器、智能家居控制等應(yīng)用,是一套高適應(yīng)性、強(qiáng)擴(kuò)展性的開放性嵌入式智能遠(yuǎn)程監(jiān)控平臺(tái)。
李玉斌(1982—),男,湖南永州人,本科,碩士在讀,講師,研究方向:嵌入式系統(tǒng)、集成電路應(yīng)用。