張賢杰
(1.黑龍江省科學院江蘇技術轉移中心,江蘇 鎮(zhèn)江 212000;2.黑龍江省科學院智能制造研究所,哈爾濱 150090)
無線傳輸技術為嵌入式系統(tǒng)提供了新的數(shù)據(jù)傳輸方式,為新技術時代下的嵌入式物聯(lián)網(wǎng)系統(tǒng)發(fā)展提供了更多的可能[1,2]。隨著嵌入式物聯(lián)網(wǎng)及人工智能技術的發(fā)展,環(huán)境檢測系統(tǒng)功能更加強大,逐步走向智能化、網(wǎng)絡化[3,4]。
本項目需要對溫度、濕度和光照強度等環(huán)境參數(shù)進行采集并向用戶展示當前環(huán)境參數(shù)。用戶可以控制參數(shù)的變化范圍,當實時環(huán)境參數(shù)超過變化范圍時,警報系統(tǒng)就會根據(jù)系統(tǒng)設置做出相應反應。本項目研究的物聯(lián)網(wǎng)環(huán)境檢測系統(tǒng),利用傳感器、無線網(wǎng)絡來監(jiān)測環(huán)境參數(shù)的變化。在居家生活中可以提高人們的生活質(zhì)量,便捷地隨時檢測家中基本環(huán)境參數(shù)的變化,當環(huán)境異常時可以及時提醒用戶,預防環(huán)境中的危險因素。在工業(yè)或者特定環(huán)境中使用,可準確了解當前的環(huán)境參數(shù),為工業(yè)控制提供可靠的數(shù)據(jù)。
該系統(tǒng)是基于STM32微處理器設計的,以采集環(huán)境參數(shù)和具有報警功能的微處理器作為下位機,以顯示和控制移動端手機作為上位機,最終實現(xiàn)系統(tǒng)在不同環(huán)境下正常工作。智能化環(huán)境監(jiān)測系統(tǒng)上位機及下位機功能劃分如下。
下位機:溫濕度傳感器采集當前環(huán)境信息并傳遞給微處理器;光敏電阻根據(jù)不同的光照強度向微處理器傳遞不同的參數(shù)值;微處理器接收傳感器的數(shù)據(jù)進行處理,把環(huán)境參數(shù)信息根據(jù)協(xié)議約定拼接為數(shù)據(jù)包由串口發(fā)送出去,這些數(shù)據(jù)信息解碼后設置溫度范圍和報警裝置狀態(tài)。上位機:通過下位機藍牙模塊與手機連接,主要負責下位機和手機APP間的數(shù)據(jù)傳遞。手機APP通過藍牙接收數(shù)據(jù)信息,解碼這些數(shù)據(jù)信息保存到APP資源數(shù)據(jù)中,再根據(jù)APP資源數(shù)據(jù)中的數(shù)據(jù)信息展示在APP界面。用戶通過手機APP設置環(huán)境參數(shù)合理變化范圍和控制命令,再使用相對應的協(xié)議,將這些數(shù)據(jù)信息拼接為數(shù)據(jù)包,通過藍牙發(fā)送出去。
為了滿足用戶更好的體驗和實用性,智能化環(huán)境監(jiān)測系統(tǒng)使用Toolbar實現(xiàn)了導航欄圖標、設置標題、自定義控件和Action Menu功能,使得用戶在藍牙連接和環(huán)境參數(shù)的顯示上切換更加方便。用戶可以在Toolbar直觀地查看到當前連接的藍牙名稱,在不同的界面顯示相對應的標題名稱,支持Action Menu,可以在不同的頁面使用Action Menu,實現(xiàn)一些常用的Activity之間的跳轉?;赥oolbar靈活性實現(xiàn)了上述功能,使得用戶使用手機APP進行交互更加便捷。
關鍵技術主要涉及通信協(xié)議的設計、下位機驅動程序的設計、上位機APP應用程序的設計等。
智能化環(huán)境監(jiān)測系統(tǒng)中,下位機與手機APP通過藍牙模塊實現(xiàn)數(shù)據(jù)傳輸功能。為確保數(shù)據(jù)在傳送過程中的正確性和有效性,需要自定義設計一套通信協(xié)議。自定義的通信協(xié)議定義了數(shù)據(jù)單元使用的格式,通過校驗和的方法來確保傳輸信息的正確性和可靠性。通過分析硬件設備本身的特點以及此系統(tǒng)開發(fā)的實際需求,設計的通信協(xié)議分為兩種:手機APP向下位機發(fā)送數(shù)據(jù)信息所需要的協(xié)議和下位機向手機APP端發(fā)送數(shù)據(jù)信息所需要的協(xié)議。每種通信協(xié)議都包括三部分,即固定頭碼、數(shù)據(jù)信息和校驗和。根據(jù)系統(tǒng)開發(fā)的需求,手機APP可以通過低功耗藍牙向下位機發(fā)送數(shù)據(jù)信息來實現(xiàn)對下位機的設置和控制功能。在傳送的數(shù)據(jù)中包括溫度上下界信息、濕度上下界信息、光照強度上下界信息和控制警報裝置開光的信息。手機APP可以通過低功耗藍牙接受下位機發(fā)送數(shù)據(jù)信息來實現(xiàn)實時環(huán)境參數(shù)更新顯示。在傳送的數(shù)據(jù)中應該包括溫度信息、濕度信息、光照強度信息。
智能化環(huán)境監(jiān)測系統(tǒng)中,驅動軟件主要包括STM32微處理器所需必要資源的驅動、各個傳感器模塊的驅動、報警裝置的驅動和數(shù)據(jù)處理軟件。這部分軟件設計主要使用C語言在Keil MDK開發(fā)平臺上進行軟件設計和軟件測試。在此系統(tǒng)中,以單片機為核心的環(huán)境參數(shù)采集系統(tǒng)主要負責環(huán)境參數(shù)的采集、警報裝置控制、數(shù)據(jù)處理與藍牙數(shù)據(jù)通信。STM32微處理器作為一個控制中心,需要把各個模塊合理地調(diào)用起來共同完成環(huán)境參數(shù)采集的任務?;竟ぷ鬟^程為:STM32微處理器上電后,首先從存儲芯片中讀取系統(tǒng)資源配制數(shù)據(jù),對硬件資源進行初始化設置,如溫濕度傳感器模塊、光敏電阻和與其連接的ADC通道、報警裝置、連接藍牙模塊所需要的串口資源。在初始化完成后,利用溫濕度傳感器模塊和與光敏電阻連接的ADC通道采集當前空間環(huán)境的環(huán)境參數(shù)。采集到的環(huán)境參數(shù)根據(jù)自定義的協(xié)議打包成數(shù)據(jù)包通過串口向藍牙模塊發(fā)出。與此同時,STM32微處理器接收來自藍牙的數(shù)據(jù)包并解碼數(shù)據(jù)包,根據(jù)數(shù)據(jù)包中的控制和設置信息做出相應的反應,設置數(shù)據(jù)主要有溫度、濕度和光照強度合理變換范圍,根據(jù)環(huán)境參數(shù)變化范圍和、當前采集的數(shù)據(jù)和報警裝置的控制狀態(tài)做出報警設備的狀態(tài)改變控制。
上位機手機APP在Android平臺下開發(fā),移動端APP作為下位機環(huán)境數(shù)據(jù)采集系統(tǒng)的顯示和設置模塊有非常嚴謹?shù)牧鞒毯鸵蟆R苿佣薃PP是整個環(huán)境檢測系統(tǒng)與用戶連接的橋梁,可以接收下位機的數(shù)據(jù)信息并且展示給用戶,用戶可以通過手機APP向下位機發(fā)送控制命令。移動端APP發(fā)送的數(shù)據(jù)包遵循下位機數(shù)據(jù)發(fā)送協(xié)議,按字節(jié)對應的數(shù)據(jù)信息位置將其對應的數(shù)據(jù)填入,并計算校驗和,最后生成String類型的數(shù)據(jù)包。移動端APP開發(fā)中應該滿足以下特點:可以掃描、連接且與藍牙設備進行數(shù)據(jù)交換;可接受下位機的數(shù)據(jù)包,且正確解碼數(shù)據(jù)信息;把解碼后的數(shù)據(jù)信息通過APP界面向用戶展示;用戶可以用過手機APP設置環(huán)境參數(shù)變化范圍,可以設置警開關狀態(tài);
系統(tǒng)設計完成后,需基于模塊測試,集成測試和系統(tǒng)測試順序對系統(tǒng)進行測試。整個系統(tǒng)調(diào)試成功后,應該達到以下要求:下位開機后,可正常工作;手機APP打開藍牙并可正常掃描附近藍牙設備;手機可與藍牙設備連接成功并正常通信;手機APP與下位機通信并獲得下位機所發(fā)送的環(huán)境數(shù)據(jù),經(jīng)過解密后可顯示在APP當前的頁面,且手機APP上所顯示的環(huán)境參數(shù)與當前環(huán)境參數(shù)一致;系統(tǒng)不斷比對測得的環(huán)境參數(shù)是否在所設置的變換范圍內(nèi),若超出這個范圍,則系統(tǒng)根據(jù)設置參數(shù)做出相應反應;手機設置環(huán)境參數(shù)變換范圍和其他控制數(shù)據(jù)時,通過藍牙傳向下位機,下位機可做出相應的反應。
本項目做了大量的市場調(diào)研,設計的智能化環(huán)境監(jiān)測系統(tǒng)可智能監(jiān)測溫度、濕度和光照強度等環(huán)境參數(shù),用戶可控制參數(shù)變換范圍,當實時環(huán)境參數(shù)超過變換范圍時警報系統(tǒng)就會根據(jù)系統(tǒng)設置選擇工作狀態(tài),滿足工業(yè)、農(nóng)業(yè)、居家生活的實際環(huán)境監(jiān)測需求,具有體積小、節(jié)能環(huán)保、攜帶便捷及良好的實用價值等特點。