李玉斌
(貴州電子信息職業技術學院電子工程系,貴州 凱里 556000)
論基于OPENWRT系統路由器的遠程監控平臺構建
李玉斌
(貴州電子信息職業技術學院電子工程系,貴州 凱里 556000)
本文主要討論設計基于嵌入式OpenWrt系統的路由器的遠程監控平臺,涵蓋的功能有視頻音頻監測、自主移動、環境信息采集、位置定位、WiFi通信等,是一種具有高性價比、良好的操控性、安全性及可配置的遠程監控智能設備平臺。
OPENWRT系統;遠程監控;平臺構建
上層以安裝OPEN WRT系統TP—Link WR703N路由器(基于Atheros的AR9331芯片)作為上層的主板,主要負責功能為圖像采集模塊、無線通信模塊的功能,實現控制信號、圖像采集、聲音采集和WiFi無線通信的數據傳輸。上層架構硬件核心系統是基于TP—Link WR703N的改造路由器,安裝OpenWrt系統設計出基于Atheros的AR9331芯片WiFi通信模塊,選擇天敏S606、S608的網絡攝像頭為監控視頻和聲音的硬件設施。實現遠程監控、控制等功能。并且預留可擴張的接口,用于智能家居的控制。
下層是以通用8位或16位單片機為控制板,外接傳感器、電機驅動、顯示、串口通信電路等。主要實現運動過程控制、傳感器數據處理、串口遙控信號的接收和執行。
遠程監控平臺的軟件設計包括嵌入式操作系統、網絡攝像頭加載程序、視頻處理程序、WEB服務器程序以及單片機控制應用程序等。核心系統選用嵌入式LINUX發行版OpenWrt為上層硬件架構即路由器的操作系統。OpenWrt的設計開發理念是將操作系統分解組合成為一套完全可寫的文件系統及軟件包管理,使用軟件包的概念來管理嵌入式設備,因此嵌入軟件開發的過程變得更為簡單和容易。
我們需要通過改裝的路由器使實現下面的功能:驅動并控制攝像頭,通過串口控制硬件層的C51單片機,驅動無線網卡并連接,運行服務端,提供UI界面。而實現以上的功能,我們需要首先構建一個嵌入式操作系統。經過反復地討論研究,我們決定在主芯片是Atheros的AR9331路由器上移植OpenWrt。
OpenWrt它是一個開源的用于各種無線路由及嵌入式設備的linux發行版。它可以實現與另外一個著名的固件DD-WRT相類似的功能。OpenWrt提供了一個完全可寫文件系統及軟件包管理,它通過簡單易用的方式,最大限度地降低了嵌入式linux開發的門檻,它允許使用軟件包的概念來定制嵌入式設備,這使得它能適用于絕大多數應用并實現更多的功能。對于開發人員,OpenWrt提供簡單易用的環境框架來構建應用程序。OpenWrt主頁:http://www.OpenWrt.org。
本課題重點研究的路由器,已經發布有通用的版本,因此不需要自己再去重復的編譯。為了深入學習和了解,也可以下載源碼來自己編譯,得到的“固件”效果是一樣。
整體設計實現的步驟:
(1)改造能刷Linux的無線路由器,將其操作系統刷成OpenWrt。
(2)將Linux下的攝像頭驅動安裝到路由器上, 即在路由器上安裝程序: 掛載攝像頭、安裝MJPEG。
(3)PC端與機器人建立通訊。
(4)通過上位機操作,選擇PC端的上位機軟件,利用上位機的Socket把特定的數據包發送到路由端。直接控制單片機電機運動,并能實時接收到機器人上的攝像頭視頻。整體設計如下圖1所示:

