999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

電動自行車定位監測系統的設計

2022-05-20 10:12:58張東欽黃麗萍李慧敏
物聯網技術 2022年5期
關鍵詞:單片機系統

張東欽,黃麗萍,李慧敏,汪 源

(1.三亞學院 理工學院,海南 三亞 572022;2.三亞市第一中學,海南 三亞 572022)

0 引 言

北斗衛星導航系統(BeiDou Navigation Satellite System,BDS)是我國以社會經濟發展情況和國家安全為出發點,自主研發并獨立運行的一套全球衛星導航系統。隨著中國衛星技術的不斷完善,如今BDS已被廣泛應用于國家安全、貨物運輸、車輛監測等方面。早在20世紀80年代,我國就開始了基于GPS的汽車監測系統的研究。如今信息化時代已經來臨,在衛星技術不斷完善、4G網絡普遍運用以及地理信息系統(GIS)技術逐漸成熟的條件下,國內的汽車監測系統迅速發展。截至2020年,我國電動自行車保有量已經超過2.5億輛。在電動自行車數量飛快增長的同時,交通安全、電動自行車失竊等問題也隨之而來。在這種車輛劇增和通信發達的數字化環境下,對電動自行車的定位監測系統的需要尤為迫切。如何將車輛定位技術和無線傳輸數據技術融合到車輛監測中,成為了交通現代化管理的關鍵。

本文以北斗衛星導航系統的定位技術為核心,利用STM32F103RBT6單片機作為數據處理模塊,通過GPRS通信技術將定位數據無線傳輸到基于OneNET的車輛監測平臺,在百度地圖上查看車輛的實時位置,實現車輛監測的效果。

1 系統的總體設計

電動自行車監測系統分別由車載終端和車輛監測平臺兩部分組成,其中車輛監測平臺又包括服務器和百度地圖。車載終端利用北斗衛星定位模塊獲取車的定位信息,再進行衛星定位數據的提取和使用無線傳輸技術發送有效定位數據到服務器,服務器接收到數據流后進行解析,將解析的數據作為百度地圖的輸入參數,最后在車輛監測平臺的百度地圖上查看車輛定位。系統設計要求如下:(1)定位數據的查看:用戶能夠通過監測平臺的百度地圖實時查看車輛位置;(2)定位數據的備份:用戶能夠下載已上傳到服務器端的定位數據,進行數據備份,方便用戶日后查閱;(3)監測平臺百度地圖的操作:除了放大和縮小地圖的這些基本功能,用戶還能查看標記點的坐標和信息。

監測系統的車載終端首先要提供穩定的供電讓各模塊處于工作狀態,其次是北斗衛星定位信息的收集和處理,最后是數據的無線傳輸;車輛監測平臺的服務器主要是解析車載終端發送的數據,并將解析數據作為地圖的輸入參數在車輛監測平臺的百度地圖上顯示。系統的總體功能框架如圖1所示。

圖1 系統總體功能框架

根據系統框架的基本功能,本設計的車載終端由穩壓電路、北斗衛星定位模塊、控制核心MCU以及GPRS無線通信模塊這四部分構成。其中穩壓電路負責各模塊的供電;北斗衛星定位模塊負責衛星信息的收集;MCU負責衛星定位信息的提取和處理;GPRS無線通信模塊負責傳輸服務器端接收的有效數據。車載終端基本框架如圖2所示。其中,北斗衛星定位模塊選擇ATGM332D-5N-31的高性能全星座定位模塊,該模塊不僅支持北斗和GPS衛星導航系統的單系統定位,也支持多種組合的衛星系統定位。控制核心MCU選用32位的STM32F103RBT6最小系統單片機,它可以直接處理32位的定位數據,能夠滿足本設計的高精度的要求。GPRS無線通信模塊采用基于MT2503D芯片開發的四頻段GSM/GPRS引擎的多功能模塊MC20,將數據進行無線傳輸。

圖2 車載終端基本框架

