物聯(lián)網(wǎng)設計實例與設計過程_第1頁
物聯(lián)網(wǎng)設計實例與設計過程_第2頁
物聯(lián)網(wǎng)設計實例與設計過程_第3頁
物聯(lián)網(wǎng)設計實例與設計過程_第4頁
物聯(lián)網(wǎng)設計實例與設計過程_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、物聯(lián)網(wǎng)設計實例與設計過程作者:劉坤本文以項目實例為主導,來闡述物聯(lián)網(wǎng)的設計過程。此工程實例詳細說明如下:城市需要對多個端點(里面加熱,溫濕度數(shù)據(jù))實例證明,所有信息需傳送到一個Web Service 上顯示,而這就是一個物聯(lián)網(wǎng)的設計過程。為了實現(xiàn)這個Project本系統(tǒng)設計意志就是采用傳感器和嵌入式系統(tǒng)組成主機,將采集到的數(shù)據(jù)信息通過TCP/IP協(xié)議由GPRS模塊發(fā)送到GPRS公共網(wǎng)絡。采用socket編程技術建立TCP/IP服務器,接收嵌入式主機發(fā)送的數(shù)據(jù)信息,將數(shù)據(jù)上傳到Internet。很好地實現(xiàn)了在互聯(lián)網(wǎng)基礎上通過無線網(wǎng)的聯(lián)立,構建新型物聯(lián)網(wǎng)。一、系統(tǒng)概述系統(tǒng)由以基于嵌入式為主機的數(shù)據(jù)

2、采集發(fā)送終端、移動GPRS網(wǎng)絡、公網(wǎng)固定IP(服務器)、客戶端4部分組成。系統(tǒng)的總體結構如圖1所示。圖1、系統(tǒng)總體結構二、基于嵌入式為主機的數(shù)據(jù)采集發(fā)送終端1、數(shù)據(jù)采集發(fā)送終端的硬件設計系統(tǒng)硬件結構框圖如圖2所示。數(shù)據(jù)采集發(fā)送終端的控制器采用LPC2138,該芯片是一個支持實仿真和嵌入式跟蹤的32/16位ARM7TD-MI-STM CPU的微控制器,并帶有512KB高速Flash存儲器和具有獨立的電源和時鐘源的實時時鐘,片上集成了豐富的功能部件,如SPI (Serial Peripheral Interface)串口,UART0、UART1全串口,A/D轉換等。很好的滿足了硬件系統(tǒng)的要求。圖2

3、、硬件結構框圖傳感器部分使用DHT90溫濕度數(shù)字傳感器采集溫濕度數(shù)據(jù),使用RS485總線連接異步串行通信UART0端口,并將控制器配置成RS485主機。通過RS485總線與LPC2138進行通信,因為使用RS485總線,可以同時接受多路溫濕度傳感器的數(shù)據(jù)信息。GPRS無線模塊采用BenQ公司的M23G,M23G支持GPRS功能,并且內(nèi)嵌TC/IP,可用于實時性較高的、數(shù)據(jù)傳輸量相對較大、傳輸速率相對較快的數(shù)據(jù)通信領域。通過軟件控制,可實現(xiàn)與Internet固定IP地址雙向數(shù)據(jù)傳輸。2、數(shù)據(jù)采集發(fā)送終端的軟件設計數(shù)據(jù)采集發(fā)送終端的應用軟件程序設計主要包括以下兩個部分:GPRS接受命令和數(shù)據(jù)采集與

4、發(fā)送兩個部分。應用程序軟件是基于嵌入式實時操作系統(tǒng)C/OS-。軟件流程圖如圖3所示。應用程序定義了四個主要的時間標志位:GPRS在線標志位、數(shù)據(jù)采集標志位、采集完畢標志位和接受命令標志位。這四個標志位協(xié)調(diào)系統(tǒng)的數(shù)據(jù)采集、數(shù)據(jù)發(fā)送、接收命令等任務。當初始化完成后,獲得GPRS在線標志位,連接服務器成功后即可進行命令接受以及命令解析。系統(tǒng)主要設置了三條命令,分別是采集發(fā)送數(shù)據(jù)命令,設置采樣頻率命令和采集數(shù)據(jù)量大小命令。每個命令的獲得都會置位相應的標志位,通過對標志位是否置位的判斷來決定程序下一步的執(zhí)行。在系統(tǒng)軟件中可以設置采集發(fā)送的時間間隔(默認為15分鐘),即每隔15分鐘,采集發(fā)送終端通過通用T

