基于A(yíng)RM-LINUX平臺的物聯(lián)網(wǎng)服務(wù)器設計
#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,保存退出。執行如下命令:
#make
#arm-linux-strip./boa
得到能在arm平臺下的可執行文件boa,大小只有60KB
將可執行文件Boa下載到嵌入式設備后,還需對其進(jìn)行一些配置。首先需要在/etc/boa目錄下建立一個(gè)boa配置文件boa.conf。表1為Boa配置文件部分配置說(shuō)明:

表1 Boa配置文件配置參數說(shuō)明
3.3 通用網(wǎng)關(guān)接口CGI
CGI是通用網(wǎng)關(guān)接口的簡(jiǎn)稱(chēng)。該接口定義了WEB服務(wù)器和其他可執行程序之間的通信接口標準。一般這些可執行程序我們也簡(jiǎn)稱(chēng)為CGI程序。在客戶(hù)端瀏覽器上面,可以請求執行CGI程序,并會(huì )附帶傳送的參數。當服務(wù)器收到此請求后,執行對應的CGI程序,與此同時(shí),會(huì )把來(lái)自客戶(hù)端的傳輸傳遞給CGI程序。在服務(wù)器和CGI程序之間,他們足利用標準輸入輸出來(lái)實(shí)現參數傳遞和信息返回的。
在本物聯(lián)網(wǎng)服務(wù)器的設計當中,CGI程序不僅僅與WEB服務(wù)器通信,它還需要和守護程序進(jìn)行通信。由于守護程序是負責連接外圍設備,并與之通信的,所以可以通過(guò)CGI程序來(lái)對外圍設備進(jìn)行通信。通過(guò)這樣的通信過(guò)程實(shí)現了客戶(hù)端與物聯(lián)網(wǎng)設備終端的交互。其通信過(guò)程如下:
(1)客戶(hù)端利用TCP/IP協(xié)議和WEB服務(wù)器建立連接;
(2)客戶(hù)端利用HTTP協(xié)議發(fā)出URL指向一個(gè)CGI程序的請求;
(3)服務(wù)器收到請求后,執行對應的CGI程序;
(4)CGI應用程序執行,可以通過(guò)讀取標準輸入或環(huán)境變量(QUERY STRING)獲取來(lái)自客戶(hù)端的參數;
(5)應用程序利用進(jìn)行標準輸出方式來(lái)輸出返回結果給WEB服務(wù)器。
(6)WEB服務(wù)器將結果傳送給客戶(hù)端,完成整個(gè)請求返回過(guò)程。
3.4 網(wǎng)絡(luò )應用程序的訪(fǎng)問(wèn)與控制
網(wǎng)站的訪(fǎng)問(wèn)和控制使用JavaScript語(yǔ)言,調用jQuery類(lèi)庫和利用AJAX技術(shù),實(shí)現動(dòng)態(tài)顯示頁(yè)面的效果。而頁(yè)面的參數傳遞和CGI反饋都是使用JSON數據格式。
JSON即JavaScript Object Notation,它是一種輕量級的數據交換格式。本設計使用JSON數據格式中的”名稱(chēng)/值”對的集合為基本數據結構,它作為頁(yè)面與CGI程序之間的參數傳遞和運算結果返回的數據格式?;靖袷饺缦拢?p>{device:“value”,model:“value”,type:“value”,data:“Value”}
利用jQuery類(lèi)庫,每隔1 s中通過(guò)請求。/cgi-bin/web_cgi。得到請求結果作為當前狀態(tài)。
4 、總結
本文實(shí)現了一個(gè)基于A(yíng)RM-Linux平臺的通用物聯(lián)網(wǎng)服務(wù)器的設計,本設計可以為用戶(hù)提供通過(guò)WEB頁(yè)面對物聯(lián)網(wǎng)中數據采集的實(shí)時(shí)監測和控制功能,具有較好的實(shí)用意義。下一步將繼續完善系統的功能,如:增加對更多傳感器的支持,系統如何更方便地應用于不同的領(lǐng)域等,系統的安全性也有待完善。
評論