潘權(quán)威,黎曉云,宋新宇
(電子科技大學(xué) 物理電子學(xué)院,成都 610054)
?
基于OpenWrt的物聯(lián)網(wǎng)服務(wù)器設(shè)計
潘權(quán)威,黎曉云,宋新宇
(電子科技大學(xué)物理電子學(xué)院,成都610054)
摘要物聯(lián)網(wǎng)技術(shù)近年發(fā)展飛速,各類家電無線互聯(lián),極大地方便了人們的生活。該文提出了一種廚房電器服務(wù)器的設(shè)計方案。該智能廚房電器服務(wù)器是基于OpenWrt開源嵌入式系統(tǒng)設(shè)計的,通過對TP-Link Wr703n路由器的改造,引出相關(guān)控制端口,將編譯適配后的OpenWrt系統(tǒng)移植到路由器上。智能手機通過WiFi網(wǎng)絡(luò)與路由器連接,形成智能服務(wù)器網(wǎng)絡(luò)。利用該智能廚房電器服務(wù)器可與微波爐建立連接,并通過實際測試驗證了相關(guān)功能的可靠性與實用性。
關(guān)鍵詞OpenWrt; 物聯(lián)網(wǎng); WiFi; 廚房電器
物聯(lián)網(wǎng)技術(shù)在近些年飛速發(fā)展,它的出現(xiàn)給社會生活的發(fā)展指出了一個全新的方向——各類家電之間無線連接,智能控制。該技術(shù)讓電器更具智能化,使人與電器之間的交流溝通成為可能。
在人們的經(jīng)濟生活日漸豐富的今天,基于物聯(lián)網(wǎng)的智能廚具鮮有所見。本文提出了一種基于OpenWrt操作系統(tǒng)的智能服務(wù)器,它可用于廚房電器的無線互聯(lián)和智能化改造。通過利用本智能廚電服務(wù)器,實現(xiàn)了對微波爐的智能化改造,并將智能手機通過WiFi網(wǎng)絡(luò)連接到服務(wù)器成功對微波爐進行了遠程控制。
本設(shè)計可以作為智能廚電的基礎(chǔ)物聯(lián)網(wǎng)平臺,可以對該平臺進行合理的擴展,使智能家居成為可能。
1OpenWrt SDK介紹
OpenWrt是一個用于嵌入式設(shè)備的GNU/Linux發(fā)行版,具有強大的擴展性。
OpenWrt具備高度模塊化、高度自動化,擁有強大的網(wǎng)絡(luò)組件和擴展性,常常被用于工控設(shè)備、電話、小型機器人、智能家居、路由器以及VOIP設(shè)備中。它對無線路由器的支持友好,同時,它還提供了100多個已編譯好的軟件,而且數(shù)量還在不斷增加。
通過在Linux系統(tǒng)下對OpenWrt源碼的編譯可以產(chǎn)生OpenWrt SDK。
OpenWrt SDK是一個可再定位的、預(yù)編譯的OpenWrt工具鏈,是適用于無須從頭開始編譯整個系統(tǒng)的前提下,針對一個特定平臺交叉編譯單個用戶空間包。OpenWrt SDK保證了原系統(tǒng)的二進制特性和兼容性,針對特定的發(fā)行版編譯自定義軟件,更新版本指定的包含文件。使用自定義補丁,或者不同特性來重新編譯已經(jīng)存在的OpenWrt SDK簡化了軟件開發(fā)的工序,為進一步開發(fā)相關(guān)軟件和功能提供了可能。
2OpenWrt的編譯
OpenWrt是基于Linux系統(tǒng),為編譯OpenWrt需要搭建Linux平臺。利用VMware Workstation裝載Ubuntu 14.04虛擬機搭建Linux編譯環(huán)境。
Ubuntu 14.04系統(tǒng)安裝完成,連接上網(wǎng)絡(luò),以非root用戶登錄,打開“應(yīng)用程序—附件—終端”,在終端下利用sudo apt-get install命令語句,加載如下的軟件包:gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfounzip sharutils subversion libncurses5-dev zlib1g-dev,利用sudo apt-get update命令語句更新以上軟件包。獲取OpenWrt源代碼和安裝包。在終端中輸入命令語句svn checkout svn://svn.openwrt.org/openwrt/trunk,將會在OpenWrt代碼托管網(wǎng)站上下載OpenWrt最新工程文件。
feeds是OpenWrt環(huán)境所需要的軟件包套件。通過feeds.conf.default文件檢查需要包含在環(huán)境中的軟件包。下載所需要的軟件包,使用[openwrt@localhost trunk]$ ./scripts/feeds update -a./scripts/feeds install -a更新feeds的配置文件,添加新的軟件包用于生成系統(tǒng)。使用交叉編譯,生成的SDK以及image等文件的類型取決于開發(fā)環(huán)境、應(yīng)用硬件及源碼版本。這需要對開發(fā)環(huán)境進行了解,才能進行正確的配置。使用make defconfig make prereq make menuconfig進入配置界面(menuconfig),如圖1所示。
圖1 OpenWrt編譯配置界面
在Target System和Target Profile下選擇合適的目標(biāo)即可。本文設(shè)計選擇TP-LINK TL-WR703N作為目標(biāo)。選擇Build the OpenWrt Image Builder和Build the OpenWrt SDK即可在編譯中產(chǎn)生相關(guān)二進制和SDK文件。
保存好選項,退出配置界面返回終端,利用[openwrt@localhost trunk]$ make package/cups/compileV=99語句進行OpenWrt的編譯。編譯過程中會自動從OpenWrt源碼托管網(wǎng)站下載相關(guān)的系統(tǒng)文件。等待編譯結(jié)束后,產(chǎn)生相應(yīng)的Image和SDK文件。在SDK中添加自己的packages進行智能服務(wù)器系統(tǒng)開發(fā)。
對于新建的package,可以作為一個可選軟件包,利用SDK環(huán)境來單獨編譯,編譯生成一個ipk的文件包,最后在OpenWrt系統(tǒng)下安裝即可。
在本文設(shè)計中利用了socket接口通信協(xié)議和ser2net服務(wù)。實現(xiàn)方法如下:
com_init(); //端口初始化
//設(shè)置一個socket地址結(jié)構(gòu)
struct sockaddr_in server_addr;
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET; //服務(wù)器IP
server_addr.sin_addr.s_addr
= htons(INADDR_ANY);
server_addr.sin_port
= htons(SERVER_PORT);//控制端口
//數(shù)據(jù)發(fā)送
void send_cmd(unsigned char cmd){
int len;
intn= 0;
char write_buf[50];
n= 0;
len = 3;
bzero(write_buf,sizeof(write_buf));write_buf[0]=0xfe;
write_buf[1]=0x00;
write_buf[2]=cmd;
n= write(fd,write_buf,len);
}
本文采用的服務(wù)器IP為192.168.1.1,端口為2001。
編寫的makefile文件如下:
#buildopenwrt-serverexecutablewhenuserexecutes"make"
openwrt-server:openwrt-server.o
$(CC) $(LDFLAGS)openwrt-server.o-oopenwrt-server
openwrt-server.o:openwrt-server.c
$(CC) $(CFLAGS) -copenwrt-server.c
#removeobjectfilesandexecutablewhenuserexecutes"makeclean"
clean:
rm*.oopenwrt-server
執(zhí)行make生成openwrt-server.ipk文件,將文件上傳到路由器。利用opkginstall安裝ser2net.ipk和openwrt-server.ipk。
至此,OpenWrt智能服務(wù)器系統(tǒng)編譯完成。
3TP-Link Wr703n改造
本設(shè)計選擇TP-LinkWr70n作為中繼服務(wù)器,負責(zé)智能手機與廚房電器之間的通信。TP-LinkWr703n是一款基于ARM構(gòu)架的無線路由器。本文利用TP-LinkWr703n的串口與廚房電器進行通信,該款路由器默認(rèn)未將串口引出。對TP-LinkWr703n的改造,讓OpenWrt系統(tǒng)成功與其適配也是該設(shè)計的重點。Wr703n路由器的版圖如圖2所示。
圖2 Wr703n電路版圖
圖中A部分是Wr703n的控制AR9331的位置,B部分是Flash所在位置。通過對Wr703n的電路改造引出TTL串口。
取下原有的4MBFlash芯片,將芯片更換為HynixHY27UF084G2B64MBFlash芯片。通過原理圖找到Wr703n處理器的串口引腳,利用跳線引出串口到USB接口上,路由器改造完成。
4智能服務(wù)器網(wǎng)絡(luò)組建
在組建服務(wù)器之前先對Wr703n路由器進行系統(tǒng)移植,即將Ubuntu虛擬機中編譯完成的OpenWrt二進制服務(wù)器系統(tǒng)文件燒錄到路由器的Flash中。
Wr703n路由器插上網(wǎng)線,連接好TTL設(shè)備和路由器的串口。打開計算機上的Putty軟件,連接類型選為串口,輸入端口號(TTL設(shè)備的虛擬COM口,可在設(shè)備管理器中查看),通信波特率設(shè)為115 200。配置如圖3所示。
圖3 Putty軟件配置界面
建立連接后,連接上路由器電源線,進入控制臺界面,如圖4所示。
圖4 Putty軟件控制臺界面
輸入:setenvserverip192.168.1.2
setenvipaddr192.168.1.1
tftp0x80000000openwrt-sever.bin
進行系統(tǒng)燒錄。燒錄完成后,重啟路由器,計算機連接到Wr703n的WiFi網(wǎng)絡(luò),瀏覽器中輸入192.168.1.1測試是否能進入服務(wù)器管理界面。
整個系統(tǒng)的組成框圖如圖5所示。
圖5 智能服務(wù)器組成
通過Wr703n引出的串口與微波爐連接,組成微波爐控制系統(tǒng)。同時在智能手機上安裝適配的“S.M.Oven.apk”軟件,通過相關(guān)的配置連接到路由器即可。
利用整個智能廚電服務(wù)器系統(tǒng),通過實際的測試,得到了幾種食品的健康合理烹調(diào)方案,并建立了對應(yīng)的食物烹飪數(shù)據(jù)庫。
將這些數(shù)據(jù)轉(zhuǎn)化為實際的加熱信息后,編寫了相應(yīng)的加熱方案程序。手機連接到Wr703n路由器WiFi,打開軟件,在IP欄輸入通信地址:192.168.1.1:2001。成功連接后會提示:Client:已經(jīng)連接到server!圖6為智能手機連接界面。
圖6 手機連接到服務(wù)器
經(jīng)過實際測試,手機成功與微波爐建立了連接,實現(xiàn)了手機對微波爐的遠程智能控制,整個服務(wù)器系統(tǒng)達到設(shè)計目標(biāo)。
5結(jié)束語
本文提出了一套智能廚電系統(tǒng)物聯(lián)網(wǎng)服務(wù)器的建立方案,并實際測試驗證了該方案的實用性和可靠性。該系統(tǒng)具有良好的穩(wěn)定性,可移植程度高,可以作為智能廚房電器相關(guān)領(lǐng)域的參考。
參 考 文 獻
[1]苗敬利,李騰. 基于OpenWrt的智能家居服務(wù)器的設(shè)計[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014 (11): 197-198.
[2] 李義,晉磊,程正瑞,等. 基于OpenWrt和TCP/IP協(xié)議的Android遠程無線智能機械彈琴手系統(tǒng)[J]. 數(shù)字化用戶,2014,20(11):11-14.
[3]滕泓虬. 基于OpenWrt的移動機器人系統(tǒng)設(shè)計[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2012,12(1): 50-52.
[4]KELLYSDT,SNRYADEVARANK,MUKHOPADHYAYSC.TowardstheimplementationofIoTforenvironmentalconditionmonitoringinhomes[J].IEEEJournalofSensors,2013,13(10): 3846-3853.
[5]FAINELLIF.TheOpenWrtembeddeddevelopmentframework[C]//ProceedingsoftheFreeandOpenSourceSoftwareDevelopersEuropeanMeeting.[S.l.]:[s.n.],2008.
[6]TMOMAS.OpenWrtWiki[EB/OL].[2015-08-01].http://wiki.openwrt.org.
Design of IoT Server Based on OpenWrt System
PAN Quanwei,LI Xiaoyun,SONG Xinyu
(School of Physical Electronics,University of Electronic Science and Technology of China,Chengdu 610054,China)
AbstractWith the rapid development of Internet of Things(IOT) technology in recent years,all kinds of house appliances have been connected by wireless network,which facilitates human’s life. This paper proposes a design of kitchen appliance server to compensate for the lack in this field. The smart server for kitchen appliances is based on OpenWrt (an open source embedded system). Via the transformation of TP-Link Wr703n router and extracting associated control port,the compiled OpenWrt system can be migrated to the router. Smart phones can connect with the router via WiFi networks,and they all constitute the smart server network. The smart kitchen appliances server and microwave can establish a connection,and the reliability and practicality of the smart server have been verified.
Key wordsOpenWrt; Internet of Things; WiFi; kitchen appliance
收稿日期:2015-09-17
作者簡介:潘權(quán)威(1994-),男,本科,電子信息科學(xué)與技術(shù)專業(yè)。
中圖分類號TN915.5
文獻標(biāo)志碼A
doi:10.3969/j.issn.1672-4550.2016.02.016