方 舟,王俊杰,朱海軒,呂 潔,馮俊杰,董 宇,張 旭
(1.金陵科技學院 網絡與通信工程學院,江蘇 南京 211169;2.金陵科技學院 國際教育學院,江蘇 南京 211169)
當前,人們飼養寵物的需求越來越大,促進了寵物用品行業蓬勃發展,市面上出現了大量智能寵物佩戴產品。《2019年中國寵物行業白皮書》顯示,我國寵物經濟行業規模龐大、發展迅速,但與歐美發達國家相比,仍然有較大的增長空間。《2019中國寵物消費趨勢報告》指出,我國寵物行業全產業鏈日趨完善,并逐漸面向市場。目前,寵物業已經構建出了一條較完整的產業鏈。市面上智能產品眾多,有的關注寵物智能投喂,有的是寵物防丟裝置,但針對寵物設計實現良好的實時報警功能的產品尚比較缺乏,所以本設計著重關注智能寵物佩戴產品的報警功能設計與實現。本設計有效避免了因環境或人為因素導致網絡狀態不佳而無法實時監控以及智能寵物產品實時監控界面在多平臺間不兼容的情況。采用傳統發送短信方式實現關鍵信息發送,不受3G/4G/5G網絡對信息發送的影響,網絡環境對功能的影響甚微,具有較高的穩定性。實時短信消息的發送使監護人員能夠快速實時了解寵物狀況,并可通過OneNET物聯網平臺實時監測寵物信息。
總體設計主要由硬件和軟件兩部分組成。硬件部分主要由STM32開發板搭載各類傳感器、蜂鳴器而成。利用溫濕度、心率血氧傳感器、GPS模塊對寵物進行實時數據采集,單片機負責處理數據。軟件部分主要包括數據處理功能代碼與報警功能代碼。整體系統如圖1所示。

圖1 系統整體設計
硬件設計包括許多部分,如STM32F407、電源模塊、附加傳感模塊等,各個硬件組成與接口電路如圖2所示。主控芯片上PA口連接到MAX232芯片,通過電阻分別將MAX232(1)和(2)相連接;通過電平轉換,最終4G RXD信號和4G TXD信號與通信模塊發出的EC20 RXD/7600RXD和EC20TXD/7600TXD信號整合輸入,從而實現通信信號的接收功能。該主板掛載的另外兩個功能模塊,分別是溫濕度傳感器(DHT11)、心率血氧傳感器(MAX30102)。主控模塊PB0引腳輸出信號以控制蜂鳴器,從而進行實時報警反饋。

圖2 各個硬件組成與接口電路
(1)溫濕度傳感器(DHT11)
溫度監測范圍:(0~50 ℃)±2 ℃;相對濕度監測范圍:20%~90%。
DHT11數字溫濕度傳感器是一種已校準數字信號輸出的溫濕度復合傳感器,它使用專業的數字模塊采集技術和溫濕度傳感技術,確保有更高的可靠性和穩定性。
DHT11采用單總線雙向串行通信協議,單片機發起開始信號后,進行數據采集;DHT11向STM32單片機發送響應信號并傳輸40位數據幀。
(2)心率血氧傳感器(MAX30102)
MAX30102是一個用于監測脈搏、血氧和心率的傳感器模塊,集成了含有660 nm紅光LED、880 nm紅外光LED、光電檢測器和光器件以及帶環境光抑制的低噪聲電子電路。MAX30102在5.5 V的外部電壓配置下,增加一個1.8 V電源和一個獨立的3.3 V用于內部LED的供電電源,傳感器使用了標準的IC兼容的通信接口。
心率:心率獲取是采用電容積脈搏波描記法(PPG);LED光射向皮膚,反射回的光波被光敏傳感器接收到,光敏傳感器中數據被轉換成電信號再經過模數轉換,使其轉換成數字信號。血氧:由于血液中含有的氧合血紅蛋白和血紅蛋白的含量總是存在一定的比例。氧合血紅蛋白HbO和血紅蛋白Hb可吸收光的波長不同,從而可以利用不同波長的光分別檢測HbO和Hb含量,然后通過預先設計好的程序處理,得出相應的比值,這個比值就是血氧值。
(3)通信模塊設計(EC20)
STM32單片機連接通信模塊,使用4G網絡,通過MQTT協議上傳數據包至云端服務器,再由云端處理得到可視化的數據圖像。EC20模塊提供AT指令接口,模塊通過AT指令可以令使用者更為方便地與外部設備進行信息傳輸。
(4)蜂鳴器設計
STM32的單個I/O接口最大可以提供25 mA大小的電流,蜂鳴器的驅動電流高達30 mA。因此需要使用一個NPN三極管(S8050)擴流驅動蜂鳴器。的主要功能是用于防止誤觸蜂鳴器導致發聲。本系統規定,當PB0輸出高電平時,蜂鳴器將發聲;當PB0輸出低電平時,蜂鳴器發聲停止。
(1)報警系統原理程序設計
報警系統程序主要分為主控程序和報警程序兩個部分。系統開機初始化后,給賦值0,之后系統反復獲取當前寵物及寵物周邊環境數據,每4 s刷新一次數據。當寵物身處不利環境中時,系統將根據設定好的程序自動獲取數值并與定義的安全數值進行比對,如構成觸發報警功能的條件,蜂鳴器會報警三次并給賦值1,通信模塊向緊急聯系人手機發送報警信息。報警功能完成后,系統重啟,并恢復正常運行。整個功能實現的流程如圖3所示。

