東北師范大學人文學院理工學院汽車電子與服務工程系 梁龍凱 何文超 呂緒浩
基于STM32及物聯網的老年人追蹤定位系統設計
東北師范大學人文學院理工學院汽車電子與服務工程系 梁龍凱 何文超 呂緒浩
針對老年奧爾茨海默癥患者易走失的實現問題,基于STM32嵌入式系統及ONENET物聯網設計一套定位信息可在地圖上顯示的老年人定位追蹤系統.該系統跟蹤端采用STM32嵌入式系統控制GSM芯片接入物聯網服務器并發送GPS定位數據;接收端接收數據并在地圖上實時顯示GPS跟蹤端當前位置;跟蹤端增設二維碼,可通過非接觸式掃描獲知攜帶者病史及家屬聯系方式,方便他人提供幫助.系統具有可視性好、針對性強、實用價值高等優點.
STM32;ONENET物聯網;GPS;GSM
老年人離家走失、路邊暈倒事件已成為當前社會熱點關注問題.失蹤事件的發生具有不可預測性,一旦走失搜尋范圍隨時間成指數倍增加,使搜尋難度增大.
本文設計一套針對老年人的定位追蹤及信息顯示系統.其主要功能為:當監護人無法在視距范圍內尋找到失蹤目標時,失蹤人員所攜帶的跟蹤設備因脫離監護范圍而被啟動,自動發送定位信息;接收端顯示軟件實時顯示跟蹤設備的方位信息;針對老年人暈倒、迷路等特定情況,跟蹤設備可提供攜帶者的個人電子信息,如姓名、家庭住址、子女聯系方式、病史等,附近人員可通過手機掃描二維碼方式獲取信息并提供幫助.
目前市場上已有的定位設備多采用短信顯示經緯度坐標的方案,由于經緯度信息不直觀,實用價值不高.本文設計系統引入物聯網及其手機應用,在地圖上直觀表達地理信息;STM32嵌入系統可以有效管理跟蹤端GSM發送GPS信息,具有較高實用性.
系統采用嵌入式系統STM32、全球移動通信系統(Global System for Mobile Communication GSM)和全球定位系統(Global Positioning System GPS).總體框架如圖1所示,可實現老年人失蹤報警、定位及地圖實時顯示功能.
系統主要由三部分組成,跟蹤設備、接收設備和中國移動物聯網(ONENET).接收設備由監護人員攜帶,在地圖上顯示GSM芯片發來的GPS定位信息,主要實現系統參數輸入、監控跟蹤設備活動范圍、超范圍警報等功能;跟蹤設備端由老年人隨身攜帶,主要實現監護范圍超越報警,發送定位信息,二維碼顯示等功能;物聯網主要實現定位信息的接收、解析、調用百度地圖API、方位顯示功能.

圖1 系統總體設計框圖
跟蹤端采用ST公司的STM32-F103ZET6型號芯片為核心控制器.該芯片為基于Cortex-M3內核的32位微控制器,供電電壓在2.0~3.6V,最高工作頻率可達72MHz,帶有4個片選的靜態存儲器控制器,可支持CF卡、SRAM、PSRAM、NOR/NAND存儲器,3個12位模數轉換器(A/D),2通道12位數模轉換器(D/A),12通道DMA控制器,多達112個I/O端口,支持I2C、USART、SPI、CAN、USB等多種通信接口.
GPS+GSM芯片采用SIMCOM公司的SIM868模塊,支持短信、GPRS、DTMF、TTS、HTTP、FTP、彩信、GPS、藍牙等功能.工作頻段在850/900/1800/1900MHz,GPRS傳輸率上下行都為85.6kbps,高精度GPS,水平位置<2.5m CEP,工作電壓3.4~4.4V.
SIM868芯片在STM32-F103ZET6發來的AT指令控制下將GPS所接受到的衛星定位信息通過通用分組無線服務技術(General Packet Radio Service GPRS)網絡發送出去.

