智能控制及網關係統實現(項目)

時間:2019年6月

階段:大三下學期

背景:物聯網網關開發技術&物聯網工程設計與實現設計課設

名稱:智能控制及網關係統實現

摘要

粵嵌GEC 6818開發板作爲系統的網關板,其爲系統數據的中樞。啓動串口收發,可以接收到ZigBee網絡的協調器通過串口發送的數據; lCD屏幕編程,實現傳感網的數據實時顯示;建立有MySQL數據庫的連接,可以將傳感網絡的溫溼度及門狀態信息保存到遠端的數據庫服務器中;建立有TCP服務器,可以實現與上層應用的通訊;通過串口與NB-IOT模塊連接,實現外網通訊數據轉發。

物聯網的感知層使用的是ZigBee網絡,實現多個終端節點的傳感器數據獲取,多個終端節點的的設備控制,將數據統一由協調器進行管理;網絡層使用的是粵嵌6818開發板,實現多種協議的整合,實現數據的轉發與處理;應用端有WEB端數據顯示和手機端燈控制。

關鍵詞: NB-IOT;物聯網網關;數據庫; TCP/IP;MQTT

概述

1.1  課題描述

      相比於互聯網時代,物聯網的通信協議更加多樣,物的碎片化非常嚴重,網關的重要性也就由此凸顯——物聯網網關能夠把不同的物收集到的信息整合起來,並且把它傳輸到下一層次,因而信息才能在各部分之間相互傳輸。物聯網網關可以實現感知網絡與通信網絡,以及不同類型感知網絡之間的協議轉換;既可以實現廣域互聯,也可以實現局域互聯。

      物聯網網關,作爲一個新的名詞,在未來的物聯網時代將會扮演非常重要的角色,它將成爲連接感知網絡與傳統通信網絡的紐帶。此外物聯網網關還需要具備設備管理功能,運營商通過物聯網網關設備可以管理底層的各感知節點,瞭解各節點的相關信息,並實現遠程控制。

1.2  系統目標

      物聯網的感知層使用的是ZigBee網絡,實現多個終端節點的傳感器數據獲取,多個終端節點的的設備控制,將數據統一由協調器進行管理;網絡層使用的是粵嵌6818開發板,實現多種協議的整合,實現數據的轉發與處理;應用端有WEB端數據顯示和手機端燈控制。

1.3  環境

       a) 操作系統:

               Windows10教育版 64位

               Linux

        b) 使用軟件:

              安卓開發:Android Studio2.0

              網頁開發:Adobe Dreamweaver CC 2017

              數據庫:MySql

              文檔編寫:Microsoft Word 2016

              串口命令行登入:putty.exe

              Tftp服務器:tftpd32

        c) 開發語言:

              Java語言

              PHP語言

              C語言

系統總體設計與詳細設計

2.1   系統總體設計

圖2.1  系統總體設計圖

 

 2.2 網關板設計:

       物聯網網關開發板使用的是粵嵌的6818開發板,GEC6818開發平臺,核心板採用10層板工藝設計,確保穩定可靠,可以批量用於平板電腦,車機,學習機,POS 機,遊戲機,行業監控等多種領域。該平臺搭載三星Cortex-A53系列高性能八核處理器S5P6818,最高主頻高達1.4GHz,可應用於嵌入式Linux和Android等操作系統的驅動、應用開發。開發板留有豐富的外設,支持千兆以太網、板載LVDS接口、MIPI接口、USB接口等。

      GEC6818開發平臺支持三大操作系統,具備完整的教學資源和教學內容,包括:ARM微處理器系統驅動的實驗、嵌入式實時操作系統Linux開發、嵌入式Android系統開發、嵌入式Android應用開發、嵌入式系統項目實戰開發等內容。

      GEC6818開發板使用的是嵌入式Linux系統,內部運行有TCP服務器,可以等待TCP客戶端連接以提交數據與接收控制指令;內部運行有數據庫客戶端,可向數據庫服務器保存感知層上報的傳感器數據;板子集成有800*480的顯示屏,可以通過顯示屏實現模塊狀態及傳感器數據的顯示;板子通過兩個串口分別與ZigBee網絡感知層的協調器、NB-IOT模塊進行通信。實現多協議的集成,數據的收發、處理、轉發。

      GEC6818開發板是系統的數據中樞。

圖2.2  網關板設計

2.3 ZigBee網絡感知層:

    系統的感知層使用的是ZigBee網絡進行組網數據傳輸,其有一個協調器和兩個終端節。終端節點實現感知與控制,其感知部分分別包括有溫溼度傳感器、霍爾門控傳感器;其控制部分是分佈在每個終端上的三色LED燈。

圖2.3 ZigBee網絡感知層