5、CP服務器軟件將采集的數(shù)據(jù)包發(fā)送給客戶端。同時可以改變采集數(shù)據(jù)包的大?。J為1024字節(jié)),即改變數(shù)據(jù)采集動態(tài)緩沖區(qū)的大小,數(shù)據(jù)緩沖區(qū)滿即可發(fā)送數(shù)據(jù)。圖3、系統(tǒng)軟件流程數(shù)據(jù)采集完畢后置位采集完畢標志位,可進行數(shù)據(jù)發(fā)送。每次寫入GPRS的最大的數(shù)據(jù)包為1024字節(jié),超過1024字節(jié)數(shù)據(jù)做下一包發(fā)送,最后發(fā)送小于1024字節(jié)的數(shù)據(jù)包。三、移動GPRS網(wǎng)絡GPRS組網(wǎng)方式采用的是企業(yè)公網(wǎng)組網(wǎng)方式。中心站配置固定的IP地址,而遠程終端實行動態(tài)的IP地址分配。遠程終端開機后,主動連接服務器,進行數(shù)據(jù)采集,終端模塊自動獲得IP地址,主動上報到服務器,并以xml的格式將采集到的數(shù)據(jù)進行保存,客戶端通過訪問

6、WebLogic服務器,查看接受到的數(shù)據(jù)。四、公網(wǎng)服務軟件的設計服務器軟件的實現(xiàn)是采用Socket(套接口)編程技術,考慮到本系統(tǒng)服務器程序必須能在任何時間處理多個客戶連接,因此該程序是一個多線程TCP服務器。一個TCP連接的建立開始于TCP客戶機創(chuàng)建一個套接字,然后調(diào)用connect函數(shù)來啟動三次握手操作,與遠程服務器建立連接。在服務器方面,通用是首先創(chuàng)建一個套接字,然后調(diào)用bind函數(shù)綁定自己的公認端口號,接著調(diào)用listen函數(shù)來準備接受客戶端請求,最后調(diào)用accept函數(shù)來完成信息傳遞。圖4、 公共服務器設計流程在本系統(tǒng)的設計中,共建立了兩個任務。一個任務用于完成數(shù)據(jù)的監(jiān)聽接受并處理。

7、當監(jiān)控服務器監(jiān)聽端口時,發(fā)現(xiàn)有采集終端對服務器發(fā)出的連接請求時,就接受遠程采集終端的連接請求,并以XML格式保存接收到的數(shù)據(jù)。由于每個GPRS模塊都有一個唯一的ID號,因此根據(jù)這個ID號來識別該系統(tǒng)檢測的具體位置,并在XML文件中以進行標記,同時包含當前時間、溫度、濕度三個屬性值,如果接收到一個新的GPRS的ID號,將啟用一個新的terminal標記。另一個任務用于完成對鍵盤的監(jiān)控,并把用戶輸入的合法相關命令編輯成命令字符串發(fā)送數(shù)據(jù)采集終端。對于不合法的命令拋棄并輸出相關提示信息。結合Socket編程方法和具體的應用,服務器軟件流程如圖4。五、富客戶端的實現(xiàn)客戶端方面采用基于RIA模型的FLE

8、X技術來開發(fā)Web頁面??蛻舳送ㄟ^Web瀏覽器以HTTP協(xié)議調(diào)用Web頁面。界面能夠顯示系統(tǒng)狀態(tài)、下達配置參數(shù)、顯示現(xiàn)場采集的數(shù)據(jù)。WEB頁面與Web Service組件通信,把用戶的參數(shù)傳遞給Web Service。使用Flex技術可以構建體驗豐富的客戶端程序,同時Flex還具有Push技術,可以把服務端的信息適時的顯示到客戶端上 ,這也是把Flex技術使用到數(shù)據(jù)采集領域的重要原因,也是本系統(tǒng)選擇使用Flex技術的主要原因。系統(tǒng)的Web Service設計采用面向服務的SOA設計,這樣可以提高系統(tǒng)的反應速度,便于以后對系統(tǒng)的維護。對于軟件設計的總體符合門面模式的軟件架構,上層直接調(diào)用下層的接

9、口,而不是具體的實現(xiàn),這樣有利于軟件的擴展和維護。上述調(diào)用過程的核心代碼如下:/使用Flex的定時器,實現(xiàn)對數(shù)據(jù)的刷新import flash.utils.Timerprivate function time():voidvar timer:Timer = new Timer(1000); timer.start();timer.addEventListener(TimerEvent.TIMER, onTimer); /設置時間監(jiān)視器來監(jiān)聽事件 Bindable public var i:int=new int(0); private function onTimer (event:Timer

10、Event) :void DeviceService.GetVersion.send(); /使用Flex調(diào)用服務 size /服務器端C#平臺調(diào)用聲明public static System.Char Buffer;public static System.UInt16 Version;DllImport(zlg_dnscan32.dllPublic static extern bool DNS_Version (ref System.Char Buffer,ref System.UInt16 Version, System.UInt32 Size);/DLL方法的調(diào)用Bool st=DNS_Version(ref Buffer,ref

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論