劉力維



摘? 要:文章介紹了一種采用單片機和安卓移動設備構建移動物聯網應用開發實訓系統的方法。并基于該系統完成了實訓的項目設計,實現了通過手機遠程獲取單片機上的傳感器數據以及遠程控制單片機上的開關設備等典型的物聯網應用。
關鍵詞:單片機;傳感器;安卓應用開發
中圖分類號:N945.23 文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)30-0039-02
Abstract: This paper introduces a method of building a mobile IoT application development training system by using MCU (micro-chip computer) and Android mobile devices. Based on the system, the project design of practical training is completed, and the typical application of IoT is realized such as remote acquisition of sensor data and remote control of switch equipment on MCU board.
Keywords: MCU(micro-chip computer); sensor; Android application development
1 物聯網應用開發實訓系統的設計背景及目標
隨著網絡技術和移動應用的快速發展,基于移動設備的物聯網應用得以普及。對相關技術的學習掌握成為智能制造、嵌入式技術與應用、移動應用開發等專業學生的必備技能。目前市面上有很多集成化的物聯網應用開發平臺。此類平臺大多封裝為智能農業、智能交通、智能家居等應用場景,集成度較高,但擴展性較差,無法針對底層硬件進行編程擴展。本系統構建了一個通用且可擴展的物聯網應用開發實訓平臺,使學生完成從底層單片機及傳感器應用技術到上層移動應用開發各環節的設計開發,形成對物聯網應用系統的整體認識。
2 物聯網應用開發實訓系統的架構設計
本系統利用通用單片機開發平臺、個人電腦和安卓移動設備構建一個移動物聯網應用系統。利用單片機開發平臺的硬件可擴展性和安卓開發平臺豐富的軟件功能實現系統的通用性和擴展性。系統框圖如圖1所示。
圖1 物聯網應用開發實訓系統功能框圖
單片機通過可編程IO連接數據傳感器和開關設備,實現物聯網應用模擬沙盤。個人電腦作為數據網關,通過串口與單片機相連,實現沙盤上傳感器數據的采集和開關設備的控制。安卓手機作為遠程控制終端,通過無線網絡連接與數據網關通信,實現沙盤上傳感器數據的遠程監控和智能開關的遠程控制。
3 移動物聯網應用開發實訓項目設計
實訓內容主要包括三部分:單片機應用開發部分實現通過串口與數據網關通信;數據網關部分實現HTTP服務器功能,同時實現與單片機之間串口通信數據的處理;移動終端部分主要實現用戶界面設計以及傳感器數據的遠程獲取和智能開關的遠程控制功能。
3.1 單片機串口通信的實現
以單片機連接溫度傳感器、照明、風扇為例,定義了私有的串口通信數據格式,如表1所示。
單片機串口的命令解析可以通過狀態機來實現。設計單片機上串口接收狀態如下:
空閑狀態:單片機已經處理完成上一條指令,等待新指令的到來。
溫度告警上限設置:單片機收到了字符h,等待溫度告警上限的兩位數字。
溫度告警下限設置:單片機收到了字符l,等待溫度告警下限的兩位數字。
操作數1:單片機收到了第一個操作數,等待第二個操作數。
操作數2:單片機收到了第二個操作數,需要馬上進行整條命令的處理。
開設備:單片機收到了字符k,等待具體操作的設備字符。
關設備:單片機收到了字符g,等待具體操作的設備字符。
單片機串口接收數據進行命令解析的狀態遷移過程如圖2所示。
3.2 數據網關開發部分主要功能
數據網關主要功能分為兩部分:一是通過串口與沙盤通信;二是實現一個小型的HTTP服務器,負責處理來自遠程移動設備的網絡數據傳輸請求。
谷歌提供了一個開源項目android-serialport-api,通過JNI技術實現了動態鏈接庫。使用者通過調用該庫中提供的函數,可以實現串口的開關和串口數據的收發[1]。
數據網關通過一個開源、輕量級的HTTP服務器NanoHTTPD實現[2]。在本系統中,HTTP服務器負責接收來自客戶端的請求,根據請求的參數區分進行后續的業務邏輯處理,處理完畢后構造響應消息應答客戶端設備。
3.3 安卓移動終端開發部分主要功能
移動終端開發的主要工作包括風扇、照明等開關設備的遠程控制;傳感器數據的遠程獲取和顯示;與數據網關之間的HTTP通信功能;移動物聯網應用的用戶界面;注冊及登錄等用戶身份認證功能等。
4 移動物聯網應用開發實訓項目的改進建議
目前各大公司紛紛推出了基于云技術的物聯網開放平臺[3]。學生在系統掌握物聯網應用系統基本原理的基礎上,進一步將數據網關云端化,利用物聯網開放平臺向開發者提供的標準接口進行應用開發,成為快速構建物聯網應用的大勢所趨。
參考文獻:
[1]馮衛,張昱,何小煒.基于Android平臺的串口通信實現的分析[J].數字通信世界,2016,000(007):112-112.
[2]牛艷霞,馬秉斌.嵌入式Web服務器的Android空間數據離線解決方法[J].測繪科學,2017,42(07):178-182+187.
[3]黃海峰.解讀華為IoT平臺以開放構建生態使能行業革新[J].通信世界,2017(21):39.