当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:提出基于STM32和组态王停车场短信预约系统的设计思想,实现了PC机、STM32单片机和GSM模块之间的通信,完成了停车场短信预约系统的硬件设计和软件设计,并成功应用于立体停车场的智能控制系统。有利于提高停车场服务的智能化和人性化,更方便人们出行停车。系统以具有组态王的PC机作为上位机,以STM32F407ZGT6芯片设计的控制模块作为下位机,GSM模块为短信收发模块,通过组态王编写的监控界面进行停车场预约数据和信息的处理,实现以短信方式自动预约停车位的功能。该系统是对现有网上预约、电话预约方式的一种补充,对需要预约服务的场所具有一定的理论意义和实际应用价值。

引 言

近年来,随着城市的快速发展,中心城区的停车难问题日益凸显,停车资源没有得到有效利用是造成停车难的原因之一,而预约系统可以让用户与资源提供者进行远程交流,从而缓解这种供求矛盾。随着移动通信技术的快速发展,手机已经成为人们必备的通讯工具。将手机短信服务应用于预约系统,可以使服务更加人性化,更便于人们使用。基于 STM32 和组态王的停车场短信预约系统,让停车场真正实现智能化、人性化,使中心城区停车资源得到有效利用,对改善城区交通具有一定的积极作用。

1 系统结构设计与功能

本系统采用了ARMCor-tex-M4内核的STM32F407ZGT6作 为 主 控 芯 片 ,STM32F407ZGT6 是 意 法 半 导 体(STMicroelectronics)基于ARMCor-tex-M4内核推出的专门用于高性能、低成本、低功耗嵌入式领域的 32 位微处理器 [1]。采用SIMCOM公司的 SIM900A作为通信芯片,通过通信(GSM)模块与 STM32实现短信的发送和接受。基于FreeModbus协议的RTU模式的通信方式,通过RS232接口实现STM32单片机与组态王之间的通信,将短信内容和用户手机号码传给上位机组态王,并通过组态王对停车场进行监控,从而实现短信自动预约停车位的功能。该系统整体硬件结构设计如图 1所示。

该停车场短信预约系统的工作过程如下:当系统正常运行时,若客户需要提前预约停车位,可通过手机发送短信至系统设定的主机号码,通过GSM 网络和 SIM900A 短信收发模块接收预约短信,并通过 RS 232 接口与STM32 主机进行通信。该请求被 STM32 检测并产生一个中断,读取信息及用户号码, 并存储在寄存器中,通过FreeModbus 协议和 RS 232 接口将短信内容和用户号码传给组态王,组态王读取并记录用户号码。组态王软件通过查询停车位数据库,监测停车场车位数, 若有空余车位,则STM32 指令自动发送“预约成功”短信到客户手机上 ;若无空余车位,则发送“车位已满”短信。

基于STM32和组态王的停车场短信预约系统的设计

停车场短信预约系统主要由四个功能模块构成,即主控模块、通信(GSM)模块、电源模块、数据传输模块 [2]。主控模块采用STM32 作为主控芯片,来控制短信的收发与数据的传输 ;GSM 模块采用SIM900A 进行无线通信 ;电源模块采用12 V 独立电源和USB 接口(COM1)相结合的供电方式; 数据传输模块由两部分组成,STM32 与GSM 模块之间通过RS232 接口(COM3)实现通信,与 PC 机之间通过USB 转RS232 接口(COM2)实现通信。远程终端是手机和装有组态王的上位机(PC),将用户发送的信息和手机号码经过处理之后,储存下来,方便信息的查询。

2 软件设计

该系统以 MDK5 软件为开发平台,通过调用库函数的方法,进行程序设计,应用串口助手和 ModbusPoll 实现程序的设计和调试。

2.1 短信收发子系统的设计

为了实现STM32 与SIM900A 模块之间的数据传输,实现短信收发,首先要对 STM32 进行初始化,然后配置系统时钟、中断控制器、输入输出的GPIO 以及相应的串口。STM32 初始化流程图如图 2 所示。参数配置时,需要对照原理图进行编写,查看芯片端口的使用情况及其作用,然后对该子系统进行配置,以保证模块能够正常运行。

基于STM32和组态王的停车场短信预约系统的设计

短信功能的实现主要涉及到两个关键部分,一个是 AT 命令,另一个是串口的读写。AT 命令是主控芯片STM32和SIM900A之间的通信协议, 以此完成对 SIM900A的控制。短信的收发主要有两种模式,一种是文本模式,该模式只支持英文内容,另一种是PDU 模式[3]。本系统选择 PDU模式进行短信的收发。

