• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向云環(huán)境的敏捷物聯(lián)網(wǎng)應(yīng)用開發(fā)平臺研究

      2021-09-14 03:27:16江先亮朱家驊
      關(guān)鍵詞:開發(fā)板外設(shè)代碼

      張 騰,金 光,江先亮,朱家驊

      (寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)

      隨著物聯(lián)網(wǎng)及嵌入式技術(shù)的發(fā)展,物聯(lián)網(wǎng)應(yīng)用已遍布各行各業(yè),物聯(lián)網(wǎng)應(yīng)用開發(fā)教學(xué)也成為了當(dāng)前信息技術(shù)教育的主流內(nèi)容之一.不同于其他工程開發(fā),物聯(lián)網(wǎng)應(yīng)用開發(fā)中硬件及接口的差異化會造成學(xué)習(xí)者在設(shè)備選型、線路連接、環(huán)境部署時的困難,進一步增加了學(xué)習(xí)成本及開發(fā)周期.

      目前主流的快速物聯(lián)網(wǎng)開發(fā)平臺大多采用瀏覽器端編寫代碼,云端服務(wù)器進行編譯并燒錄程序的方式.其中,OElab 采用B/S及C/S兩種架構(gòu)結(jié)合云端編譯器及管理器,實現(xiàn)了電源管理、代碼下載及視頻監(jiān)控等功能[1].該平臺針對專業(yè)嵌入式開發(fā)人員,能夠有效降低相關(guān)的測試及開發(fā)門檻,但仍需在本地進行代碼編寫,然后進行云端編譯并下載代碼運行.ARM mbed 可以完成基于ARM 系列內(nèi)核的開發(fā)板編程工作,采用瀏覽器端代碼編寫并完成編譯,編譯后的文件由本地PC 端程序存入開發(fā)板并完成代碼運行[2].Arduino Web Editor 是一款針對于Arduino 開發(fā)套件的瀏覽器編程方案,免去了開發(fā)環(huán)境的安裝,但需要通過瀏覽器插件進行設(shè)備連接及下載,對系統(tǒng)及瀏覽器版本有一定要求[3].Tinyink 注重于降低初學(xué)者的硬件學(xué)習(xí)成本,根據(jù)用戶代碼采用智能決策算法來生成所需的硬件及其連接方案,免去了用戶設(shè)備選型的麻煩[4].但該系統(tǒng)需用戶本地進行代碼編寫及硬件開發(fā),不適用于初學(xué)者.micro:bit 是一款針對于低齡物聯(lián)網(wǎng)及嵌入式學(xué)習(xí)者的實驗套件,目前支持網(wǎng)頁端的圖形化編程及Python語言編程[5].該系統(tǒng)通過瀏覽器頁面編程,并將二進制文件下載到本地,然后通過本地工具燒錄進開發(fā)板中.該系統(tǒng)有較好的模塊化設(shè)計,但仍需在本地安裝驅(qū)動及軟件.LinkLab 通過瀏覽器頁面進行代碼編寫,并在云端完成編譯,編譯后的文件發(fā)送給遠程終端設(shè)備,再通過串口完成物聯(lián)網(wǎng)設(shè)備燒錄[6].該方式適用于面向軟件編程的用戶,缺少了硬件編程的直觀性和趣味性.

      綜上所述,目前缺乏一款面向初學(xué)者的免環(huán)境安裝、接口統(tǒng)一、步驟簡單、系統(tǒng)穩(wěn)定可靠的物聯(lián)網(wǎng)在線開發(fā)平臺,使初學(xué)者能更好地學(xué)習(xí)業(yè)務(wù)邏輯開發(fā),了解軟件驅(qū)動與硬件之間的關(guān)系,而不必在意開發(fā)及硬件燒錄過程中的繁瑣步驟.因此,本文設(shè)計了面向云環(huán)境的敏捷物聯(lián)網(wǎng)應(yīng)用開發(fā)平臺,該平臺是一個屏蔽硬件差異化的分布式遠程物聯(lián)網(wǎng)應(yīng)用開發(fā)平臺,沒有代碼編譯過程,無需任何輔助設(shè)備及軟件,用戶可直接在瀏覽器端進行物聯(lián)網(wǎng)開發(fā)、實驗及教學(xué).并且平臺實現(xiàn)了在線編程、一鍵運行的功能,達到了屏蔽硬件、忽略差異化的目的.

      1 平臺架構(gòu)設(shè)計

      與上述技術(shù)及系統(tǒng)采用的硬件完全抽象化及部分步驟精簡化不同,本文進一步分析了用戶在學(xué)習(xí)及開發(fā)時的需求,將物聯(lián)網(wǎng)開發(fā)中不太相關(guān)的繁瑣部分進行了抽象化,并完整地保留對學(xué)習(xí)及開發(fā)者有用的部分,使得本方案能夠有效地保證學(xué)習(xí)的完整性及高效性.

      如圖1 所示,本平臺與其他方案及系統(tǒng)相比,將環(huán)境安裝、代碼燒錄等與物聯(lián)網(wǎng)開發(fā)技術(shù)關(guān)聯(lián)不強的繁瑣程序進行抽象化,轉(zhuǎn)移到云端平臺進行.同時,針對于能夠鍛煉用戶開發(fā)及具備有效體驗實驗效果的WebIDE 及模塊化開發(fā)板對用戶可見.所以,本平臺能夠在極大地減少用戶使用成本的同時,給予用戶完整的物聯(lián)網(wǎng)開發(fā)體驗及流程,更便于用戶了解物聯(lián)網(wǎng)開發(fā)學(xué)習(xí)及實驗時所需的知識點及操作步驟.

      圖1 平臺可視化示意圖

      平臺采用B/S 架構(gòu),用戶在瀏覽器端進行線上物聯(lián)網(wǎng)實驗及開發(fā).相應(yīng)系統(tǒng)架構(gòu)如圖2 所示,平臺分為應(yīng)用層、服務(wù)層、設(shè)備層.應(yīng)用層采用在線集成開發(fā)環(huán)境(Web Integrity Develop Environment,WebIDE)方式,在有效降低用戶使用難度、減少學(xué)習(xí)成本的同時,達到跨平臺的目的.服務(wù)層選用微服務(wù)架構(gòu)[7]進行設(shè)計和搭建,相比其他架構(gòu)擁有更好的魯棒性及擴展性,能夠更好地滿足用戶的功能需求.設(shè)備層主要由配套實驗開發(fā)板及實驗?zāi)K組成,該實驗套件具有接口統(tǒng)一、易用的特點,更加便于用戶的學(xué)習(xí)及開發(fā).

      圖2 平臺系統(tǒng)架構(gòu)

      平臺主要工作流程如圖3 所示.當(dāng)用戶將通過應(yīng)用層瀏覽器編寫完成之后的代碼傳送給服務(wù)層的云端微服務(wù),其中的代碼推送服務(wù)負(fù)責(zé)將代碼從服務(wù)器推送到設(shè)備層開發(fā)板.手機APP 用于第一次使用時對開發(fā)板的初始化配置工作.

      圖3 系統(tǒng)工作流程概述

      本系統(tǒng)無需編譯流程,具體代碼運行及反饋流程如圖4 所示.步驟1:用戶在WebIDE 編寫完代碼之后,前端服務(wù)通過HTTP 協(xié)議將代碼發(fā)送給圖3 服務(wù)層所示的一對一推送服務(wù).步驟2:一對一推送服務(wù)對代碼進行語法處理后,將代碼通過MQTT 服務(wù)器推送給開發(fā)板.步驟3:開發(fā)板運行Python 代碼后,通過控制I/O 引腳完成物理上的實驗現(xiàn)象演示.步驟4:通過MQTT 協(xié)議將實驗結(jié)果反饋給物聯(lián)網(wǎng)開發(fā)服務(wù).步驟5:物聯(lián)網(wǎng)開發(fā)服務(wù)將數(shù)據(jù)進行格式化處理后,通過WebSocket 協(xié)議將代碼運行結(jié)果反饋給前端服務(wù)器,并在前端頁面顯示出來.

      圖4 代碼運行及反饋流程

      本平臺主要功能如下:

      (1)應(yīng)用層及服務(wù)層設(shè)計與開發(fā).應(yīng)用層主要由前端頁面及前端服務(wù)構(gòu)成,包括登錄注冊功能的設(shè)計與開發(fā)、WebIDE 功能的設(shè)計與開發(fā)、用戶中心功能的設(shè)計與開發(fā).

      服務(wù)層主要是后端微服務(wù)設(shè)計與開發(fā),包括基于Spring Cloud 架構(gòu)進行系統(tǒng)架構(gòu)設(shè)計,完成微服務(wù)相關(guān)組件搭建,完成鑒權(quán)認(rèn)證服務(wù)、物聯(lián)網(wǎng)開發(fā)服務(wù)、用戶信息服務(wù)及一對一代碼推送服務(wù)的設(shè)計與開發(fā).

      應(yīng)用層前端功能與服務(wù)層對應(yīng)服務(wù)見表1.

      表1 應(yīng)用層與服務(wù)層對應(yīng)關(guān)系表

      (2)物聯(lián)網(wǎng)代碼推送機制設(shè)計.旨在設(shè)計一種能夠連接后端服務(wù)與開發(fā)板的推送機制,該機制以微服務(wù)形式部署在線上編程系統(tǒng)的服務(wù)器端.

      (3)設(shè)備層實驗開發(fā)板設(shè)計與制作.開發(fā)板設(shè)計與制作需針對功能要求進行PCB(印刷電路板)的設(shè)計及制作,并根據(jù)電路原理圖完成開發(fā)板及相關(guān)外設(shè)的驅(qū)動開發(fā)及固件燒錄.

      針對于實驗開發(fā)板參數(shù)初始化需要,完成基于藍牙通信手機的配套APP 編寫.

      2 核心功能設(shè)計

      本系統(tǒng)核心內(nèi)容包括三部分:(1)設(shè)計適用于物聯(lián)網(wǎng)開發(fā)環(huán)境下的一對一推送機制;(2)設(shè)計和實現(xiàn)支持拓展的易用性物聯(lián)網(wǎng)實驗套件;(3)設(shè)計基于TEA 加密算法[8]的動態(tài)口令認(rèn)證協(xié)議[9].

      2.1 適用于高并發(fā)場景的一對一代碼推送機制

      滿足高并發(fā)和一對一(一個用戶針對一套開發(fā)板)的通信需要是本系統(tǒng)的關(guān)鍵點,傳統(tǒng)TCP 連接服務(wù)器在合法性檢測、確認(rèn)重傳機制的設(shè)計、對高并發(fā)量的支持等方面都無法滿足實際需求.此外,適于物聯(lián)網(wǎng)設(shè)備的MQTT 協(xié)議雖具有消耗小、高并發(fā)的特點[10],但其協(xié)議采用發(fā)布/訂閱的模式,適于一對多通信的場景,無法滿足一對一通信要求.針對此應(yīng)用場景,本文設(shè)計了一種基于MQTT的一對一代碼推送機制.

      如圖5 所示,在對開發(fā)板進行配網(wǎng)時,配網(wǎng)軟件會獲取開發(fā)板的唯一ID,當(dāng)與用戶ID 進行綁定后,存儲到數(shù)據(jù)庫中.配網(wǎng)完成后,開發(fā)板會訂閱以自身ID+“00”命名的主題,發(fā)布以自身ID 為主題的廣播.用戶完成線上代碼編寫,并將代碼發(fā)送至物聯(lián)網(wǎng)服務(wù)器,后端服務(wù)通過讀取數(shù)據(jù)庫以獲取開發(fā)板ID,創(chuàng)建以開發(fā)板ID+“00”為主題的廣播進行代碼傳輸,訂閱以開發(fā)板ID 命名的主題完成開發(fā)板運行信息的接收,達到雙向一對一通信的目的.

      圖5 一對一代碼推送機制流程

      2.2 模塊化主控板電路設(shè)計

      為實現(xiàn)用戶代碼完成推送后自動在開發(fā)板上的運行,本文設(shè)計的開發(fā)板采用MicroPython 系統(tǒng)為底層固件.MicroPython 是Python 3 語言的精簡高效實現(xiàn),可在微控制器和受限環(huán)境中運行[11].因Python 為解釋性語言,開發(fā)板在接收代碼后,可直接調(diào)用此Python 代碼,實現(xiàn)自動運行功能.

      開發(fā)板設(shè)計及開發(fā)架構(gòu)如圖6 所示.以ESP32為核心,且根據(jù)需要可更換不同性能的芯片,如stm32、ARM 系列Soc 等.此外,還根據(jù)功能需要設(shè)計了外設(shè)電路及外設(shè)模塊,且實驗板與外設(shè)之間采用易用性接口連接.

      圖6 開發(fā)板硬件系統(tǒng)結(jié)構(gòu)

      對于本場景,本文針對主板的充電、穩(wěn)壓供電、下載通信、外設(shè)驅(qū)動等電路進行了重新設(shè)計,其中開發(fā)板的主控芯片電路如圖7 所示.

      圖7 主控芯片電路圖

      2.3 基于TEA 加密算法的動態(tài)口令認(rèn)證協(xié)議

      為防止非法設(shè)備接入及網(wǎng)絡(luò)漏洞導(dǎo)致用戶信息泄露等問題,結(jié)合開發(fā)板核心性能不高的限制,本文設(shè)計了一種基于TEA 加密算法的動態(tài)口令認(rèn)證協(xié)議.

      該協(xié)議選用時間同步方式作為不確定因子,采用SHA256 哈希算法和TEA 加密算法完成認(rèn)證及傳輸加密,以進一步提高系統(tǒng)安全性和破解難度,本認(rèn)證協(xié)議符號和相關(guān)表示見表2.

      表2 認(rèn)證協(xié)議算法符號和標(biāo)識

      本文選用CID、CB_MAC、CW_MAC 組合,并經(jīng)過SHA256 加密之后作為請求信息,公式如下:

      在發(fā)送請求信息時,將開發(fā)板獲取的TC、CID信息進行TEA 加密操作,得到REQSE作為加密請求數(shù)據(jù),公式如下:

      服務(wù)器接收到請求信息后,對數(shù)據(jù)進行解密操作,公式如下:

      執(zhí)行過程如圖8 所示.步驟1:開發(fā)板Ci向時間同步服務(wù)器ST獲取時間.步驟2:開發(fā)板將CID、TC數(shù)據(jù)與SHA256 加密后的CID、CB_MAC、CW_MAC 組合數(shù)據(jù)作為請求數(shù)據(jù),經(jīng)過TEA 加密算法加密后,向認(rèn)證服務(wù)器發(fā)出請求.步驟3:服務(wù)器解密獲取TC、CID 及REQSE數(shù)據(jù),校驗TC,并比對數(shù)據(jù)庫中的REQSE數(shù)據(jù),完成開發(fā)板認(rèn)證.步驟4:服務(wù)器將TS以及SHA256 加密后的CID、CB_MAC、CW_MAC 數(shù)據(jù)發(fā)送給開發(fā)板.步驟5:開發(fā)板驗證TS以及解壓后的REQSE.

      圖8 雙向口令認(rèn)證流程

      3 系統(tǒng)部署及功能驗證

      3.1 系統(tǒng)部署

      平臺開發(fā)完成后,我們將軟硬件系統(tǒng)進行了部署.軟件部分,在內(nèi)存為32 GB、CPU 為E5-2630 V3 的服務(wù)器上使用19.03.5 版本Docker 容器化部署了線上編程系統(tǒng)各項服務(wù),使用Android 6.0.1 系統(tǒng)安裝了藍牙配網(wǎng)App.硬件部分,運行平臺為

      2.2 節(jié)所述物聯(lián)網(wǎng)配套開發(fā)板.

      我們以按鍵與指示燈外設(shè)模塊為例進行實驗測試,以驗證本方案主控電路、外設(shè)電路接口方案的可行性.該外設(shè)模塊使用易用性接口,能更方便地完成安裝和卸載工作.具體開發(fā)板電路如圖9(a)所示,外設(shè)模塊電路如圖9(b)所示,安裝有外設(shè)模塊的開發(fā)板實物如圖9(c)所示.目前,本系統(tǒng)已實現(xiàn)的實驗套件外設(shè)模塊見表3.

      圖9 開發(fā)板、外設(shè)電路及實物

      表3 目前已實現(xiàn)外設(shè)模塊

      3.2 功能測試

      用戶完成登錄后,進入線上編程界面,輸入測試代碼,并點擊運行按鈕開始運行程序.待程序成功運行后,可以看到如圖10 所示的實驗現(xiàn)象:開發(fā)模塊上的紅、黃、綠3 種顏色LED 燈以1s 的間隔進行周期性閃爍.

      圖10 配套物聯(lián)網(wǎng)開發(fā)實驗效果

      3.3 系統(tǒng)對比

      本文方案與LinkLab、Arduino Web Editor、Arm Mbed 等系統(tǒng)的功能進行了對比.由表4 可見,本系統(tǒng)具有跨設(shè)備、無需編譯、無需軟硬件輔助設(shè)備等優(yōu)點,能明顯降低使用難度、提升用戶體驗.

      表4 本平臺與主流系統(tǒng)功能對比

      4 結(jié)語

      當(dāng)前物聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)門檻高、開發(fā)環(huán)境復(fù)雜,導(dǎo)致物聯(lián)網(wǎng)開發(fā)相關(guān)課程的實驗教學(xué)難以在線上開展,針對該類問題,我們設(shè)計并實現(xiàn)了一套基于微服務(wù)架構(gòu)的線上物聯(lián)網(wǎng)實驗平臺.考慮到已有通信協(xié)議無法滿足實際需求,同時設(shè)計了一種新的基于MQTT 的一對一推送機制.并根據(jù)實際需求,設(shè)計并制作了一款基于ESP32 的物聯(lián)網(wǎng)開發(fā)板及手機端配網(wǎng)APP.此外,設(shè)計了一種基于TEA加密算法的動態(tài)口令認(rèn)證協(xié)議,以進一步保障設(shè)備及用戶信息的安全.經(jīng)過系統(tǒng)部署及實際功能測試,表明該系統(tǒng)方案能夠有效完成預(yù)期功能,具有較好的實用價值,為工科類尤其是物聯(lián)網(wǎng)嵌入式課程開展線上實驗教學(xué)提供了一種新的方案.未來我們將針對該平臺進一步深化設(shè)計細節(jié),拓展應(yīng)用場景,提升用戶體驗,使其逐步得以廣泛應(yīng)用.

      猜你喜歡
      開發(fā)板外設(shè)代碼
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機開發(fā)板的設(shè)計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      Microchip推出具備雙ADC外設(shè)的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
      貼身呵護 必不可少的PSP外設(shè)
      金昌市| 布尔津县| 工布江达县| 平顺县| 灵川县| 石林| 碌曲县| 始兴县| 含山县| 安义县| 探索| 铜鼓县| 湾仔区| 岳阳市| 肇东市| 湘乡市| 丰镇市| 汕尾市| 西青区| 万安县| 崇州市| 广饶县| 北流市| 三江| 富锦市| 安阳县| 永登县| 颍上县| 民权县| 武胜县| 黎城县| 临猗县| 永安市| 东海县| 瑞昌市| 左权县| 句容市| 金门县| 澎湖县| 射阳县| 老河口市|