監測平臺選擇OneNET,它是由中國移動打造的PaaS(Platform as a Service)物聯網開放平臺,不僅向用戶提供服務器的公網IP,還提供了硬件的開發接口,可以避免獨自開發物聯網APP的難題。根據物聯網開發平臺提供的硬件接口和接入協議,可以使用車載終端控制GPRS無線通信模塊以HTTP協議連接開發平臺,達成將數據傳到云端的效果。

2 車載終端硬件設計

車載終端負責實現北斗定位數據的獲取、數據的解析和數據的無線傳輸三個功能。根據設計需求,需要在各集成模塊的基礎上進行設計,使各模塊能夠相互配合工作。車載終端的硬件部分主要負責使用北斗衛星定位模塊來獲取車的定位數據,并經過處理后將數據通過GPRS模塊發送到服務器。整個硬件分為穩壓電路、主控模塊、定位模塊、通信模塊四部分。車載終端使用LM7805作為穩壓電路,采用STM32F103RBT6最小系統板作為主控MCU,通過串口通信的方式與ATGM332D-5N-31定位模塊和MC20通信模塊配合實現對車的監測功能。

硬件系統設計框架如圖3所示。其中穩壓電路主要負責為各模塊提供工作狀態的電壓;ATGM332D-5N-31定位模塊使用射頻天線接收到定位數據后,將定位數據通過串口UART1傳輸數據給STM32F103RBT6主控芯片,主控芯片再通過串口UART2將數據傳給MC20通信模塊進行GPRS數據傳輸。為方便硬件模塊的調試和拆卸,在使用立創EDA畫本系統原理圖時,用各模塊排針對應的排母來代替各模塊的引腳。

圖3 硬件系統設計框架(實線表示電源線,虛線表示數據線)

3 軟件設計

STM32F103RBT6最小系統作為本設計的主控MCU,外接ATGM332D-5N-31模塊和MC20模塊,主要負責讓各個模塊相互配合工作。本設計的程序開發主要使用KeilμVision5進行編寫,主程序的設計流程如圖4所示。可以看出,整個程序的基本流程是:首先對單片機最小系統各模塊進行初始化,使單片機的各個外設模塊能夠正常工作;之后是對定位數據的提取和解析,通過編程設置函數判斷的條件,若數據完成提取和解析后再進行發送。在編程中使用軟復位的方法進行報錯,在調試的時候通過這種方法可以提高效率。

圖4 主程序設計流程

3.1 串口初始化

由于本設計的MCU在每次串口接收到數據時就要進行處理,串口中斷是必不可少的一個功能,因此要想讓串口UART1符合本設計獲取定位數據的要求,在初始化方面就要把串口的RX的GPIO接口配置成浮空輸入模式。中斷方面使用上文所描述的結構體配置方法來配置串口UART1的NVIC,設置中斷搶占優先級和子優先級。最后再將串口UART1配置成9600波特率、8位數據字長、1個停止位、無奇偶校驗位、無硬件控制流的收發模式。串口UART2與串口UART1的配制方法大同小異,只是在GPIO接口和名稱上略微作調整。中斷也是搶占優先級3和子優先級3,一般在程序上不發生沖突,由于中斷級別相同,在兩種中斷同時發生的情況下,不會相互打斷中斷,會等到一個中斷執行完成后再執行另一個中斷。

3.2 LED指示燈初始化

LED的初始化較為簡單,只須配置LED所對應的GPIO的結構體GPIO_InitTypeDef,將LED對應的具體GPIO接口設置成推挽輸出方式以及端口速度為50 MHz,最后調用初始化函數GPIO_Init()即可。

3.3 定位信息的獲取

NMEA 0183是美國國家海洋電子協會(National Marine Electronics Association)為海用電子設備制定的標準格式。目前已成了GPS/BDS導航設備統一的RTCM(Radio Technical Commission for Maritime services)標準協議。該協議包含了7種定位數據形式,其中“推薦定位信息”$BDRMC中包含了時間、經緯度等多種有效的信息,具體信息見表1所列。

表1 $BDRMC數據分析表