SIM900A的短信功能主要分为两个部分,分别为读取短信和发送短信。接收短信的设置命令为AT+CMGR,我们将接收到的短信内容放在一个长度为 30的BUF中,再将BUF 写入到串口 3中,然后再读取串口 3中的内容,这样,短信的编号就获取完毕。获取了短信的编号之后,就能去获取短信的具体内容,而短信的内容则存放在ALPHA中,它处于响应的第三个位置,通过 SIM_AT_RESPONSE(1)函数,检查GSM 模块发送过来的数据,及时上传给电脑,就获取了短信的内容。发送短信的设置命令为 :AT+CIPSEND,首先将发送短信的电话号码存入到一个BUF中,将这个BUF 写入到串口3中,以此获取手机号码。最后将固定的短信内容写到串口3, 通过 SIM900A发送给手机用户,具体短信发送接收流程图如图 3所示[4]。

该系统若要实现自动预约的功能,则在实现短信收发功能的基础上,通过Modbus 协议使STM32 与上位机组态王进行通信,从而实现短信的自动读取和发送。短信内容是根据组态王软件对停车场车位使用情况的监控而选择发送写好的固定信息,若监控显示有空余车位,则发送“预约成功,欢迎您的 光临”,若监控显示无空余车位,则发送“对不起,车位已满”。 该子系统主程序流程图如图 4 所示。

基于STM32和组态王的停车场短信预约系统的设计

基于STM32和组态王的停车场短信预约系统的设计

2.2 STM32与组态王通信子系统的设计

FreeModbus 是一个针对嵌入式应用的免费(自由)的通 用 Modbus 协议 的 移 植。 目前,Modbus 协议 的 异 步串行传输通信方式, 对应的通信模式是 ModbusRTU 和ModbusASCII[5]。组态王内置的单片机通信协议都有这两种模式,ASCII 码协议内容较为简单,但其传输数据类型的局限性大,可用于传输数据的寄存器少,而本系统要求进行字符的发送和接收,传输的数据量较大,因此我们选择了ModbusRTU 模式对控制器 STM32 进行配置。

为了实现组态王和 STM32 单片机之间的通信,在设计中, 选择移植 FreeModbus 协议,通过程序设计将STM32 配置为FreeModbus 从机,可以通过组态王进行数据的读写。

STM32 和组态王的通信子系统可分为 :初始化模块、数据接收模块和数据处理及发送模块 [6]。初始化模块主要完成波特率设置、串口中断和定时器设置。其中,ModbusRTU 是基于串口的数据传输模式,为了实现组态王和STM32 单片机之间的通信,必须设置相同的传输模式和串口参数。数据接收模块主要完成串口接收中断和信息帧接收超时的定时器中断处理。数据处理及发送主要根据信息帧完成相关的工作及给主机回复的相关信息。其配置程序流程图如图 5 所示。

基于STM32和组态王的停车场短信预约系统的设计

2.3 STM32与组态王通信子系统的调试


采用 ModbusPoll 作为 RTU 主站软件,用户可以通过该 人机界面选择从站地址来查看下位机的操作(读寄存器操作和 写寄存器操作)。ModbusRTU 的测试目标是 RTU 主站能否对 RTU 从站发出请求帧完成相应功能,从站能否解析请求帧及 时响应主站请求,发出应答帧。与 PC 机相连之后,分别对两 种功能服务进行若干测试,并根据 ModbusRTU 协议的内容 验证所得到的结果是否正确。主站PC 机通信测试如图6所示。

基于STM32和组态王的停车场短信预约系统的设计


3 组态监控界面的设计 

进入组态王运行系统,显示出组态王运行系统画面,如 图 7 所示,即可看到预约指示灯按照预约状态动态变化和实 时的车位数量信息,达到了实时监控的预期目标,保证系统 正常运行。通过组态监控画面实时反映预约系统的运行状态, 当有预约信息到来时,“请求预约”指示灯 1 闪烁,“客户信息”处显示当前预约手机号,没预约时指示灯亮绿灯。发送“预约 已成功”信息时,“预约已成功”指示灯 2 闪烁,发送成功亮 绿灯,发送失败亮红灯;发送“车位已满”信息时,“车位已满” 指示灯 3 闪烁,发送成功亮绿灯,发送失败亮红灯。

基于STM32和组态王的停车场短信预约系统的设计



4 结 语

组态王和 STM32 单片机以及 GSM 模块可以组合成一套 经济可靠的数据采集、信息传输系统,应用于停车场,管理 人员在监控室就可以了解整个停车场的使用情况,对停车位 进行远程监测、调度,降低了劳动成本、提高工作效率,同 时使停车资源得到有效利用,对改善城区交通具有一定的积极 作用。该系统还可以推广应用到其他需要短信预约系统的场所, 这种系统不但可靠、实用、经济,而且设计简单,易于扩充, 具有较高的推广价值。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