【基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計11000字(論文)】_第1頁
【基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計11000字(論文)】_第2頁
【基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計11000字(論文)】_第3頁
【基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計11000字(論文)】_第4頁
【基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計11000字(論文)】_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的系統(tǒng)設計摘要物聯(lián)網(wǎng)發(fā)展的云端應用的數(shù)量正在增加,物聯(lián)網(wǎng)的使用會增加接收到的信息量,如果需要分析大量信息,那么需要依賴于分布式云技術。因此,以IPv6網(wǎng)絡建設為基礎的物聯(lián)網(wǎng),云分析平臺在未來將會是發(fā)展的核心。針對物聯(lián)網(wǎng)節(jié)點數(shù)據(jù)的存儲、展示以及對數(shù)據(jù)進一步利用的需求,設計一個基于IPv6的支持多用戶、多物聯(lián)網(wǎng)協(xié)議的公共數(shù)據(jù)平臺。設計的初衷是為了方便IPv6物聯(lián)網(wǎng)用戶的數(shù)據(jù)存儲、分析和顯示,以幫助用戶進行大規(guī)模數(shù)據(jù)信息分析,設計的實施將為IPv6物聯(lián)網(wǎng)節(jié)點的多用戶管理、控制和監(jiān)測提供了一個良好的平臺。所設計的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺具有多用戶自主申請的物聯(lián)網(wǎng)節(jié)點密鑰機制的特點,并結合了基于HTTP協(xié)議的CURL、Restful、JSON的數(shù)據(jù)傳輸方案。目前IPv6網(wǎng)絡已經(jīng)在高校等領域普及,那么利用好IPv6的優(yōu)勢,將物聯(lián)網(wǎng)云平臺結合到IPv6網(wǎng)絡中,研發(fā)出基于IPv6的新一代物聯(lián)網(wǎng)數(shù)據(jù)采集平臺就顯得十分必要了。關鍵字:物聯(lián)網(wǎng);數(shù)據(jù)接入平臺;IPv6;CURL目錄TOC\o"1-3"\h\u782摘要 I21281目錄 III288511緒論 1134571.1課題研究的背景及意義 1260891.2國內(nèi)外研究現(xiàn)狀 189571.3研究的主要內(nèi)容 2247321.4可行性分析 3206361.5論文結構介紹 3122071.6本章小結 3184752技術介紹 4217092.1IPv6協(xié)議 418202.2MQTT協(xié)議 562092.3Contiki系統(tǒng) 667922.4Apache+PHP+MySQL 6104282.4.1Apache 6236722.4.2PHP 735692.4.3MySQL數(shù)據(jù)庫管理系統(tǒng) 772762.5本章小結 8116373系統(tǒng)設計 954693.1總體設計 9233693.2系統(tǒng)硬件設計 10257383.2.1傳感器節(jié)點 10317253.2.26LBR邊緣路由器 1240333.3系統(tǒng)軟件設計 12112603.3.1搭建AppServ開發(fā)環(huán)境 12243433.3.2設計MySQL數(shù)據(jù)庫 14167873.3.3Apache-Apollo-1.7.1搭建MQTT服務 19115543.3.4PHP客戶端phpMQTT-master 21240913.4云平臺設計 24107993.4.1云平臺的注冊 25151453.4.2云平臺的登錄 26128153.4.3平臺用戶分類 27295803.5本章小結 2744684系統(tǒng)總體測試 29209464.1MQTT連通性測試 29161064.2PHP操作MySQL數(shù)據(jù)庫 30142654.2.1準備工作 30278964.2.2連接MySQL服務器 3136924.2.3連接MySQL數(shù)據(jù)庫 32179004.3組網(wǎng)結構 33280374.4測試節(jié)點的連通性 33264614.4.1測試6LBR網(wǎng)關的連通性 33223034.4.2測試服務器的連通性 3488094.4.3測試節(jié)點的連通性 3565324.5測試數(shù)據(jù)的采集 37284744.6云平臺測試 37110624.7本章小結 3813654結論 3915467參考文獻 401緒論1.1課題研究的背景及意義針對海量的傳感器數(shù)據(jù)無法存儲和展示的需求,物聯(lián)網(wǎng)云平臺將具有不同屬性功能的物體結合起來接入到統(tǒng)一的平臺中,接著對不同的數(shù)據(jù)進行分析處理,讓每個物體之間都可以互相交換信息。與傳統(tǒng)的互聯(lián)網(wǎng)相比,萬物互聯(lián)互通的設備再也不會局限于電腦、手機、電視和平板電腦等終端,物聯(lián)網(wǎng)創(chuàng)造了一個新的充滿智慧的世界,人們可以和任何物體進行交流。我們現(xiàn)在身處于一個網(wǎng)絡縱橫的時代,互聯(lián)網(wǎng)的發(fā)展也是一日千里,IPv4讓人們享受到網(wǎng)絡帶來好處的同時,也面臨著一些十分嚴峻的問題,那便是IP地址資源的減少、安全和性能需要提高的問題,面對這些難題,緊密圍繞我國頒發(fā)的文件要求,研究IPv6協(xié)議,這對于我們來說更像是一種機遇。我國作為互聯(lián)網(wǎng)使用的大國,在當今世界,IPv4注定會被IPv6取代,而IPv6作為今后網(wǎng)絡發(fā)展的基石,更是發(fā)展中的重中之重,雖然從IPv4到IPv6的實現(xiàn)需要很長的時間,可是互聯(lián)網(wǎng)若是結合了IPv6協(xié)議,我們的生活習慣也會隨之變的更好。1.2國內(nèi)外研究現(xiàn)狀(1)國外研究現(xiàn)狀隨著物聯(lián)網(wǎng)和云平臺的興起,美國提議建立一家云計算公司,以此來促使國家生產(chǎn)鏈的發(fā)展;而就在這關鍵的一年里,韓國也頒發(fā)了相關文件,由政府領導率先引進了云平臺的計算服務。蘋果公司在2013年8月迅速推出了云計算服務——iCloud;而在當時IT的供應商CATechnologies也推出來了云存儲的技術,它可以將數(shù)據(jù)保存在云平臺中。而在不久,亞馬遜公司推出的“AWSLoT”平臺提供了可以從終端到云端處理數(shù)據(jù)的服務,他們不僅運用了MQTT的通信協(xié)議,還通過與硬件的結合創(chuàng)造了云端存儲這一強大的功能。微軟公司也不甘示弱,迅速推出了“AzureLoTPaaS”平臺,主要提供了數(shù)據(jù)處理,遠端監(jiān)測等功能。(2)國內(nèi)研究現(xiàn)狀我國在2009年就提出了“感知中國”戰(zhàn)略計劃,不論是國家的規(guī)劃,還是在“戰(zhàn)略強國”的方針上,我國各大高校企業(yè)都加大了對物聯(lián)網(wǎng)技術和云計算數(shù)據(jù)存儲處理的研究,而在2015年時,各大物聯(lián)網(wǎng)云平臺的企業(yè)迎來了他們的黃金時代,順利拿到融資,比如中國移動提出的oneNET物聯(lián)網(wǎng)云平臺,更是一種基于IPv4的做后臺管理的系統(tǒng),可以提供開發(fā)、數(shù)據(jù)存儲處理的功能。1.3研究的主要內(nèi)容設計的初衷是為了方便IPv6物聯(lián)網(wǎng)用戶的數(shù)據(jù)存儲、分析和顯示,以幫助用戶進行大規(guī)模數(shù)據(jù)信息的分析,因此,設計了一種基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺。設計時所用的開發(fā)環(huán)境有PHP、MySQL和Apache等。整個設計依托于IPv6網(wǎng)絡,以Apache服務器為基礎,利用MySQL建立數(shù)據(jù)庫存放數(shù)據(jù)信息,再用PHP和HTML語言進行系統(tǒng)平臺的設計,AJAX調(diào)取數(shù)據(jù)庫數(shù)據(jù),在網(wǎng)頁頁面上進行曲線的繪制。平臺所涉及的數(shù)據(jù)感知、傳輸、存儲和展示均以IPv6網(wǎng)絡為核心,通過MQTT協(xié)議將數(shù)據(jù)發(fā)送到客戶端,客戶端再以Restful的JSON格式將數(shù)據(jù)上傳至物聯(lián)網(wǎng)平臺。同時,Web服務已經(jīng)移植到了互聯(lián)網(wǎng)的服務器設備上,客戶端可以使用瀏覽器來控制和監(jiān)測遠程的服務器設備,設計的結構如圖1.1所示。圖1.1結構設計(1)IPv6物聯(lián)網(wǎng)節(jié)點數(shù)據(jù)的存儲和展示建立MySQL數(shù)據(jù)庫進行傳感數(shù)據(jù)的存儲,用PHP進行接口的設計開發(fā),前端框架使用AJAX和BootStrap。(2)IPv6物聯(lián)網(wǎng)數(shù)據(jù)平臺的傳輸機制提出基于HTTP協(xié)議的MQTT、Restful、JSON的數(shù)據(jù)傳輸方案,并通過密鑰進行驗證。(3)IPv6物聯(lián)網(wǎng)數(shù)據(jù)平臺的管理機制提出一種多用戶并由用戶自主申請的物聯(lián)網(wǎng)節(jié)點密鑰機制,進行傳感節(jié)點的認證。1.4可行性分析(1)技術可行性與當前主流的物聯(lián)網(wǎng)平臺進行調(diào)查比較發(fā)現(xiàn)市場出現(xiàn)率最多的是Yeelink物聯(lián)網(wǎng)云平臺,這種云平臺基于IPv4網(wǎng)絡,一般會使用開源硬件Arduino和樹莓派進行設計,并且Yeelnik物聯(lián)網(wǎng)云平臺不能自主選擇查看歷史數(shù)據(jù),采集的數(shù)據(jù)也不顯示路徑,整個平臺的數(shù)據(jù)傳輸效率也偏低,不足之處也很明顯。針對以上的不足,在實現(xiàn)IPv6物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的數(shù)據(jù)傳輸過程中利用JSON的數(shù)據(jù)傳輸格式,這種格式簡化了機器的解析和創(chuàng)建,并將網(wǎng)絡的傳輸效率也大幅度提高,再利用MySQL建立數(shù)據(jù)庫來存儲歷史數(shù)據(jù),設計的數(shù)據(jù)接入平臺在純IPv6環(huán)境下運行,使得IPv6物聯(lián)網(wǎng)數(shù)據(jù)接入平臺具有更高的安全性。設計所用到的技術都已經(jīng)在大學四年里有相應的接觸,實現(xiàn)平臺的設計時就有了一定的基礎,在當前條件下可以實現(xiàn)。(2)經(jīng)濟可行性設計所用的到的硬件材料有傳感器(DHT11傳感器、水滴傳感器、MQ-2型氣體傳感器等)、6LBR邊緣路由器等、整個硬件的開發(fā)成本都在500元以內(nèi),在自己可以負擔的范圍之內(nèi)。(3)組織可行性利用蘭州工業(yè)學院信息中心為設計提供了IPv6環(huán)境,電子信息工程學院大學生實踐基地給予的便利條件進行測試,指導老師對技術的悉心指導,所設計的IPv6物聯(lián)網(wǎng)數(shù)據(jù)接入平臺可以成功實現(xiàn)。1.5論文結構介紹將論文的章節(jié)結構進行編排。第1章介紹畢業(yè)設計的研究內(nèi)容并進行分析。第2章介紹設計時所用到關鍵技術和重要概念。第3章介紹畢業(yè)設計的總體規(guī)劃、硬件的設計方案和軟件的實現(xiàn)過程。第4章對基于IPv6物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的硬件和軟件進行綜合的測試。最后,對論文進行歸納和總結。1.6本章小結介紹了畢業(yè)設計的背景和國內(nèi)外對物聯(lián)網(wǎng)云平臺發(fā)展,對畢業(yè)設計的可行性進行分析發(fā)現(xiàn)設計貼合實際具有研究價值,明確了設計的研究內(nèi)容,并對論文的結構進行分析。2技術介紹在基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的設計過程中,前端框架使用AJAX和BootStrap來設計,后端建立MySQL數(shù)據(jù)庫進行傳感數(shù)據(jù)的存儲,用PHP進行接口的設計開發(fā),通訊方式為基于MQTT協(xié)議的POST方式,設計的技術架構如圖2.1所示。圖2.1技術架構2.1IPv6協(xié)議IPv6的全稱是互聯(lián)網(wǎng)協(xié)議第6版,有128bit的地址長度,地址由字段分開,這樣的字段一共有8個,字段與字段之間用冒號分開,每個字段中有16位的二進制數(shù),它最大的改變就是將IP地址的空間進行擴大,報頭如圖2.2所示。圖2.2IPv6基本報頭基本報頭的版本為6并且擁有4bit的地址長度;業(yè)務流量等級主要用于服務的質(zhì)量,擁有8bit的地址長度,一般情況下的默認值為0;流標簽用來判斷是否屬于同一個業(yè)務流的報文,擁有20bit的地址長度;載荷長度的地址長度為16bit,這個長度包含了擴展頭部;下一報頭用于指出IPv6基本報頭后應該接有哪一個類型的擴展報頭,擁有8bit的地址長度;跳數(shù)限制擁有的地址長度為8bit,再每次對報文進行轉發(fā)時會將字段減去1,如果減到0將被舍棄;源地址擁有128bit的地址長度,用于識別報文的來源;目的地址也擁有128bit的地址長度,用于識別報文的目的。2.2MQTT協(xié)議MQTT協(xié)議的英文全稱是MessageQueuingTelemetryTransport(消息隊列遙測傳輸協(xié)議),它的網(wǎng)絡層級如圖2.3所示。圖2.3MQTT的網(wǎng)絡層級MQTT協(xié)議的設計是為了提高網(wǎng)絡的服務質(zhì)量并減少了一些不必要的網(wǎng)絡冗余。它的運行環(huán)境主要是PHP+Apache,Broker是服務器,它可以是電腦,也可以是一個APP,Broker主要存在于Publisher和Subscriber之間從客戶端獲取網(wǎng)絡和應用程序連接信息并進行處理并轉發(fā)給訂閱者;MQTT協(xié)議發(fā)布者稱之為Publisher,它會向Broker發(fā)送訂閱信息,也可以訂閱其他客戶端發(fā)布的信息或者取消訂閱信息;MQTT協(xié)議的訂閱者稱之為Subscriber,它通常會訂閱信息并接收Broker發(fā)布的信息,通常情況下,Publisher和Subscriber都可以作為是客戶端使用。MQTT是一種開放的協(xié)議,它的初衷就是專門為降低功耗而設計的,不論是阿里云、百度云還是其余的物聯(lián)網(wǎng)平臺都已經(jīng)全面支持MQTT協(xié)議,可見它也有著很大的優(yōu)勢。(1)MQTT異步交換數(shù)據(jù),類似于發(fā)送信息。與HTTP同步交換數(shù)據(jù)不同,在HTTP同步模式下,您需要等待其他參與者的響應,但是在MQTT異步模式下仍然可以發(fā)送信息而無需等待其他參與者的確認。這樣的通信模式變得更加的簡化。(2)MQTT適用于小規(guī)模傳輸,是輕量級的,適用于低帶寬和小數(shù)據(jù)量的應用,可以滿足互聯(lián)網(wǎng)中許多特定的需要。(3)MQTT和MQ允許不穩(wěn)定的網(wǎng)絡,并且可以解決連接失敗之類的問題,而無需其他代碼。2.3Contiki系統(tǒng)Contiki系統(tǒng)是一個適用于互聯(lián)網(wǎng)的嵌入式網(wǎng)絡的操作系統(tǒng),它的代碼是開源的,有很多的程序開發(fā)員都會將自己的代碼貢獻出來以供后人去學習,這樣讓Contiki變得更受歡迎;它資源的占用情況非常小,對于資源緊缺的微型控制器和電腦來說都十分適用,平常只需要幾K的內(nèi)存就可以滿足編程環(huán)境的需要,它利用C語言去開發(fā),對硬件的要求不高并且在內(nèi)部也會自建一個TCP/IP的協(xié)議棧以便于開發(fā)者使用;它還具有高可移植性,可以輕松移植到互聯(lián)網(wǎng)絡中。因此,在科研和設計方面?zhèn)涫荜P注。Contiki操作系統(tǒng)廣泛適用于物聯(lián)網(wǎng)中,因為他有以下的特點:(1)在Contiki的使用時,所有系統(tǒng)中的任務都是基于事件的模型,并且許多任務共享了相同數(shù)量的存儲空間,在這種情況下,既節(jié)省了代碼也節(jié)省了RAM,因為Contiki系統(tǒng)上的應用程序最多使用幾K的閃存和RAM就可以實現(xiàn)IP協(xié)議、UDP協(xié)議、TCP協(xié)議的功能。(2)Contiki減少了消耗,允許網(wǎng)絡支持IPv4和IPv6兩個不同的協(xié)議。系統(tǒng)所使用的uIP協(xié)議是為了整合網(wǎng)絡設備有限的硬件資源而特別開發(fā)的,使用uIP協(xié)議不僅可以完全實現(xiàn)TCP/IP協(xié)議,還可以滿足交互的標準。(3)Contiki可以按照自身需要任意修改代碼而不用遞交任何的費用,并且支持多個開發(fā)平臺。它還集成了用于模擬無線傳感器網(wǎng)絡的工具,用于調(diào)試命令的工具,性能分析以及基于閃存的工具。因此,在業(yè)內(nèi)被廣泛使用于各個領域并在不斷的創(chuàng)新。(4)Contiki操作系統(tǒng)無需額外的硬件或設備就可以可啟動網(wǎng)絡,節(jié)約能源。2.4Apache+PHP+MySQL2.4.1ApacheApache的英文全稱是ApacheHTTPServer,由不同的測試者的經(jīng)過不斷的測試,它可以運行在絕大多數(shù)的計算機平臺上,源自于它的使用簡單和安全性能高,最終也成為了是世界上最受歡迎的Web服務器軟件。如果將它和平常的Web服務器做比較可以發(fā)現(xiàn)它的主要特點如下。源代碼完全是公開的,可以通過短時間的學習、按照自身的喜好和需要來修改代碼以實現(xiàn)服務器的功能;跨平臺應用,Apache可以運行在幾乎所有的windows和Linux系統(tǒng)上;采用模塊化的設計去實現(xiàn)需要的功能,運行穩(wěn)定,節(jié)省了開發(fā)的時間,提高了設計的效率;常見的網(wǎng)頁編程語言都可以在Apache上完成設計,這樣使得Apache的應用場景更加廣泛。Apache在提供記錄和監(jiān)測服務器的運行狀況上具有極大的靈活性,Web可以隨時監(jiān)測服務器的運行狀態(tài),開發(fā)人員也可以自己定義日志文件以滿足自己的需要。2.4.2PHPPHP的英文全稱是PersonalHomePage,它作為計算機能夠讀懂的語言,人們就可以通過它與計算機進行交互,并且PHP語言的語法與C語言、C++語言、Java語言等相似,它主要區(qū)別于HTML這種靜態(tài)的網(wǎng)站成為了一種嵌入在HTML文檔中的腳本語言,PHP的發(fā)展十分迅速,在開發(fā)者之間備受歡迎,最主要是離不開它的自身優(yōu)勢,具體的特點如下。代碼是開源的,開發(fā)者可以根據(jù)自身需要在互聯(lián)網(wǎng)上獲得源代碼,通過修改以后進行使用,并且PHP代碼的語法匯集了當代新型的編程語言的語法使它本身也變得十分簡單,更加容易上手;不僅安全性高,而且還與很多主流與非主流的數(shù)據(jù)庫相互支持;代碼的執(zhí)行速度快,并且占用的內(nèi)存也很小;跨平臺應用,PHP可以運行在幾乎所有的windows和Linux系統(tǒng)上;2.4.3MySQL數(shù)據(jù)庫管理系統(tǒng)MySQL用于建立數(shù)據(jù)庫,主要負責網(wǎng)絡數(shù)據(jù)的管理,通過將MySQL數(shù)據(jù)庫應用到網(wǎng)站設計中,MySQL數(shù)據(jù)庫的建設規(guī)模得以擴大,從而增加了信息的使用范圍。具體的特點如下。MySQL軟件的數(shù)據(jù)安全機制是完善的。用戶可以創(chuàng)建數(shù)據(jù)庫并按管理員設置的權限中設置自己的操作權限。沒有操作權限的用戶無法查看或更新數(shù)據(jù)庫數(shù)據(jù)。因此,MySQL軟件通過指定用戶名和密碼以及數(shù)據(jù)檢索特權來確保數(shù)據(jù)庫數(shù)據(jù)的安全性;MySQL數(shù)據(jù)庫主要用C語言和C++語言進行,具有高移植性,能夠在不同的系統(tǒng)平臺上工作,并且MySQL優(yōu)化了SQL的算法,提高了數(shù)據(jù)共享的效率。MySQL數(shù)據(jù)管理系統(tǒng)程序占用內(nèi)存資源小,但是數(shù)據(jù)庫中的數(shù)據(jù)類型十分豐富,滿足了程序員的開發(fā)需求,并且代碼是開源的。2.5本章小結介紹了基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺設計中所用到的相關技術,利用學校的圖書館和互聯(lián)網(wǎng)廣泛地查閱IPv6網(wǎng)絡、MQTT協(xié)議、PHP+MySQL和Contiki系統(tǒng)等內(nèi)容的相關文件資料,通過學習加以分析與研究。本章內(nèi)容雖然是以介紹技術為主,但是確是整個設計的基石,只有將這些技術認真學習才可以更好的完成畢業(yè)設計。3系統(tǒng)設計3.1總體設計設計的初衷是為了方便IPv6物聯(lián)網(wǎng)用戶的數(shù)據(jù)存儲、分析和顯示,以幫助用戶進行大規(guī)模數(shù)據(jù)信息分析。通過查找資料發(fā)現(xiàn)如果使用PHP語言編寫網(wǎng)頁程序并且使用MySQL建立數(shù)據(jù)庫保存數(shù)據(jù)應該是當下網(wǎng)絡開發(fā)中最節(jié)省資源的一種組合,所以,在此次的設計中用到開發(fā)環(huán)境為PHP+MySQL+Apache。以Apache服務器為基礎,利用MySQL建立數(shù)據(jù)庫存放數(shù)據(jù)信息,再用PHP和HTML語言進行系統(tǒng)平臺的設計,最后用AJAX調(diào)取數(shù)據(jù)庫的數(shù)據(jù),在頁面上進行曲線的繪制。系統(tǒng)所涉及的數(shù)據(jù)感知、傳輸、存儲和展示均以IPv6網(wǎng)絡為核心,利用6LoWPAN和各個節(jié)點之間的自組網(wǎng)將采集到的數(shù)據(jù)上傳至6LBR網(wǎng)關,而6LBR網(wǎng)關可以給傳感器節(jié)點和服務器分配IP地址,這樣就可以隨時連接傳感器節(jié)點并將所采集到的數(shù)據(jù)上傳到服務器的數(shù)據(jù)庫,服務器通過MQTT協(xié)議將數(shù)據(jù)發(fā)送到客戶端,客戶端將信息以Restful的JSON格式將數(shù)據(jù)上傳至物聯(lián)網(wǎng)云平臺,客戶端即可借助瀏覽器對遠端的服務器設備進行控制和監(jiān)測,整個系統(tǒng)的設計如圖3.2所示。圖3.2系統(tǒng)整體設計3.2系統(tǒng)硬件設計在基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的硬件部分主要設計了3個節(jié)點和1個6LBR網(wǎng)關,每個節(jié)點可以采集溫濕度的值、煙霧情況、是否有水和是否有人的信息,通過自組網(wǎng)將信息上傳到服務器的數(shù)據(jù)庫中并通過OLED液晶顯示屏顯示有關的信息,整個硬件部分也設計了蜂鳴器,每當采集到的數(shù)據(jù)出現(xiàn)異常時,節(jié)點中所設計的蜂鳴器發(fā)出聲音,提醒相關的人員,系統(tǒng)的硬件如圖3.3所示。圖3.3系統(tǒng)硬件實物3.2.1傳感器節(jié)點(1)溫濕度傳感器生活中我們關注度最多的就是溫度和濕度,因為在一些特定的環(huán)境下溫濕度的把控非常嚴格,比如在實驗室、信息機房都需要對溫濕度進行24小時的實時監(jiān)測,所以我選用了DH11溫濕度傳感器來測量溫濕度,圖3.4是DH11溫濕度傳感器的電路原理圖。圖3.4DH11溫濕度傳感器電路(2)煙霧傳感器我選用的是MQ-2型氣體傳感器,使用煙霧傳感器可以防止發(fā)生火災或者迫使人們在火災發(fā)生前采取保護措施,這樣可以減少一些不必要的損失并且可以確保人們的安全,圖3.5是氣體傳感器的電路圖。圖3.5煙霧傳感器電路(3)水滴傳感器在電子產(chǎn)品的使用過程中需要防止水滴濺在上面而造成短路、電子元器件損壞等問題,因此我選用了LM393電壓比較芯片,如圖3.6所示,利用DOTTL數(shù)字輸出檢測是否有雨水。圖3.6LM393電路(4)人體紅外感應模塊人類和動物都可以發(fā)出紅外線,但是肉眼是無法觀察到紅外線的,所以為了檢測紅外線,人們開發(fā)了人體紅外感應模塊,它的原理圖如圖3.7所示。圖3.7人體紅外感應電路3.2.26LBR邊緣路由器6LBR的實物如圖3.8所示,6LBR網(wǎng)關通過現(xiàn)有RPL網(wǎng)絡中的路由連接IPv6和6LoWPAN,作為6LoWPAN網(wǎng)關,它在整個網(wǎng)絡中都扮演著自適應的角色。圖3.86LBR實物連接3.3系統(tǒng)軟件設計3.3.1搭建AppServ開發(fā)環(huán)境在google瀏覽器上輸入網(wǎng)址,出現(xiàn)了下載窗口,如圖3.9所示,單擊“DOWNLOAD”選項進行下載,在圖3.10所示窗口中可以查看Apache、PHP和MySQL的版本,我選擇下載了AppServ8.0.0軟件。圖3.9AppServ下載窗口圖3.10AppServNetwork窗口將AppServ安裝完成后會出現(xiàn)AppServ的安裝完成圖,如圖3.11所示,此時我們可以勾選開啟Apache和MySQL,這樣計算機會自動啟動Apache和MySQL,單擊“Finish”就完成了AppServ的安裝過程。圖3.11AppServ的安裝完畢在安裝完成后進入C:\AppServ文件夾下查看安裝情況如圖3.12所示。圖3.12瀏覽AppServ的文件夾3.3.2設計MySQL數(shù)據(jù)庫(1)打開MySQLCommandClient輸入在安裝AppServ軟件時設置的MySQL登錄密碼,輸入“createdatabaseshuju;”的命令建立數(shù)據(jù)庫,然后再用“showdatabases”的命令查看所建立的數(shù)據(jù)庫,如圖3.13所示。圖3.13建立數(shù)據(jù)庫“shuju”(2)將數(shù)據(jù)庫建立完成后,開始建立數(shù)據(jù)表,它的排布方式類似于行列的方式。根據(jù)我的設計需要,我主要建立了4個表,如圖3.14所示,分別是nodecontrol、nodedata、nodeinfo和user;圖3.14數(shù)據(jù)庫的表單①nodecontrol表nodecontrol表中有節(jié)點序號id、節(jié)點名稱nodeName、指示燈ctlLED和蜂鳴器ctlBEEP,所以我設計了4個字段,nodecontrol的信息如表3.1所示。表3.1nodecontrol表的內(nèi)容列名數(shù)據(jù)類型屬性是否允許NULL值說明idint(13)UNSIGNED否節(jié)點數(shù)量nodeNameint(15)否節(jié)點名稱ctlLEDint(15)否指示燈的控制數(shù)據(jù)ctlBEEPint(15)否蜂鳴器的控制數(shù)據(jù)根據(jù)表3.1中的內(nèi)容創(chuàng)建nodecontrol表的SQL語句如下。②nodedata表nodedata表主要用于存放傳感器節(jié)點采集到的數(shù)據(jù)信息,例如溫度、濕度等,如表3.2所示。表3.2nodedata表的內(nèi)容列名數(shù)據(jù)類型屬性是否允許NULL值說明idint(13)UNSIGNED否節(jié)點數(shù)量nodeidint(13)否節(jié)點序號tempfloat是溫度數(shù)據(jù)humifloat是濕度數(shù)據(jù)create_timedatatime自動更新是上傳數(shù)據(jù)時間根據(jù)表3.2的內(nèi)容創(chuàng)建nodedata表的SQL語句如下。③nodeinfo表nodeinfo表主要是為了用戶上傳節(jié)點數(shù)據(jù)所設計的數(shù)據(jù)表,在生活中每位用戶都會在不同的地區(qū)采集不同的節(jié)點數(shù)據(jù),為了方便用戶,使用戶可以自行增加節(jié)點、自行上傳節(jié)點數(shù)據(jù),所以設計了nodeinfo表。nodeinfo表包含了傳感器節(jié)點的位置,傳感器的類別等內(nèi)容,如表3.3所示。表3.3nodeinfo表的內(nèi)容列名數(shù)據(jù)類型屬性是否允許NULL值說明idint(13)UNSIGNED否節(jié)點數(shù)量nodeNamevarchar(50)否節(jié)點名稱nodeLocationvarchar(255)否節(jié)點位置sensorName1varchar(255)是傳感器名稱1sensorName2varchar(255)是傳感器名稱2uidint(11)是用戶序號根據(jù)表3.3的內(nèi)容創(chuàng)建nodeinfo表的SQL語句如下。④user表user表主要用來管理用戶,用戶通過注冊將自己的用戶名、密碼和郵箱的信息上傳到數(shù)據(jù)庫中,系統(tǒng)會為每位用戶隨機生成密鑰來保證每位用戶的信息安全,具體user的內(nèi)容如表3.4所示。表3.4user表的內(nèi)容列名數(shù)據(jù)類型排序規(guī)則屬性是否允許NULL值說明uidint(13)否用戶序號usernamevarchar(255)utf8_general_ci否用戶名passwordvarchar(255)utf8_general_ci否密碼nodekeyvarchar(255)utf8_general_ci否隨機密鑰emailvarchar(255)utf8_general_ci否用戶郵箱regatedatetime自動更新否登錄時間banint(11)否是否禁用adminint(11)否是否為管理員根據(jù)表3.4的內(nèi)容創(chuàng)建user表的SQL語句如下:將數(shù)據(jù)表創(chuàng)建完成后,我用NavicatPremium建立模型,可以直觀的看出各個數(shù)據(jù)表之間的關系,如圖3.15所示。圖3.15NavicatPremium數(shù)據(jù)表模型3.3.3Apache-Apollo-1.7.1搭建MQTT服務MQTT基于TCP協(xié)議,主要由mqtt-fuse和mqtt-paho兩種方式來實現(xiàn),ApacheApollo類似于MQTT,也是一個服務器,主要用于消息的請求轉發(fā),ApacheApollo的缺點是管理員操作界面不太友好,從Apache的官網(wǎng)上下載apache-apollo-1.7.1.zip。如圖3.16所示。圖3.16創(chuàng)建broker創(chuàng)建完broker之后就是要運行apollo,進入C:\apache-apollo-1.7.1\broker\bin目錄下,執(zhí)行如下命令:apollo-broker.cmdrun,需要停止服務器時直接關閉終端即可,或者使用如下的方式,./apollo-broker-servicestart//{start|stop|restart|force-stop|status},不會占用終端,導致終端關閉時服務停止,初始化服務器如圖3.17所示。圖3.17初始化服務器初始化服務器后,第二次啟動服務器時需要先執(zhí)行apollo-broker-service.exe啟動服務,再執(zhí)行apollo-broker.cmdrun啟動實例,啟動服務器如圖3.18所示。圖3.18啟動服務器初始化以后apache-apollo-1.7.1目錄下會生成broker配置文件夾,如圖3.19所示,其中etc中包含相關配置文件。圖3.19broker配置文件夾在瀏覽器進入web管理頁面,基于apollo的安全機制,Web管理頁面只可用和localhost登錄,登錄頁面如圖3.20所示,無法使用tcp的方式共享給局域網(wǎng)內(nèi)用戶。局域網(wǎng)內(nèi)用戶只有發(fā)布和訂閱的功能,不具備平臺的管理權限。圖3.20Web登錄頁面3.3.4PHP客戶端phpMQTT-masterphpMQTT是一個開源的客戶端代碼庫,能夠很方便的將mqtt集成到php開發(fā)工程中。它的誕生打破了PHP_SAM——唯一基于PHP的MQTT客戶端的局面。ProjectSAM是一個用于多個不同pubsub消息傳遞系統(tǒng)的PHP庫,MQTT只是其中之一。然而,它的弊病是非常嚴格的許可機制、缺乏維護和相當多的bug。以前,如果想使用MQTT和PHP,則沒有其他選擇,現(xiàn)在AndrewMilsted(@bluerhinos)創(chuàng)作了一種替代方案:phpMQTT。phpMQTT只是在初級階段,目前只發(fā)布功能齊全,有一些錯誤是解決訂閱,但是對于那些已經(jīng)使用PHP_SAM它提供了一個清新簡單的方法開始使用MQTT——組成一個文件和一些簡單的功能。發(fā)布消息(由AndrewMilsted編寫)的示例如圖3.21所示:圖3.21消息發(fā)布與PHP_SAM不同,任何基本掌握C風格語言和MQTT的人都可以直接使用。phpMQTT-master是開源方案,下載地址/bluerhinos/phpMQTT,主要的PHP文件有3個,phpMQTT.php為公共部分,其中定義了工程所需的全局變量和函數(shù),所使用到的函數(shù)如圖3.22所示。圖3.22使用函數(shù)publish.php實現(xiàn)socket的創(chuàng)建,并發(fā)送給訂閱號信息,只需創(chuàng)建一個客戶端,不管發(fā)布訂閱都用這一個客戶端實例,實例跟隨工程存在內(nèi)存中,不管發(fā)布還是訂閱先看這個實例存在不存在,如果存在就直接使用,不存在就創(chuàng)建一個實例,如圖3.23所示。圖3.23創(chuàng)建客戶端實例subscribe.php實現(xiàn)消息訂閱,接收一個信息后退出,我將其改為了死循環(huán)監(jiān)聽,如圖3.24所示。圖3.24消息訂閱在操作時遇到了內(nèi)存耗死的問題,在phpMQTT.php文件中,鏈接不上MQTT的時候,圖3.25中的代碼會出現(xiàn)錯誤:圖3.25代碼錯誤錯誤分析:鏈接不到MQTT,應該加一個判斷,修改后的代碼如圖3.26所示。圖3.26修改代碼3.4云平臺設計基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺根據(jù)角色將登錄人員分為管理員和普通用戶,普通用戶可以更改與自己相關的信息,不能操作其他用戶,他可以對節(jié)點進行添加、刪除、編輯和檢查并對節(jié)點所采集的數(shù)據(jù)進行上傳,當普通用戶上傳完數(shù)據(jù)后可以從繪制的曲線進行數(shù)據(jù)分析。管理員用戶由后臺進行設置,管理員頁面可以顯示所有用戶添加的節(jié)點和采集到的數(shù)據(jù)總量,管理員也擁有可以刪除或停用用戶的權限。3.4.1云平臺的注冊平臺的注冊界面如圖3.27所示,包含了需要注冊用戶名、密碼和郵箱,用戶名支持漢字、字母和數(shù)字,長度在3至15個字符之間,密碼不得少于6位,郵箱必須需要滿足規(guī)范。圖3.27用戶注冊界面管理員的賬號是由后臺設定的,普通用戶在第一次登陸基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺時需要注冊自己的賬號,平臺注冊流程如圖3.28所示。圖3.28平臺的注冊流程3.4.2云平臺的登錄平臺的登錄界面如圖3.29所示。普通用戶按照規(guī)定注冊好自己的信息后輸入注冊時的用戶名和密碼即可登錄平臺進行使用。圖3.29用戶登錄界面用戶如果想要進入平臺查看數(shù)據(jù)則需要通過登錄界面,平臺的登錄流程圖如圖3.30所示。圖3.30平臺的登錄流程圖3.4.3平臺用戶分類管理員作為平臺的維護和管理,他可以管理用戶的信息,統(tǒng)計所有用戶上傳的數(shù)據(jù),并對節(jié)點進行管理等,管理員的功能如圖3.31所示。圖3.31管理員功能普通用戶作為平臺的主要使用者,他可以管理節(jié)點數(shù)據(jù),并可以修改自己的信息等,普通用戶的功能如圖3.32所示。圖3.32普通用戶功能3.5本章小結介紹了畢業(yè)設計的整體框架,硬件的選用,包括了傳感器和路由器的選用,在軟件方面,介紹了AppServ系統(tǒng)的開發(fā)環(huán)境,從安裝到使用,還介紹了在設計時用到的數(shù)據(jù)庫,還介紹了MQTT的服務器搭建以及使用PHP操作MQTT,介紹了基于IPv6的物聯(lián)網(wǎng)數(shù)據(jù)接入平臺的設計思路,主要面向普通用戶和管理員用戶,角色的功能也不同。4系統(tǒng)總體測試4.1MQTT連通性測試系統(tǒng)的數(shù)據(jù)交互在后臺進行,無法直接查看,直接執(zhí)行publish.php文件查看MQTT服務器的連通性,phpMQTT-master需要PHP7.0的支持,publish.php執(zhí)行結果如圖4.1所示。圖4.1publish.php執(zhí)行結果可以看到,在org.eclipse.paho.ui.app-1.0.2中,訂閱的主題有了更新,說明MQTT服務器的連通性沒有問題如圖4.2所示。圖4.2測試MQTT服務器的連通性4.2PHP操作MySQL數(shù)據(jù)庫4.2.1準備工作在通常情況下,由于MySQL不再是PHP的核心函數(shù),PHP不會再自動支持MySQL,所以要使用MySQL函數(shù)必須讓用戶在PHP擴展函數(shù)中開啟MySQL函數(shù)庫,方法如下。打開php.ini的文件;找到代碼行“;exextension=php_mysql.dll”和“;extension=php_mysqli.dll”將語句前的“;”去掉并保存文件,如圖4.3所示;圖4.3修改php.ini重啟Web或Apache服務器完成操作。配置完成后在瀏覽器中可以輸入“:8080/phpinfo.php”來檢查配置是否成功,如果在網(wǎng)頁中顯示的PHP的配置開發(fā)環(huán)境中有MySQL的項目,則說明準備工作已經(jīng)完成,PHP支持MySQL數(shù)據(jù)庫,如圖4.4所示。圖4.4php配置開發(fā)環(huán)境4.2.2連接MySQL服務器MySQL數(shù)據(jù)庫用于保存數(shù)據(jù),如果PHP想要操作數(shù)據(jù)庫,則需要連接到MySQL服務器,只有連接到服務器PHP才可以對數(shù)據(jù)庫保存的數(shù)據(jù)進行處理,在這個過程中用到了“mysql_connect()”函數(shù),所用到的語法如果連接MySQL服務器成功,則得到執(zhí)行結果如圖4.5所示。圖4.5成功連接到MySQL服務器4.2.3連接MySQL數(shù)據(jù)庫將PHP連接到MySQL服務器后,就可以對服務器的數(shù)據(jù)庫和數(shù)據(jù)表進行維護,因此需要連接到MySQL數(shù)據(jù)庫,在這個過程中我們用到了mysql_select_db()函數(shù),所用到的語法是:如果連接MySQL數(shù)據(jù)庫成功,則得到執(zhí)行結果如圖4.6所示。圖4.6成功連接到MySQL數(shù)據(jù)庫4.3組網(wǎng)結構設計使用自己建立的服務器,按照圖4.7組件網(wǎng)絡。圖4.7組網(wǎng)結構4.4測試節(jié)點的連通性4.4.1測試6LBR網(wǎng)關的連通性根據(jù)設計的組網(wǎng)結構,6LBR網(wǎng)關的地址為2001:da8:c004:1::100,使用ping命令發(fā)現(xiàn)6LBR網(wǎng)關連通如圖4.8所示。圖4.86LBR網(wǎng)關ping通4.4.2測試服務器的連通性使用ipconfig查詢服務器的地址,如圖4.9所示。圖4.9查詢服務器地址服務器的地址為2001:da8:c004:1::100,使用ping命令發(fā)現(xiàn)服務器連通如圖4.10所示。圖4.10服務器ping通4.4.3測試節(jié)點的連通性節(jié)點一的地址為2001:da8:c004:2:212:4b00:5af:81a1,使用ping命令發(fā)現(xiàn)節(jié)點一連通如圖4.11所示。圖4.11節(jié)點一ping通節(jié)點二的地址為2001:da8:c004:2:212:4b00:5af:80f0,使用ping命令發(fā)現(xiàn)節(jié)點二連通如圖4.12所示。圖4.12節(jié)點二ping通節(jié)點三的地址為2001:da8:c004:2:212:4b00:5af:8123,使用ping命令發(fā)現(xiàn)節(jié)點一連通如圖4.13所示。圖4.13節(jié)點三ping通4.5測試數(shù)據(jù)的采集利用上位機對數(shù)據(jù)進行采集,打開測試軟件運行代碼,在輸入節(jié)點編號、服務器地址和秘鑰后,單擊“開始采集”就會對節(jié)點的傳感器數(shù)據(jù)進行采集,如圖4.14所示。圖4.14上位機采集數(shù)據(jù)數(shù)據(jù)在采集界面可以對溫濕度進行報警閾值的設置,如圖4.15所示。圖4.15報警參數(shù)設置4.6云平臺測試在登錄云平臺后經(jīng)過測試軟件采集傳感器數(shù)據(jù),傳感器節(jié)點列表界面如圖4.16所示,在傳感器節(jié)點列表界面可以查看節(jié)點的名稱,每個傳感器節(jié)點所采集的數(shù)據(jù)都會被繪制成曲線,用戶可以根據(jù)曲線來分析數(shù)據(jù),用戶也可以拖動下拉滾動條查看節(jié)點所采集到的所有數(shù)據(jù)。圖4.16傳感器節(jié)點列表在云平臺上可以對原始數(shù)據(jù)進行查詢,如圖4.17所示,可以查看到節(jié)點處的傳感器所采集到的所有數(shù)據(jù),所有采集到的數(shù)據(jù)可以自動編號,這樣可以方便對數(shù)據(jù)的查詢,用戶還可以以節(jié)點編號、傳感器的類型以及采集數(shù)據(jù)的時間進行排序,也可以根據(jù)傳感器的采集值進行查詢。圖4.17采集數(shù)據(jù)查詢4.7本章小結

溫馨提示

  • 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

提交評論