圖2 1117穩壓芯片原理圖
跟蹤端設備為方便攜帶,采用3.7V鋰電池作為供電電源.而STM32-F103ZET6芯片與SIM868模塊的工作電壓范圍不一致,需對電源進行處理.
如圖2所示,采用LM1117-3.3穩壓芯片將5V電壓轉換成3.3V為STM32-F103ZET6芯片供電.
結合實際應用情況兩個電壓等級的電壓分配給不同的設備使用,保證系統的穩定運行.
串口通信可分為TTL標準和RS-232標準.TTL標準2.4~5V表示二進制邏輯1,而用0~0.5V表示邏輯0;RS-232標準為了遠距離傳輸及增強抗干擾能力,用-3~-15V表示二進制邏輯1,而用3~15V表示邏輯0.STM32芯片一般采用TTL電平標準,本設計中采用MAX3232芯片對TTL及RS-232電平的信號進行轉換.其原理圖如圖3所示
GPRS網絡方案:采用GPRS網絡傳送數據以取代短信可以增加信息傳輸量,已有的多數解決方案是創建服務器提供固定IP地址用以接收數據,同時創建數據庫以保存數據,監護設備如果是移動上網設備,可隨時訪問固定IP地址的服務器,查詢數據庫來獲取跟蹤端發來的定位數據.這種解決方案服務器的開發成本及運行成本都比較高.
目前物聯網(Internet of Things IOT)平臺較多,本文選用ONENET作為物聯網接入平臺.ONENET是中國移動推出的物聯網開放平臺,提供全面完備的IOT云服務.支持EDP、MQTT、HTTP、Modbus、JT/T808、TCP透傳六種網絡接入協議.并提供相應的C語言版、Andriod版、Java版SDK.可創建觸發器、應用及連接第三方開發平臺.
本文采用EDP協議及對應的C語言版SDK,由STM32芯片控制SIM868通過GPRS方式接入物聯網.
接入前需注冊ONENET用戶,創建設備、添加APIKEY.創建成功可獲得設備ID及APIKEY.這兩項是接入物聯網所必須的識別驗證信息.
SIM868模塊發送短信、撥打電話、發送彩信、GPRS網絡鏈接等功能,是控制器通過串口發送AT指令實現的.STM32-F103ZET6芯片具備多個串口,ST公司為STM32提供的庫函數中有完整的可調用的串口庫函數,輔助快速編程實現串口通信.
建立GPRS鏈接需要發送的AT指令步驟如下:
AT+CGCLASS="B" //設置移動臺類別為"B"
AT+CGDCONT=1,"IP","CMNET" // PDP上下 文標識1,互聯網協議接入點名稱:CMNET
AT+CGATT=1 //附著 GPRS 網絡
AT+CIPCSGP=1,"CMNET" //設置為 GPRS 連接模式 ,接入點為CMNET
AT+CLPORT="TCP","2000" //獲取本地端口
AT+CIPMODE=1 //進入透傳模式
AT+CIPSTART="TCP","183.230.40.39","876" //設置服務器IP和端口
上述AT指令中涉及到的IP地址"183.230.40.39"及端口號"876"是ONENET提供的EDP協議下的IP地址及端口號,若采用其他協議應根據ONENET網站開發文檔做相應修改.若AT+CIPSTART指令發出后,返回"OK","CONNECT"則說明連接成功,網絡已準備好.

圖3 串口通信電平轉換電路原理圖
網絡準備好后,調用SDK中的Connect_RequestType1()函數,發送設備ID及APIKEY,請求物聯網設備的連接,若返回"0X20 0X02 0X00 0X00"說明連接設備成功.再調用PacketSavedataSimpleString()函數,該函數的功能是以字符串形式輸入數據,函數生成EDP協議格式的cJSON數據包.
實現ONENET物聯網上顯示地圖信息,需要上傳數據符合特定格式,開發文檔建議采用《設備終端接入協議-EDP》中TYPE1或TYPE3的方式上傳.本文采用TYPE1方式.具體發送字符格式為{"datastreams":[{"id":"location","datapoints":[{"value":{"lon":longi tude,"lat":latitude}}]}]}.其中longitude是SIM868測得的經度數據,latitude是SIM868測得的緯度數據.
數據接收:
控制SIM868模塊接收定位數據依然需要STM32通過串口發送AT指令完成,可以采用兩種命令語句獲得定位信息,第一種具體步驟如下:
AT+CGNSPWR=1 //打開GPS電源
AT+CGNSINF //接收GPS定位數據
返回+CGNSINF:<1>,<2>,<3>,<4>,<5>,<6>,<7>,
<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>,
<18>,<19>,
其中<1>表示GNSS運行狀態,值為1表示運行,值為0表示未運行;
<2>表示定位狀態,值為1表示已經定位,值為0表示尚未定位;
<3>表示UTC日期及時間;
<4>表示緯度;
<5>表示經度.
若簡單應用可只取前5個信息就能向物聯網平臺發送定位信息.
第二種具體步驟如下:
AT+CGNSPWR=1 //打開GPS電源
AT+CGNSTST=1 //接收NMEA-0183協議數據
返回為NMEA-0183協議數據.
目前有多種二維碼生成工具,可指向文本、網址、名片、圖片、微信、程序等.本文應用"草料二維碼"生成工具,生成一個指向文本的二維碼.文本內容記錄攜帶者家屬聯系方式、病史、家庭住址等信息.如圖4所示:

圖4 二維碼生成器
采用單面膠紙打印,粘貼在跟蹤端固定位置,便于掃描.
本文設計了一套基于STM32及物聯網的老年人追蹤定位系統,跟蹤端GSM芯片在STM32的控制下通過GPRS網絡發送GPS定位數據信息,并具備聲光報警及二維碼掃描功能;設備接入物聯網,可存儲定位數據,并在地圖上直觀顯示.綜合應用新技術為老年人追蹤定位提供解決方案.
[1]毛亞青,張立,黃凱,等.基于Cortex-A9的車間生產過程跟蹤管控終端設計[J].電子技術應用,2017,43(2):65-68.
[2]肖家問,茅勝榮,陳小平.低功耗遠程煙霧報警系統設計[J].微型機與應用,2017,36(2):96-99.
[3]譚欽紅,黃茂碟,張作運.基于Android的情報管理系統設計與實現[J].微型機與應用,2017,36(2):100-103.
[4]雷帆.基于GPRS網絡的智能閥門監控系統[J].自動化與儀表,2015,30(5):29-31.
[5]百度地圖Android SDK概述[OL].http://developer.baidu.com/map/sdk-android.htm.
[6]陳強.Android實例開發完全手冊[M].北京:人民郵電出版社,2012.
[7]王柯,張文詩,馬宏斌.基于Android平臺的移動GIS地圖服務模式研究[J].地理信息世界,2014,21(5):84-90.
吉林省教育廳"十二五"科學技術研究規劃項目(吉教科合字[2015] 第570號).
梁龍凱(1984-),男,碩士,助教,主要研究方向:檢測技術與自動控制.