由于定位模塊連接著UART1的RX接口,因此須將定位數據的提取函數寫在串口中斷函數中。首先定義一個8位的變量res作為串口接收的每幀數據和數據緩沖的數組USART_RX_BUF[];再編寫一個結構體_SaveData來儲存定位數據中的各項參數。

程序如下所示:

設計好結構體后就是串口中斷函數的編寫,其目的是將$BDRMC的這條語句提取出來。硬件方面定位模塊的TX引腳和單片機串口UART1的RX是相連接的,因此調用官方函數庫中的USART_GetITStatus()函數,以UART1引腳地址USART1和接收中斷標志位USART_IT_RXNE作為變量輸入來判斷單片機的接收引腳RX是否接收到消息。

若接收到消息就利用USART_ReceiveData()將收到的消息賦值給先前定義的變量res。由于串口接收的數據是一幀一幀接收的,在每一次接收到一幀數據的同時也需要將變量res賦值給接收緩沖數組USART_RX_BUF[];當接收到的字符為$時,利用if函數,讓變量pointl=0,再通過pointl++這條語句將整條數據存進緩沖數組。

使 用 if(USART_RX_BUF[0] == '$' && USART_RX_BUF[4] == 'M' && USART_RX_BUF[5] == 'C'),這條語句能夠實現篩選$BDRMC這條關鍵定位信息。當串口接收到字符為“/n”即換行字符時,就說明此時的$BDRMC信息已經全部存入緩沖數組,可以將結構體內的GPS_Buffer用初始化函數memset()清零,再使用復制函數memcpy()將緩沖數組區的數據存到GPS_Buffe里保存并將isGetData置位。再次使用初始化函數memset()把緩沖數組的數據清零,讓變量pointl重新變為0后開始下次串口的接收。

結構體的獲取定位標志位isGetData置位后,就能夠跳入主函數的parseGpsBuffer()函數,此函數的功能是將$BDRMC定位信息里的各個參數填寫到結構體。

首先是定義兩個指針subString和subStringNext,代表的是地址。通過if (Save_Data.isGetData)后將定位標志位isGetData復位,然后進入for(i)循環(i從0開始)。第一次for循環使用subString = strstr(Save_Data.GPS_Buffer, ",")語句,目的是獲取結構體中GPS_Buffer的數據第一個逗號“,”的位置。第二次for循環中使用subString++來獲取逗號后的有效數字的位置。利用 subStringNext = strstr(subString, ",")語句來獲取第二個逗號的位置,通過switch(i)函數配合復制 函 數“case 1 :memcpy(Save_Data.UTCTime, subString,subStringNext - subString);break; ”的語句將兩逗號之間的數據寫進Save_Data結構體的UTCTime中。

寫入成功后利用遞歸算法將subStringNext賦值subString,并使解析數據標志位isParseData置位。如此循環六次直到將結構體的最后參數E_W數據寫入,再使用if語句判斷usefullBuffer[0]存的是A還是V來給結構體中的isUsefull賦值,最后printGpsBuffer()函數的功能是打印結構體的各個成員的數據,并將其發送到服務器。

3.4 定位信息的傳輸

數據的處理和發送主要在postGpsDataToOneNet()函數中,其輸入變量包括服務器端API_KEY、設備ID以及結構體Save_Data的經緯度參數。

要想將數據傳輸到服務器,首先就要對經緯度進行處理,本設計的經度處理函數和緯度處理函數分別為longitudeToOnenetFormat()和 latitudeToOnenetFormat()。兩個函數的轉換原理相同,Save_Data結構體中存儲的是十進制的坐標,而OneNet物聯網開發平臺接收的是ddmm.mmmm(度,分,秒)格式的經緯度,其中分和秒為六十進制,度為十進制。兩個函數就是利用編程算法把十進制的定位數據轉換成十進制(度)和六十進制(分,秒)的定位數據,以結構體的longitude和latitude作為變量輸入,輸出OneNet物聯網開發平臺識別的定位數據。

