基于ARM-LINUX平臺(tái)的物聯(lián)網(wǎng)服務(wù)器設(shè)計(jì)
#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配置文件部分配置說明:
表1 Boa配置文件配置參數(shù)說明
3.3 通用網(wǎng)關(guān)接口CGI
CGI是通用網(wǎng)關(guān)接口的簡稱。該接口定義了WEB服務(wù)器和其他可執(zhí)行程序之間的通信接口標(biāo)準(zhǔn)。一般這些可執(zhí)行程序我們也簡稱為CGI程序。在客戶端瀏覽器上面,可以請(qǐng)求執(zhí)行CGI程序,并會(huì)附帶傳送的參數(shù)。當(dāng)服務(wù)器收到此請(qǐng)求后,執(zhí)行對(duì)應(yīng)的CGI程序,與此同時(shí),會(huì)把來自客戶端的傳輸傳遞給CGI程序。在服務(wù)器和CGI程序之間,他們足利用標(biāo)準(zhǔn)輸入輸出來實(shí)現(xiàn)參數(shù)傳遞和信息返回的。
在本物聯(lián)網(wǎng)服務(wù)器的設(shè)計(jì)當(dāng)中,CGI程序不僅僅與WEB服務(wù)器通信,它還需要和守護(hù)程序進(jìn)行通信。由于守護(hù)程序是負(fù)責(zé)連接外圍設(shè)備,并與之通信的,所以可以通過CGI程序來對(duì)外圍設(shè)備進(jìn)行通信。通過這樣的通信過程實(shí)現(xiàn)了客戶端與物聯(lián)網(wǎng)設(shè)備終端的交互。其通信過程如下:
(1)客戶端利用TCP/IP協(xié)議和WEB服務(wù)器建立連接;
(2)客戶端利用HTTP協(xié)議發(fā)出URL指向一個(gè)CGI程序的請(qǐng)求;
(3)服務(wù)器收到請(qǐng)求后,執(zhí)行對(duì)應(yīng)的CGI程序;
(4)CGI應(yīng)用程序執(zhí)行,可以通過讀取標(biāo)準(zhǔn)輸入或環(huán)境變量(QUERY STRING)獲取來自客戶端的參數(shù);
(5)應(yīng)用程序利用進(jìn)行標(biāo)準(zhǔn)輸出方式來輸出返回結(jié)果給WEB服務(wù)器。
(6)WEB服務(wù)器將結(jié)果傳送給客戶端,完成整個(gè)請(qǐng)求返回過程。
3.4 網(wǎng)絡(luò)應(yīng)用程序的訪問與控制
網(wǎng)站的訪問和控制使用JavaScript語言,調(diào)用jQuery類庫和利用AJAX技術(shù),實(shí)現(xiàn)動(dòng)態(tài)顯示頁面的效果。而頁面的參數(shù)傳遞和CGI反饋都是使用JSON數(shù)據(jù)格式。
JSON即JavaScript Object Notation,它是一種輕量級(jí)的數(shù)據(jù)交換格式。本設(shè)計(jì)使用JSON數(shù)據(jù)格式中的”名稱/值”對(duì)的集合為基本數(shù)據(jù)結(jié)構(gòu),它作為頁面與CGI程序之間的參數(shù)傳遞和運(yùn)算結(jié)果返回的數(shù)據(jù)格式。基本格式如下:
{device:“value”,model:“value”,type:“value”,data:“Value”}
利用jQuery類庫,每隔1 s中通過請(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ì)可以為用戶提供通過WEB頁面對(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)論