圖3 報警功能流程
(2)EC20通信模塊的信息發送
EC20模塊通過AT指令獲取基站地址,再由軟件處理數據得到經緯度數據;通過AT代碼發送報警信息,具體代碼如下:
Uart2_SendStr("AT+CMGF=1 ");
Uart2_SendStr("AT+CMGS="13776653560" ");
Uart2_SendStr("WARNING:實時坐標地址 ");
sprintf(ss,"%c ",0x1A);
Uart2_SendStr(ss);
(3)硬件終端與OneNET云平臺通信
OneNET平 臺 目 前 支 持 MQTT、EDP、NB-IoT、Modbus、HTTP等協議,本次設計采用OneNET中的MQTT物聯網套件,MQTT物聯網套件以AccessKey為核心密鑰,即使用核心密鑰通過簽名算法計算簽名,與其他參數共同組成token,然后將token作為請求Header參數進行鑒權。認證通過后,在自定義協議數據解碼器解碼相關方法中構造并返回MessageType為Login的ProtocolMessage,并將OneNET設備ID、設備名稱、設備密鑰、設備所屬的產品ID等信息輸入。在終端設計方面,OneNET云平臺為開發者提供了一個比較簡單實用的開發工具,提供了預先設定好的控件,使開發者可以更加迅速地構建自己的應用終端界面。
基于STM32的寵物報警系統是通過將傳感器收集到的數據與人為規定的安全值進行對比,當數據超過安全值時會觸發報警功能。硬件系統連接完成后開始測試,實時獲取當前環境及傳感器數據,通過人為操作模擬危險場景,激發報警功能。本系統可通過訪問OneNET平臺檢測實時數據,平臺通過直觀的折線圖顯示數據,并可實時顯示設備定位。平臺界面如圖4所示。

圖4 物聯網平臺界面
報警功能測試:圖5所示為OneNET物聯網平臺實時溫度數據顯示界面。測試報警功能時,通過人為操作模擬高溫環境,將環境溫度提升,當溫度上升到警戒值(40 ℃)時觸發報警功能。

圖5 實時溫度數據顯示界面
當系統激發報警功能后,會向緊急聯系人手機發送OneNET網頁,蜂鳴器會鳴叫三次進行報警。圖6所示為短信內容及報警所用蜂鳴器。

圖6 報警信息接收
本系統主要實現了寵物實時數據監測及報警功能,系統通過各模塊配合作用可獲取寵物當前所處環境位置、溫濕度及心率和血氧濃度等信息。通過溫度傳感器模塊實測獲取環境溫度值,系統進行數據分析,當數值超過設定的安全值時實現報警功能。經過模擬驗證,結果顯示本系統兼容性良好且不受環境信號限制,能夠快速準確地實現報警功能,緊急聯系人手機能快速接到信息并獲取寵物位置,解決了寵物的安全及遺失問題,使得未來寵物智能化管理更加容易實現。