基于ARM―LINUX平臺的物聯網服務器設計
在WWW.boa.org上下載boa的源代碼。通過以下步驟完成其交叉編譯:
#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下載到嵌入式設備后,還需對其進行一些配置。首先需要在/etc/boa目錄下建立一個boa配置文件boa.conf。表1為Boa配置文件部分配置說明:

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