處理完數據后通過串口UART2對MC20模塊發送AT指令進行連接,連接成功后再使用測試的AT指令進行數據傳輸設置,然后開始HTTP的報頭操作,最后將轉換好的經緯度坐標轉換成JSON字符串形式,以HTTP協議進行數據的傳輸,發送到服務器端。

4 實際測試

系統測試將定位模塊和MC20模塊集成到一塊PCB板上,在測試時通過穩壓電路為系統提供12 V直流電壓的輸入,同時使用有源天線對北斗衛星信號進行收集。圖5(a)為在學校操場進行測試并在監測平臺中實時顯示的定位信息和運動軌跡,圖5(b)為系統測試同步到手機端某跑步軟件顯示的運動軌跡,通過兩圖的對比說明了本定位監測系統功能的實現效果和穩定性。

圖5 系統測試定位信息及運動軌跡

5 結 語

利用北斗定位技術、單片機技術、無線通信技術設計了一款電動自行車定位監測系統。利用北斗衛星定位模塊實現定位數據的獲取,通過單片機串口UART1將數據傳輸到STM32F103RBT6最小系統單片機;然后STM32F103RBT6最小系統單片機接收到數據后進行有效定位數據的提取和處理,再通過串口UART2將處理的定位數據發到GPRS模塊;最后編寫AT指令讓GPRS模塊將接收到的定位數據發送到車輛監測平臺,平臺接收到數據后開始解析其數據流,并在監測平臺的百度地圖上顯示電動自行車的實時定位和運動軌跡。

猜你喜歡
單片機系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于PowerPC+FPGA顯示系統
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
半沸制皂系統(下)
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 青草国产在线视频| 性视频一区| 综合色88| 不卡国产视频第一页| 国产第一色| 日本五区在线不卡精品| 在线观看亚洲天堂| 亚洲最大福利视频网| 中文字幕天无码久久精品视频免费| 久久成人免费| 国产欧美日韩va另类在线播放| 一级片一区| 国产喷水视频| 成人免费午夜视频| 18禁不卡免费网站| 一区二区理伦视频| 亚洲女人在线| 欧美午夜小视频| 波多野结衣中文字幕一区二区| 亚洲欧洲免费视频| 亚洲高清国产拍精品26u| 国产成人一二三| 欧美综合成人| 视频一区视频二区日韩专区 | 欧美亚洲国产一区| 久久青青草原亚洲av无码| 永久免费无码日韩视频| 中文字幕在线观看日本| 日韩不卡高清视频| 在线精品欧美日韩| 久草视频福利在线观看| 国产精品分类视频分类一区| 国产靠逼视频| yjizz视频最新网站在线| 亚洲无码高清一区二区| 在线欧美一区| 超碰aⅴ人人做人人爽欧美 | 国产午夜无码专区喷水| 黄色成年视频| 中文一区二区视频| 久久这里只精品国产99热8| 国产在线视频欧美亚综合| 2020久久国产综合精品swag| 成年网址网站在线观看| 中文无码影院| 97狠狠操| 成人福利在线视频| 成人午夜视频免费看欧美| 亚洲中文字幕久久无码精品A| 精品午夜国产福利观看| 精品视频免费在线| 毛片网站在线播放| 亚洲熟女中文字幕男人总站| 91色综合综合热五月激情| 国产特级毛片| 99视频国产精品| yy6080理论大片一级久久| 国产精品亚洲片在线va| 亚洲美女一区| 亚洲欧洲国产成人综合不卡| 国产第三区| 伊人国产无码高清视频| a级毛片免费网站| 国产成人艳妇AA视频在线| 成人午夜视频网站| 亚洲福利片无码最新在线播放| 四虎亚洲精品| 亚洲人在线| 国产一区二区人大臿蕉香蕉| 亚洲av综合网| 欧美激情综合| 青青草原偷拍视频| 一级毛片免费播放视频| 成人午夜视频免费看欧美| 一级毛片免费观看久| 久久网综合| 久久黄色视频影| www.99精品视频在线播放| 国产亚洲精品自在久久不卡| 手机在线免费毛片| 国产精品国产三级国产专业不| 久久一本日韩精品中文字幕屁孩|