电动自行车定位监测系统的设计

阅读: 评论:0

2022年 / 第5期  物联网技术
Comprehensive Perception
11
0 引 言
北斗卫星导航系统(BeiDou Navigation Satellite System, BDS )是我国以社会经济发展情况和国家安全为出发点,自主研发并独立运行的一套全球卫星导航系统[1]。随着中国卫星技术的不断完善,如今BD
S 已被广泛应用于国家安全、货物运输、车辆监测等方面。早在20世纪80年代,我国就开始了基于GPS 的汽车监测系统的研究。如今信息化时代已经来临,在卫星技术不断完善、4G 网络普遍运用以及地理信息系统(GIS )技术逐渐成熟的条件下,国内的汽车监测系统迅速发展。截至2020年,我国电动自行车保有量已经超过2.5亿辆[2]。在电动自行车数量飞快增长的同时,交通安全、电动自行车失窃等问题也随之而来。在这种车辆剧增和通信发达的数字化环境下,对电动自行车的定位监测系统的需要尤为迫切。如何将车辆定位技术和无线传输数据技术融合到车辆监测中,成为了交通现代化管理的关键[3-4]。
本文以北斗卫星导航系统的定位技术为核心,利用STM32F103RBT6单片机作为数据处理模块,通过GPRS 通信技术将定位数据无线传输到基于OneNET 的车辆监测平台,在百度地图上查看车辆的实时位置,实现车辆监测的效果。
1 系统的总体设计
电动自行车监测系统分别由车载终端和车辆监测平台两神仙池风景区
部分组成,其中车辆监测平台又包括服务器和百度地图。车载终端利用北斗卫星定位模块获取车的定位信息,再进行卫星定位数据的提取和使用无线传输技术发送有效定位数据到服务器,服务器接收到数据流后进行解析,将解析的数据作为百度地图的输入参数,最后在车辆监测平台的百度地图上查看
车辆定位。系统设计要求如下:(1)定位数据的查看:用户能够通过监测平台的百度地图实时查看车辆位置;(2)定位数据的备份:用户能够下载已上传到服务器端的定位数据,进行数据备份,方便用户日后查阅;(3)监测平台百度地图的操作:除了放大和缩小地图的这些基本功能,用户还能查看标记点的坐标和信息。
监测系统的车载终端首先要提供稳定的供电让各模块处于工作状态,其次是北斗卫星定位信息的收集和处理,最后是数据的无线传输;车辆监测平台的服务器主要是解析车载终端发送的数据,并将解析数据作为地图的输入参数在车辆监测平台的百度地图上显示。系统的总体功能框架如图1所示。
根据系统框架的基本功能,本设计的车载终端由稳压电路、北斗卫星定位模块、控制核心MCU 以及GPRS 无线通信模块这四部分构成。其中稳压电路负责各模块的供电;北斗卫星定位模块负责卫星信息的收集;MCU 负责卫星定位信息的提取和处理;GPRS 无线通信模块负责传输服务器端接收的有效数据。车载终端基本框架如图2所示。其中,北斗卫星定位模块选择ATGM332D-5N-31的高性能全星座定位模块,该模块不仅支持北斗和GPS 卫星导航系统的单系统定位,也支持多种组合的卫星系统定位。控制核心MCU 选用32位的STM32F103RBT6最小系统单片机,它可以直接处理32位的定位数据,能够满足本设计的高精度的要求。
电动自行车定位监测系统的设计
张东钦1,黄丽萍2,李慧敏1,汪 源1
(1.三亚学院 理工学院,海南 三亚 572022;2.三亚市第一中学,海南 三亚 572022)
摘 要:
在电动自行车领域交通安全、失火盗窃等问题日益凸显,对电动自行车的定位监测系统的需要尤为迫切。基于北斗卫星定位技术、单片机技术、无线传输技术,设计了一款基于北斗卫星定位的电动自行车监测系统。系统分为STM32F103RBT6最小系统单片机、BDS 接收模块、GPRS 无线传输模块。通过C 语言对系统软件编程设计,实现了车辆定位的获取、定位信息处理、信息无线传输以及基于OneNET 的车辆监测平台的百度地图车辆位置显示。系统具有实用性强、体积小、定位精度准确、开发性强等特点,对加强电动自行车的管理、完善智能交通系统有一定的实践和推广价值。
温州台风网关键词:
电动自行车;定位监测系统;北斗卫星定位技术;STM32F103RBT6;GPRS ;OneNET 中图分类号:
TP274;TP393      文献标识码:A      文章编号:2095-1302(2022)05-0011-04DOI :10.16667/j.issn.2095-1302.2022.05.003
收稿日期:2021-09-03  修回日期:2021-10-08
基金项目:2021年海南省高等学校教育教学改革重点项目
(Hnjg2021ZD-42)
资助;2019年海南省自然科学基金项目(119MS074)资助;2021年国家级大学生创新创业训练计划项目(202113892012)
资助
物联网技术  2022年 / 第5期
太原天气预报一周7天12GPRS 无线通信模块采用基于GSM/GPRS 引擎的多功能模块块的基础上进行设计,使各模块能够相互配合工作。车载终端的硬件部分主要负责使用北斗卫星定位模块来获取车的定位数据,并经过处理后将数据通过GPRS 模块发送到服务器。整个硬件分为稳压电路、主控模块、定位模块、通信模块四部分。车载终端使用LM7805作为稳压电路,采用STM32F103RBT6最小系统板作为主控MCU ,通过串口通信的方式与ATGM332D-5N-31定位模块和MC20通信模块配合实现对车的监测功能[7-8]。
硬件系统设计框架如图3所示。其中稳压电路主要负责为各模块提供工作状态的电压;A TGM332D-5N-31定位模块使用射频天线接收到定位数据后,将定位数据通过串口UART1传输数据给STM32F103RBT6主控芯片,主控芯片再通过串口UART2将数据传给MC20通信模块进行GPRS 数据传输。为方便硬件模块的调试和拆卸,在使用立创EDA 画本系统原理图时,用各模块排针对应的排母来代替各模块的引脚。
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
2022年 / 第5期  物联网技术
Comprehensive Perception
13
Electronics Association )为海用电子设备制定的标准格式。目前已成了GPS/BDS 导航设备统一的RTCM (Radio Technical Commission for Maritime services )标准协议[9-10]。该协议包含了7种定位数据形式,其中“推荐定位信息”$BDRMC 中包含了时间、经纬度等多种有效的信息,具体信息见表1所列。
表1 $BDRMC 数据分析表
编 号代 号意 义格 式案 例1UTC (时/分/秒)
时间
Hhmmss 045635.000泰安天气预报
2定位状态定位是否有效
A/V
A
3Latitude 纬度 1820.58271
4纬度半球南北半球N/S
N
5Longitude 经度 10933.10625
6经度半球东经西经E/W E 7
地面速率
速度
0.12
由于定位模块连接着UART1的RX 接口,因此须将定位数据的提取函数写在串口中断函数中。首先定
义一个8位的变量res 作为串口接收的每帧数据和数据缓冲的数组USART_RX_BUF[];再编写一个结构体_SaveData 来储存定位数据中的各项参数。
程序如下所示:
typedef struct SaveData { char GPS_Buffer[GPS_Buffer_Length]; char isGetData; //获取数据标志位 char isParseData;
//解析完成标志位
char UTCTime[UTCTime_Length]; //UTC 时间
char latitude[latitude_Length]; //纬度
char N_S[N_S_Length];
//南北半球N/S
char longitude[longitude_Length]; //经度
char E_W[E_W_Length]; //东西经E/W
char isUsefull; //定位数据是否有效
} _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 里保存并将is
GetData 置位。再次使用初始化函数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 物联网开发平台接收的是 (度,分,秒)格式的经纬度,其中分和秒为六十进制,度为十进制。两个函数就是利用编程算法把十进制的定位数据转换成十进制(度)和六十进制(分,秒)的定位数据,以结构体的longitude 和latitude 作为变量输入,
物联网技术  2022年 / 第5期
Comprehensive Perception
14输出OneNet 物联网开发平台识别的定位数据。
东澳岛自驾游怎么去处理完数据后通过串口UART2对MC20模块发送AT 指令进行连接,连接成功后再使用测试的AT 指令进行数据传输设置,然后开始HTTP 的报头操作,最后将转换好的经纬度坐标转换成JSON 字符串形式,以HTTP 协议进行数据的传输,发送到服务器端。
4 实际测试
系统测试将定位模块和MC20模块集成到一块PCB 板上,在测试时通过稳压电路为系统提供12 V 直流
电压的输入,同时使用有源天线对北斗卫星信号进行收集。图5(a )为在学校操场进行测试并在监测平台中实时显示的定位信息和运动轨迹,图5(b )为系统测试同步到手机端某跑步软件显示的运动轨迹,通过两图的对比说明了本定位监测系统功能的实现效果和稳定性。
图5 系统测试定位信息及运动轨迹
5 结 语
利用北斗定位技术、单片机技术、无线通信技术设计了一款电动自行车定位监测系统。利用北斗卫星定位模块实
现定位数据的获取,通过单片机串口UART1将数据传输到STM32F103RBT6最小系统单片机;然后STM32F103RBT6最小系统单片机接收到数据后进行有效定位数据的提取和处理,再通过串口UART2将处理的定位数据发到GPRS 模块;最后编写A T 指令让GPRS 模块将接收到的定位数据发送到车辆监测平台,平台接收到数据后开始解析其数据流,并在监测平台的百度地图上显示电动自行车的实时定位和运动轨迹。
注:本文通讯作者为汪源。
参考文献
[1]肖秀娟. 基于北斗卫星定位的车辆管理系统[D].广州:华南理工
大学,2018.
[2]林虹,曹开颜. 2020年我国电动自行车电池市场现状与展望[J].电池工业,2020,24(1):47-49.
[3]朱建安,戴帅,朱新宇.电动自行车交通事故特征与安全改善对策[J].城市交通,2018,16(3):15-20.
[4]侯铮.电动自行车盗窃案件侦防对策研究[J].河南司法警官职业学院学报,2020,18(3):93-98.
[5]袁兴,邓成中,谭天,等.基于M5310A 与OneNET 云平台的智能家居控制系统[J].物联网技术,2021,11(4):74-77.
[6]吕舒宏,路来聪,朱书慧.基于OneNet 的农机物联网定位和监控系统设计[J].电子测试,2021,28(10):23-24.
[7]张志远,杨永康,刘明鑫,等.基于STM32的冷库环境远程监测系统[J].物联网技术,2021,11(11):11-15.
比利时足球明星[8]黄晖,余继成,肖春明,等.基于STM32的扬尘监测系统设计[J].物联网技术,2020,10(12):15-17.
[9]魏荣灏,张坤军.海洋测绘常用NMEA 0183数据协议格式解析[J].浙江水利科技,2020,48(1):64-65.
[10]周兰兰,曾水平.基于NMEA-0183协议的导盲仪定位信息采集
与解析系统[J].工业控制计算机,2021,34(2):41-42.
作者简介:汪 源(1984—),男,安徽歙县人,三亚学院理工学院副院长,研究方向为电子技术。
示温湿度值,通过Android 可以调整设定的阈值,若检测值超过阈值则进行降温处理,实现智能化。本设计具有一定的推广价值。
注:本文通讯作者为王亓剑。
参考文献
[1]王志良,刘欣,刘磊,等. 物联网控制基础[M].西安:西安电子科技大学出版社,2014:152-187.
[2]刘光伟. 基于单片机的温室温湿度监测系统设计与实现[D].秦皇岛:燕山大学,2012.
[3]莫佳荣. 基于物联网温湿度测量系统的研制[D].广州:广东工业大学,2017.
[4]陆珂琳. 基于物联网的智能环境监控系统的设计与实现[D].南宁:广西大学,2016.
[5]王登宏,厉佳男,贺雪辉,等. 基于Arduino 的手机同步显示温湿度检测系统的设计与实现[J]. 工业控制计算机,2016,29(7):42-43.
[6]张毅刚. 单片机原理及应用[M].北京:高等教育出版社,2012:202-240.[7]杨旭东,刘一民,李伟,等. 家用电器与工业控制实用电路精选[M].北京:化学工业出版社,2003:156-200.
[8]黄佳遥. 基于Android 终端的物联网无线环境监测系统[J].电子技术与软件工程,2018,7(3):26-27.
[9]俞聪,范恩,俞哲彤. 面向Android 和Web 平台的温湿度云端监测系统[J].物联网技术,2021,11(8):29-32.
[10]郑阿奇. Android 实用教程[M].北京:电子工业出版社,2017.
作者简介: 王文秀,女,安徽六安人,主要研究方向为WSN 技术。
王亓剑(1986—),男,安徽临泉人,硕士,安徽新华学院讲师,主要研究方向为WSN 、RFID 技术。
(上接第10页)

本文发布于:2023-07-10 14:07:04,感谢您对本站的认可!

本文链接:http://www.035400.com/whly/2/521498.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定位   数据   系统   监测   模块
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2024-2030 Comsenz Inc.Powered by © 文化旅游网 滇ICP备2022007236号-403 联系QQ:1103060800网站地图