圖1 OPENWRT系統路由器的遠程監控平臺整體架構
提前準備好OPENWRT系統編譯好的“固件”,具體編譯方法在下一章會有介紹。這里先學會運用成熟的網絡公共資源,尋找主頁:http://www.OpenWrt.org或下載固件“openwrt-ar71xx-generic-tlwr703n-v1-squashfs-sysupgrade.bin”(針對TP-LINK WR703N路由器,Flash=4MB RAM=32MB ar9331芯片屬于ar71xx),在官網下載最新的OpenWrt固件,保證各種軟件的安裝不出問題,但是不提供界面LUCI(WEB服務器軟件LuC),openwrt系統下的WEB服務器LuCi是一個嵌入式設備的Web框架。
本系統需要給路由器刷OPENWRT系統。目前刷機大致有兩種方法,一種是通過網線法進行刷機,另一種是通過TTL線進行刷機。一般采用網線法刷機比較簡單,不需要什么工具。下面重點介紹網線法刷機步驟:
第一步:首先關閉路由器電源,網線連接電腦和路由器的LAN4或LAN1。
第二步:電腦IP設置為192.168.1.X/255.255.255.0(X為2-255之間的任意數字),網關不用設置。
第三步:用針狀物按住路由器的RST鍵,然后打開路由器電源,等待大概10至15秒鐘,路由器的電源燈會變成紅色,此時可松開復位按鍵。
第四步:運行電腦端的cmd.exe,然后輸入ping 192.168.1.1,測試是否能ping通,如能ping 通繼續,否則返回檢查。
第五步:打開電腦瀏覽器輸入192.168.1.1,會出現一個頁面,即出現CFE更新的頁面,這里要選擇要刷的OpenWrt固件,請按圖示文字進行操作更新固件,此時固件選擇“openwrt-ar71xxgeneric-tl-wr703n-v1-squashfs-sysupgrade.bin”,點擊確定開始刷機,然后等待一會兒,大概兩分鐘后路由器會自動重啟,至此說明路由器刷機完成。
第六步:這里還需要進行的步驟是開啟WiFi,設置pppoe聯網,安裝LUCI,本處暫時不詳細討論,因為在自己編譯固件時候可以將LUCI軟件編譯在一起。
也可以非常方便的在openwrt官網可得到LUCI軟件安裝包,使用putty(該軟件是嵌入式系統調試常用的軟件)登陸路由后,通過如 下命令安裝LUCI與中文包:

即可完成LUCI的安裝。
最后支持中文界面運行在PC上ping 192.168.1.1,如能ping 通路由器,則表示本次刷機成功,這時候可以訪問http://192.168.1.1將會看到期待的openwrt WEB中文界面,即WEB服務器軟件LuC中文版。如不能ping通則關閉電源,回到步驟前面幾步重做。
5.1 路由器掛載攝像頭
目前常用的USB攝像頭分兩種:有驅的和免驅的。在本系統中使用的是有驅的,主控芯片為中星微301,此攝像頭掛載成功率100%,并且性價比高,特別適合本系統的設計。以下是OpenWrt 掛載攝像頭的程序參考語句。

5.2 安裝監控端作用的軟件MJPEG
MJPEG作為一個小型的視頻服務器軟件,對系統消耗非常小,也很適合本系統設計。(另外一種預選方案是考慮安裝Palantir模塊)
(1)安裝MJPEG
使用如下命令安裝:
Opkg install mjpg-strcamer
(2)啟動MJPEG
/etc/init.d/mjpg-streamer start
(3)查看圖像
由于火狐瀏覽器支持動態刷新,因此需要下載安裝火狐瀏覽器。在地址欄輸入:http://192.168.1.1:8080/?action-stream 可查看到攝像頭的動態視頻。
通過上位機操作,選擇PC端的上位機軟件,利用上位機的Socket把特定的數據包發送到路由端。直接控制單片機電機運動,并能實時接收到機器人上的攝像頭視頻。關于嵌入式系統通過上位機與PC通信的研究,已經有許多成熟的方案,本處不在展開討論。
本課題創新點在于采用常見的無線路由器作為硬件平臺,通過在其上移植刷寫開放及擴展性極佳的OpenWrt(linux)系統,作為整個系統的軟硬件基礎;WIFI作為通訊手段;可在通過網絡遠程監控及控制;預留接口擴展智能家居控制系統。經濟價值和社會價值方面,本課題的提供了一套新穎的、高性價比的智能平臺,適用于玩具娛樂、遠程監控、簡單WEB網絡服務器、智能家居控制等應用,是一套高適應性、強擴展性的開放性嵌入式智能遠程監控平臺。
李玉斌(1982—),男,湖南永州人,本科,碩士在讀,講師,研究方向:嵌入式系統、集成電路應用。