2.4 顯示控制平臺及數據保存:

       顯示控制平臺是基於網關板面向用戶的開發,其將需要將網關的數據經過處理後通過圖文等簡易方式返回給用戶觀看與操作,實現數據的快速利用。6818網關板上接有LCD屏幕顯示,實現門開關狀態的顯示、兩個終端模塊的上下線顯示、溫溼度的實時顯示。TCP顯示控制檯,是通過連接網關板的TCP服務器實現的,可以通過獲取網關板所發送的數據,進行解析後顯示模塊狀態、門狀態、溫溼度數據,也可通過按鈕觸發實現控制命令的下發。數據保存是會將網關接收的傳感器數據實時保存到數據庫,數據庫的數據展示將會通過網頁進行查詢展示。手機端的數據接收與控制指令的發送是通過MQTT協議,而網關板實現MQTT協議是通過NB-IOT模塊。

圖2.4  顯示控制平臺及數據保存

2.5 NB-IOT模塊實現:

 網關通過串口與NB模塊進行通信,NB模塊通過MQTT應用協議與應用層通信,應用層的實現是手機接收相關傳感器數據與發送控燈指令。MQTT服務器是搭建在騰訊雲主機上的。

BC26的特性:

全網通

支持AT指令

支持OpenCPU,可省去外圍MCU

支持高速移動(80km/h~120km/h)

採用聯發科的MT2625芯片

OpenCPU

1. OpenCPU是基於移遠模塊的二次開發方案,用戶可以直接在模塊裏開發集成應用,從而省掉外部主控MCU。OpenCPU已被廣泛的用於M2M領域,例如智能家居、智能城市、資產追蹤,汽車能源等領域。

2. OpenCPU與傳統方案對比如下圖。 在傳統方案中,需要一個MCU作爲主控制器,控制硬件外設,例如控制路燈的亮或滅,然後使用MCU的UART接口與標準模塊進行AT指令通信,上報當前路燈狀態,或接收來自遠程服務器的開關燈命令。而OpenCPU方案,可以直接在模塊中編寫程序控制路燈,節約硬件成本,加速應用開發。

3. OpenCPU核心系統是NB-IoT模塊的軟硬件結合。它內置ARM Cortex-M4處理器,構建在FreeRTOS操作系統之上,具有微內核、實時性、多任務等特點。

 

圖2.5  NB-IOT模塊實現

測試

3.1    智能控制及網關係統硬件整體:

圖3.1  智能控制及網關係統硬件整體

3.2  粵嵌6818開發板網關顯示界面:

圖3.2 粵嵌6818開發板網關顯示界面

3.3  兩個終端節點

圖3.3 集  兩個終端節點

3.4  NB-IOT模塊與協調器

圖3.4集  協調器與NB-IOT模塊

3.5  模塊1下線時網關板上顯示

圖3.5模塊1下線時網關板上顯示

3.6  TCP客戶端顯示控制平臺

圖3.6  TCP客戶端顯示控制平臺

 

3.7   網頁端數據顯示平臺

圖3.7   網頁端數據顯示平臺

3.8   通過手機與NB-IOT模塊通信實現開關等

 圖3.8   通過手機與NB-IOT模塊通信實現開關等

課程設計總結或結論

1    物聯網網關的重要性:

相比於互聯網時代,物聯網的通信協議更加多樣,物的碎片化非常嚴重,網關的重要性也就由此凸顯——物聯網網關能夠把不同的物收集到的信息整合起來,並且把它傳輸到下一層次,因而信息才能在各部分之間相互傳輸。物聯網網關可以實現感知網絡與通信網絡,以及不同類型感知網絡之間的協議轉換;既可以實現廣域互聯,也可以實現局域互聯。

 

2    JPEG圖片的定點顯示問題:

6818網關板上有800*480的LCD屏,如何在板子上顯示圖片,可以使用jpeg庫。其需要的效果是顯示實時的傳感層數據,如果想要達到較好的效果是不能直接更換整張圖片的,這將要涉及到定點替換圖片,實現背景圖片的顯示和實時數據的替換。

參考原整張圖片替換的函數,修改函數爲void jpeg_show(int xx,int yy,char *fullfilename),函數攜帶X和Y軸的偏移量和圖片地址,通過寫像素點函數lcd_draw_point(cinfo.output_scanline+yy,i+xx,color);加上偏移量實現定點寫圖片,定點更換顯示的效果。

 

3    OpenCPU的聯想:

三年來接觸過的開發板也算是挺多了吧,ESP8266、ESP32、NB-IOT都是支持AT指令和OPenCPU類的開發,爲什麼要有OpenCPU呢,之前和移遠技術人員通電話他給我的解釋是BC26之所以支持OpenCPU就是針對於那些捨不得買個外部MCU的人使用的,一般的都是使用AT加外部MCU開發的。哈哈,此處有點接不上話。

根據個人開發經驗,AT指令方便於測試,OPenCPU類方便於開發。如果將一個自帶有IO口的單片機只是實現一些特定的功能或者僅僅是數據轉發,而且還要嚴格按照AT指令的格式進行數據解析,那將是一件和爲難自己認知的事情。

作爲物聯網工程專業學生,在面對系統開發時應該正確的使用AT與OpenCPU類的開發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章