基于A(yíng)RM―LINUX平臺(tái)的物聯(lián)網(wǎng)服務(wù)器設(shè)計(jì)
在WWW.boa.org上下載boa的源代碼。通過(guò)以下步驟完成其交叉編譯:
#tar—bxzf boa-0.94.1 3.tar. gz
#cd./boa-0.94.13/src
#./configure
#vi./Makefile
修改CC=gcc為CC=arm-unknownlinux-gcc,CPP=gcc -E為CPP=arm-unknownlinux-cpp -E,保存退出。執(zhí)行如下命令:
#make
#arm-linux-strip./boa
得到能在arm平臺(tái)下的可執(zhí)行文件boa,大小只有60KB
將可執(zhí)行文件Boa下載到嵌入式設(shè)備后,還需對(duì)其進(jìn)行一些配置。首先需要在/etc/boa目錄下建立一個(gè)boa配置文件boa.conf。表1為Boa配置文件部分配置說(shuō)明:
3.3 通用網(wǎng)關(guān)接口CGI
CGI是通用網(wǎng)關(guān)接口的簡(jiǎn)稱(chēng)。該接口定義了WEB服務(wù)器和其他可執(zhí)行程序之間的通信接口標(biāo)準(zhǔn)。一般這些可執(zhí)行程序我們也簡(jiǎn)稱(chēng)為CGI程序。在客戶(hù)端瀏覽器上面,可以請(qǐng)求執(zhí)行CGI程序,并會(huì)附帶傳送的參數(shù)。當(dāng)服務(wù)器收到此請(qǐng)求后,執(zhí)行對(duì)應(yīng)的CGI程序,與此同時(shí),會(huì)把來(lái)自客戶(hù)端的傳輸傳遞給CGI程序。在服務(wù)器和CGI程序之間,他們足利用標(biāo)準(zhǔn)輸入輸出來(lái)實(shí)現(xiàn)參數(shù)傳遞和信息返回的。
在本物聯(lián)網(wǎng)服務(wù)器的設(shè)計(jì)當(dāng)中,CGI程序不僅僅與WEB服務(wù)器通信,它還需要和守護(hù)程序進(jìn)行通信。由于守護(hù)程序是負(fù)責(zé)連接外圍設(shè)備,并與之通信的,所以可以通過(guò)CGI程序來(lái)對(duì)外圍設(shè)備進(jìn)行通信。通過(guò)這樣的通信過(guò)程實(shí)現(xiàn)了客戶(hù)端與物聯(lián)網(wǎng)設(shè)備終端的交互。其通信過(guò)程如下:
(1)客戶(hù)端利用TCP/IP協(xié)議和WEB服務(wù)器建立連接;
(2)客戶(hù)端利用HTTP協(xié)議發(fā)出URL指向一個(gè)CGI程序的請(qǐng)求;
(3)服務(wù)器收到請(qǐng)求后,執(zhí)行對(duì)應(yīng)的CGI程序;
(4)CGI應(yīng)用程序執(zhí)行,可以通過(guò)讀取標(biāo)準(zhǔn)輸入或環(huán)境變量(QUERY STRING)獲取來(lái)自客戶(hù)端的參數(shù);
(5)應(yīng)用程序利用進(jìn)行標(biāo)準(zhǔn)輸出方式來(lái)輸出返回結(jié)果給WEB服務(wù)器。
(6)WEB服務(wù)器將結(jié)果傳送給客戶(hù)端,完成整個(gè)請(qǐng)求返回過(guò)程。
3.4 網(wǎng)絡(luò)應(yīng)用程序的訪(fǎng)問(wèn)與控制
網(wǎng)站的訪(fǎng)問(wèn)和控制使用JavaScript語(yǔ)言,調(diào)用jQuery類(lèi)庫(kù)和利用AJAX技術(shù),實(shí)現(xiàn)動(dòng)態(tài)顯示頁(yè)面的效果。而頁(yè)面的參數(shù)傳遞和CGI反饋都是使用JSON數(shù)據(jù)格式。
JSON即JavaScript Object Notation,它是一種輕量級(jí)的數(shù)據(jù)交換格式。本設(shè)計(jì)使用JSON數(shù)據(jù)格式中的”名稱(chēng)/值”對(duì)的集合為基本數(shù)據(jù)結(jié)構(gòu),它作為頁(yè)面與CGI程序之間的參數(shù)傳遞和運(yùn)算結(jié)果返回的數(shù)據(jù)格式。基本格式如下:
{device:value,model:value,type:value,data:“Value”}
利用jQuery類(lèi)庫(kù),每隔1 s中通過(guò)請(qǐng)求./cgi-bin/web_cgi。得到請(qǐng)求結(jié)果作為當(dāng)前狀態(tài)。
4 總結(jié)
本文實(shí)現(xiàn)了一個(gè)基于ARM—Linux平臺(tái)的通用物聯(lián)網(wǎng)服務(wù)器的設(shè)計(jì),本設(shè)計(jì)可以為用戶(hù)提供通過(guò)WEB頁(yè)面對(duì)物聯(lián)網(wǎng)中數(shù)據(jù)采集的實(shí)時(shí)監(jiān)測(cè)和控制功能,具有較好的實(shí)用意義。下一步將繼續(xù)完善系統(tǒng)的功能,如:增加對(duì)更多傳感器的支持,系統(tǒng)如何更方便地應(yīng)用于不同的領(lǐng)域等,系統(tǒng)的安全性也有待完善。
評(píng)論