标题 | 智能停车与智能车锁的开发与实现 |
范文 | 纪鑫乐+刘尧猛+吴红霞+白馥齐 摘 要:为了更简便地使用停车位,满足车主的需求,基于 GPRS/GPS 技术开发了智能体车锁设备。硬件采用主控CPU为STM32F103C8T6,用于控制通过GPRS模块返回的GPS信息以及实现与串口数据的交互。在智能锁的设计上,通过 GPIO 接口,来控制两路继电器模块,实现智能车锁电机的正反转,从而实现车位锁的升起和落下。GPRS模块采用QUECTEL系列MC20CA-04-STD芯片,实现GPS信息的获取与传输功能。 关键词:GPRS/GPS;智能;车位锁;STM32 中图分类号:U491 文献标志码:A 0 引言 随着人们生活水平的提高,私家车已经逐渐普及到各家各户,停车位的需求也日益增加,而车主对哪个地方可以停车,哪个地方的车位已满完全不了解,造成了剩余停车位的浪费。基于这种现象,设计了智能体车锁,用于简化车主找车位的过程。智能体车锁可以通过手机APP将锁的位置和车位是否被使用告知车主,还可以通过手机APP控制车锁的开启与关闭,实现了车到锁开,车走锁关的功能。 1 主控制板的选用 该主板将GPRS模块与主控制模块结合在一起,内置串口2(UART2)实现了GPRS模块与主控CPU的数据交互,串口1(UART1)用于接到个人PC端,用于接收和发送数据。 主控CPU为STM32F103C8T6 单片机一颗。单片机实现了整个系统核心的枢纽, 实现对整个系统的把控,并完成对应的代码实现。引出来了多余的 GPIO 口,主要是方便用户进行二次开发。 MC20 模块一颗。MC20 支持 GSM/GPS/BD 功能,在设计当中充分考虑资源最大化,引出 GPS/BD 天线引脚和 GSM 天线引脚。用户可以实现利用 MC20 一颗芯片实现 GPRS 网络对 GPS/BD 数据的远程传输。MC20 支持北斗与 GPS 双模功能,模块也是默认采用 GPS 和 北斗都是支持的格式进行的设计。MC20 提供了一颗 LED 网络指示灯。主板返回GPS信息的实现。单片机在右下方引出了两个对应的 LED 灯,这两个灯主要是方便用 户进行 TCP 远程开关灯控制或者是短信控制 LED 灯功能,如图1所示。 2 主要功能的实现 完整的主控面板由一个3.7V、3000mAh的电源,一个J-LINK适配器,一个TTL转USB接口,两个用于实现电机的正反转的GPIO接口组成,如图2所示。 2.1 GPRS模块的实现 2.1.1 GPRS相关配置的实现 通过GPS/BD 天线引脚和 GSM 天线引脚,可以利用 MC20芯片实现GPRS 网络对 GPS/BD 数据的获取与传输。GPRS模块需要用AT指令对其进行配置。 1. AT+QGNSSC=1 对GPS模块上电 2. AT+QGNSSC? 检查上电情况 3. ATE0 關闭回显 4. AT+CSQ 检查CSQ(模块当前信号质量),可以利用手机APP查看 5. AT+CPIN? 检查SIM卡是否在位 6. AT+CREG? 是否注册GSM网络 7. AT+CGREG? 是否注册GPRS网络 8. AT+QISTAT 查询IP状态 9. AT+QIDEACT 关闭场景 10. AT+QIFGCNT=0 配置场景,为后面的数据连接做基础 11. AT+QICSGP=1,\042CMNET\042 接入APN 12. AT+QIREGAPP 开启移动场景 13. AT+QIACT PDP上下文激活 14. AT+QIDNSIP=1 使用IP连接还是域名连接,0是IP,1是域名 15. AT+QIOPEN=\042TCP\042,\042(要使用的域名)\042,\042(域名对应的端口号)\042 这里是需要登录的域名,输入域名及其端口号。 2.1.2 GPRS模块向CPU传输GPS数据的实现 主板内嵌串口2(UART2),可以将MC20模块获取的数据经过串口2传送到STM32 CPU控制的模块。 通过USART_SendData()函数将获取到的数据通过串口进行传输。 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) { /* Check the parameters */ assert_param(IS_USART_ALL_PERIPH(USARTx)); assert_param(IS_USART_DATA(Data)); /* Transmit Data */ USARTx->DR = (Data & (uint16_t)0x01FF); } 2.2 CPU主板部分功能的实现 主控CPU为STM32F103C8T6 单片机一颗。单片机实现了整个系统核心的枢纽, 实现对整个系统的把控,并完成对应的代码实现。 运用Rec_Server_Data()函数,对从服务器端接收端的数据进行处理: (1)如果在接收缓冲区RxBuffer中收到“up”字符串,表示将进行开锁动作,则将指示灯开启,同时将智能锁降下。 (2)如果在接收缓冲区RxBuffer中收到“down”字符串,表示将进行关锁动作,则将指示灯熄灭,同时将智能锁抬起。 void Rec_Server_Data(void) { …… if(strstr(RxBuffer,”up”)!=NULL) { LED1_ON(); OP_DOWN_ON(); Delay_nMs(100); OP_DOWN_OFF(); } else if(strstr(RxBuffer,”down”)!=NULL) { LED1_OFF(); OP_UP_ON(); Delay_nMs(100); OP_UP_OFF(); } …... } 3 智能车锁的打开与关闭 在手机APP端点击开锁(或关锁)按钮,会通过服务器端向主板发送一条“up”(“down”)字符串,主板通过GPIO端控制两路继电器的高低电平来实现电机的正反转,来实现智能锁的打开与关闭,如图3所示。 结语 测试结果表明,该系统可以完成预定的功能,可以正确地显示出车锁所在的位置,并可以通过手机端来控制在智能车锁的开启和关闭。此套系统简化了私家车车主找提车位难的问题,方便了人们的出行,还可以充分利用现有的停车位资源。 参考文献 [1]廖义奎.Cortex-M3之STM32嵌入式系统设计[M].北京:中国电力出版社,2012:4. [2][美] 拉伯罗斯(Jean J.Labrosse)著;宫辉,曾鸣,龚光华,等.译嵌入式实时操作系统[M].北京 :北京航空航天大学出版社,2012:11. [3]郭天祥,新概念51单片机C语言教程[M].北京:电子工业出版社,2009:9. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。