基于STM32单片机的智能防丢手环的设计与实现_第1页
基于STM32单片机的智能防丢手环的设计与实现_第2页
基于STM32单片机的智能防丢手环的设计与实现_第3页
基于STM32单片机的智能防丢手环的设计与实现_第4页
基于STM32单片机的智能防丢手环的设计与实现_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ⅰ基于STM32单片机的智能防丢手环的设计与实现摘要:如今,信息化时代正处于高速发展阶段,在新一代的信息技术手段中,物联网技术高速发展,占有了很大的市场份额,有着不可取代的地位。利用现代科学技术解决社会上关注的问题,也日渐成为了科技创新的一大重要意义。当今社会,老年人走失,幼童被拐等弱势群体遭遇危险的社会问题频频发生,为解了决诸如此类的问题,以提高弱势群体独自外出的安全性为目的,本项目基于STM32单片机,设计出一款智能型防丢手环,在用户外出遇到危险时,可以及时快捷地向家人或者朋友发送自己所处的位置信息,以寻求帮助,从而为弱势群体出行提供安全保障。本设计采用STM32作为控制芯片,外接GPS模块与GSM模块实现系统功能。系统的信息传输,即系统发送指定的定位信息到用户手机上是通过GSM模块。分部分设计系统软件,可以大大降低该系统的设计难度。该系统设计的智能手环定位等电子产品的工作时间长且较为稳定,数据不易改变,方便使用者外出携带。关键词:STM32;GPS模块;GSM模块1目录1绪论 绪论1.1研究背景社会的进步促进科学技术的发展,而科学技术的发展又反过来作用于人类社会,为人服务。现代生活随着科学技术的快速发展,“物联网”这一词语逐渐进入到我们的日常生活之中。但在我国商业发展的影响下,在展览馆内仍然有一些未能突破的技术难题,因而使得一些电子技术相关的产品没有融入到我们的日常生活中。所谓的“万物相联”,就是将所有实际存在的物体通过互联网将其连接在一起,将人这一主体与各种事物联系起来,并对所连接的事物或主体进行跟踪和搜索,从而使这些电子技术产品产生一定的效果并且可以实时检测到。在电子信息技术的发展与带动下,目前我们所使用的电子技术相关产品在日常工作和生活中也有了相应的位置与重要意义,同时也对社会通信水平的提高起到一定推动作用。例如,目前设计的多种智能手环、残疾人所使用的辅助拐杖以及日常生活中儿童所使用的智能手表都是为了解决生活中老人、儿童丢失或联系不方便这些基本问题而开发的。现在为止,单片机正在朝着更好的方向发展,我们日常所使用的电子产品,其未来将会更进一步向耗能较低、体积较小且容量较大、使用性能较高、出售价格较低等几个方面发展。STM32系列单片机的处理器实时性能较高、具有自动控制能量消耗以及比较独特等优点,能最大程度地集成整合、比较用户的开发、也可使该系统相关的电子产品快速地进入市场。1.2需求分析科学技术的重点是促进越来越多的电子产品的进步,从而更好地服务于人。在我们现在的日常生活中,诸如拐卖儿童、老年人流离失所的社会问题逐渐严重起来。本项目的设计灵感就来源于不久前发生在湖北省十堰市的一起真实事件,一位女大学生在其家附近的公园里晨跑,失踪遇害。而事件发生后,据女孩的父亲回忆,女孩曾给父亲打过电话,疑似求救,可能碍于女孩当时已经发现危险不方便说话,而父亲当时未能意识到女孩的处境,导致悲剧的发生。这一事件的发生立即引起广大网友对社会安全问题的讨论,同时引发了我的深入思考,如果可以拥有一款定位精准、方便实用的防丢装置,有时可以发挥出十分关键的作用,而目前我们用来防丢失的装置基本都存在一些问题,像是无法单独使用、无法准确定位、无报警示意等。基于科学技术为人们服务的目的和宗旨,该系统设计了一种智能型防丢失的装置,用来防止儿童的走失、老年人因记忆原因找不到家、弱势群体出门时存在的的安全隐患等一系列的社会问题,此类问题所涉及的电子产品将越来越受到当代人们的青睐。因此,基于STM32单片机设计出一款智能防丢手环有着非常现实的意义与社会需求。同时,该设计还可以进行其他方面的全面改造,使其既可以用于防止人员丢失,又可以用于防止物品丢失,在各种场合中都可以适用。例如机场行李的防丢、车库汽车的防盗以及日常物品的实时跟踪和用户出行的安全定位等,以此来实现产品的功能多样化。1.3论文结构安排本文共由六个章节组成,第一章讲述了本设计的课题背景与需求分析。第二章对部分主控硬件的选择进行了讨论,通过对比最终确立了硬件组成并且进行了原因分析,为后面章节的阐述奠定了基础。第三章则是将系统的电路拆分为几个具体的部分,分别展开介绍,阐述硬件的性能以及使用方法、注意事项等。第四章主要介绍该系统的软件编程,其中涉及该系统实现的方式与过程,系统开发环境、开发软件、程序流程图与核心代码等。第五章则是基于前两章的软硬件设计进行测试与误差分析。第六章对该系统的完成情况进行了总结,并简要介绍了对未来工作的期望以及努力方向。2方案的设计与论证2.1控制方案的设计2.1.1主控芯片的选择方案一:CPLD通过学习可以发现,在许多工业级生产制造的产业上,CPLD的应用比较广泛。相比于其他微控制器,CPLD的一大显著特征就是规模大,密度高,稳定性好。在日常生产生活中,很多复杂的功能都可以通过CPLD实现,具备较为丰富的输入输出扩展接口,适用于一些大型的控制系统。方案二:STC89C52单片机由于在大学期间有接触过51单片机,对它的原理以及使用方法都较为熟悉,而相比于AT89C52单片机而言,STC89C52在性能上要更胜一筹,主要表现在它有较强的抗干扰能力上。其内部具有程序存储器以及512字节的随机存储器,因而可以通过串口向单片机里下载程序,并且基于51单片机结构简单,可移植性好等特点,十分适合用于实验开发。方案三:STM32单片机STM32系列处理器,其极高的性能,强大的用户基础,全面的技术文档等优点被越来越多的电子工程师所青睐,另外还拥有合理的外设、功耗,以及价格。其中,F103系列“增强型”芯片更是成为同类产品中性能最高的微处理器,数据处理速度快、实时性强、能量消耗控制性能高等特点使得其在众多微控制器中脱颖而出。使用该款芯片设计出的产品能够在最大程度上集成整合,同时开发较为容易,并且随着社会的发展,该类芯片设计开发出的产品灵活性较高,能够快速地进入市场。2.1.2无线通信模块的选择方案一:WIFI目前,在家庭或者工作场所通常会建立WIFI连接。使用WIFI可以在多用户环境中共享数据而无需收取任何费用,是日常生活中较为常见的一种无线通信方式。其具有易于维护和搬迁,随时扩展和添加,工作灵活性强等特点,是一种可以实现数十米至两、三百米通信距离的无线通信技术。方案二:蓝牙蓝牙技术的产生使得在不使用电缆的情况下,也可以将一些便捷式电子设备连接到互联网,并且其应用范围十分广泛,包含了各种家用电器以及汽车等消费电子产品。它的数据传输安全性很高,但是无线电覆盖范围很小,数据传输只有10米。方案三:GSM模块GSM模块可以用来收发短信,可以接打电话,但是没有音频模块。相比于其他无线通信模块,它的性能较为稳定,性价比高。该模块可以通过USB转串口模块(如CH340模块)连接上位机或者通过导线直接连接到单片机等微处理器,采用AT指令控制,默认波特率为115200。另外,GSM模块的使用十分方便,只需要插入一张移动卡,就可以像手机一样接收到移动网络的信号,是一种覆盖范围较广的无线通信技术。2.2控制方案的确定通过对各类控制器件的学习与性能比较,最终选定由STM32F103系列单片机作为本设计的系统主控制器,无线通信技术选择使用GSM模块来实现。从本设计的应用层面考虑出发,由于本项目所设计出的产品面向的用户是大众,因此首先需要考虑的便是产品的价格,由此来看,主控制器使用价格较高的可编程逻辑器件CPLD有点不太合适,而相比之下,STM32系列单片机与SCT89C52系列单片机的成本比较低,适合投入开发,也是现阶段设计过程中可以承担的开发成本。而在开发成本较为相近的条件下,STM32系列单片机的性能更好一点,因此选择使用STM32系列单片机最为合适不过,同时也是项目开发的核心。STM32系列单片机属于开源器件,拥有其自身的官方固件库,并且可以很方便地下载到以便于立即投入使用。有了这些库函数,在编写程序时就不用再去了解其芯片底层的各种寄存器的使用方法,可以通过函数直接访问寄存器地址,大大降低了软件编程工作量和难度,并且对于引脚数量相同的芯片大部分情况下是PintoPin兼容的。这就使得各系列产品具有可升级的体系结构,使用统一的软件和开发投入,便可适用于你所有的应用。更重要的是,本系统在设计过程中以及后期的拓展应用上,需要外接部分外围扩展电路,这便需要主控制器可以提供较为丰富的接口。综合考虑功耗、成本和接口等各方面因素考虑,选用STM32系列单片机作为主控制器实现本设计功能最为合适不过。在本设计的应用场景中,无线通信的传输距离比较远,因此使用GSM模块SIM800A作为信息传输的媒介。虽然WIFI技术具有覆盖性较强的优点,但其操作较为繁琐,需要进行登录与验证,不适用于本设计的应用场景,并且WIFI的安全性并不高,容易被黑客篡改数据;相比之下,蓝牙技术的传输安全性比较高,但传输距离太短,不能满足设计的要求。3硬件电路的设计3.1系统总体框架本系统总体结构框图如图3.1所示。图3.1系统总体结构框图3.2STM32单片机核心电路设计根据项目设计需求,参考芯片选型手册后核心板选用STM32F103C8T6型号单片机。该芯片采用LQFP48封装设计,一共引出44只引脚,其中包含三组串口。串口是单片机芯片较为重要的部分,也是开发过程中最具难度的部分。这就需要在选型时格外留意串口的数量,配置等参数,从而方便后续的开发与使用。本文选用USART1(引脚PA9、PA10)与USART2(引脚PA2、PA3)分别接入GSM模块与GPS模块进行串口通信,从而进行数据处理。具体引脚连接方式如图3.2所示。图3.2模块连接原理图3.3NEO-6MGPS模块较高的灵敏度、较低的功耗、结构小型化等特点使得NEO-6MGPS模块广泛应用于电子产品开发中。在一些较为恶劣的自然环境中,例如狭窄的楼宇间,密集的丛林中,该模块都能获得较其他定位模块更为精准的定位信息。在该模块的使用过程中应当注意将天线置于室外,否则由于建筑物遮蔽模块有时难以接收到信号。该模块的硬件实物图如图3.3所示。图3.3GPS模块实物图模块参数(1)输入电压:3.3-5.5V功耗:50mA(3)工作温度-40℃—+85℃(4)存储温度-55℃—+100℃二、模块特性模块默认的波特率是9600。留有天线接口,可接有源天线内设射频放大电路配备可充电的备用电池兼容3.3V/5V电平三、引脚连接模块接口原理图如图3.4所示。图3.4GPS模块接口原理图3.3.1NMEA-0183协议简介GPS模块在使用时要注意统一、标准的数据格式。NMEA-0183协议是目前在定位技术中使用最广泛的协议,其传递GPS定位信息的方式为ASCII码,也称为帧。帧格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)“$”:帧命令起始位(NMEA-0183常用命令如表3.1所示)表3.1NMEA-0183常用命令表序号命令说明最大帧长1$GPGGAGPS定位信息722$GPGSA当前卫星信息653$GPGSV可搜索卫星信息2104$GPVTG地面速度信息345$GPZDA当前时间(UTC)信息(2)aaccc:地址域;(3)ddd…ddd:数据;(4)“*”:校验和前缀;(5)hh:校验和;(6)(CR)(LF):帧结束标志位;3.3.2UBX配置协议U-Blox系列产品在使用过程中,需要通过串口来对模块进行控制,这就使用到了UBX配置协议。其协议格式如图3.5所示.图3.5UBX协议结构3.4SIM800AGSM模块本文所使用的\t"/item/GSM%E6%A8%A1%E5%9D%97/_blank"GSM模块的型号为SIM800A,该模块具有收发短信、拨打电话和GPRS数据传输等功能,其硬件模块置有一个SIM卡槽,插入移动卡便可进行无线通信,使用方便。硬件实物图如图3.6所示。图3.6SIM800A模块实物图一、在短信应用方面有如下特点(1)点对点MOandMT短信业务主要由点对点业务和短信增值业务这两大类组成。在GSM网络上传播的有限长度的数字或文本信息就被称作短信。(2)短信广播SMS广播是一个术语,用于描述通过指定的短消息服务提供商向多个用户发送移动文本消息的行为。这项技术可以节省时间,因为手机消息可以发送一次,但是可以被多个用户接收,而不是多次发送消息来通知每个用户。SMS广播消息传递通常用于移动营销以及紧急警报和其他重要的组更新。(3)文本和PDU模式目前,发送短信的两种模式包括文本模式和协议数据单元(PUD)。前者的优点是易于实现,其发送和接收信息的代码较为简单;缺点是无法使用中文进行通信。而PDU模式相对于文本模式来说,改善了这一缺点,它可以同时发送中文和英文消息。二、注意事项确保在模块卡槽内正确安装了SIM卡之后,再给模块接通电源。若SIM卡插入正常的情况下,电源指示灯会亮起,模块开机。如果出现连接电源以后,发现模块上的绿灯开始闪烁,在闪烁几秒后灭掉,同时模块关机的情况;或者是在正常使用的过程中,例如模块在数据传输的过程中突然关机,那么极有可能是由于供电不足导致的。因此,在给模块接通电源时,首先应当注意接入的是5V、2A的电源,否则供电不足,电压过低,会导致模块无法正常工作。其次还要注意接入较为稳定的电源,如果电流的波纹太大,电压的高低浮动过大,模块也将无法正常工作,甚至关机。三、引脚连接GSM模块接口原理图如图3.7所示。图3.7GSM模块接口原理图3.4.1模块测试AT指令GSM模块作为一种无线通信模块,在本项目中起着信息传输枢纽的作用,因此在模块投入使用前,首先要检测硬件的可用性,防止在后续设计过程中,由于硬件自身的问题,导致项目功能无法实现。而对模块进行检测就要借助AT指令,AT指令在使用时需要注意其格式要求:必须以“AT”或“at”开头,以回车(<CR>)结尾,通常模块的响应会紧随其后。常见查询配置命令如表3.2所示。表3.2常见查询配置指令AT指令说明AT测试连接是否正确AT+CMGS发送短信AT+CMGD删除指定的短信AT+CMGF短信格式(分为TEXT模式和PDU模式)AT+CPIN用于查询SIM卡状态AT+CSQ用于返回信号强度AT+COPS用于查询当前运营商AT+CGMI用于查询模块制造商AT+CNUM用于查询本机号码ATE1用于设置回显模式(默认启用)3.4.2模块测试方法通常在模块使用之前,我们要先对模块进行功能测试,以确保硬件的可用性。具体测试方法如下:首先将模块连接至上位机,然后打开串口调试助手,通过查看设备管理器来查询模块接入的端口号,在端口号的选择没有问题之后将波特率设置为115200;此时便可以在发送界面输入相应的AT指令了。需要注意的一点是,在发送指令时,根据AT指令格式要求,应勾选界面中的发送新行一栏,否则无法正常通信,模块无响应。模块测试界面如图3.8所示。图3.8GSM模块测试情况

4系统软件设计4.1开发语言本项目的开发语言为C语言。C语言具有应用范围广,语法限制少,编译方式简单等优点,另外,它的程序执行效率与代码生成质量也都很高。与低级语言如汇编语言相比,C语言同样可以处理低级内存,并且编译执行时所产生的机器代码较少,代码质量等同于汇编语言,却比汇编语言的工作量小,另外,描述问题的速度快,可读性好,在后续设计过程中比较容易进行修改和移植。4.2开发环境本项目的软件开发环境为Keil5,该软件界面清晰直观,功能强大,是目前最为流行的嵌入式开发环境,具有较高的编辑效率,十分方便开发人员的使用。软件开发流程图如图4.1所示。图4.1软件开发流程图在进行软件开发时,首先要新建工程模板,导入库函数(从ST官网下载相关完整固件库包)。具体步骤如下:(1)新建工程文件夹;(2)新建工程,选择单片机型号;(3)导入库函数(4)新建Group,添加.c文件。具体工程开发如图4.2所示。图4.2新建工程模板4.3程序流程图系统的程序流程图如4.3所示。图4.3系统程序流程图从程序流程图中不难看出,按键作为系统程序执行的判断条件,起着至关重要的作用,也可以说,按键处理程序是本项目的核心。按键按下,单片机响应,从而执行下一步的数据处理,实现系统的功能。而按键实现对系统的手动输入,主要方式是通过电平的变化,在默认情况下,其引脚为高电平,按键按下,电平发生变化,系统产生电流,进行模块响应,进而进行数据处理。值得注意的是,按键在这里属于一个机械弹性开关。弹性开关在压力作用下闭合或者断开时,在受力发生改变的瞬间,由于外力的作用开关不会立马稳定地接通或断开,而是会产生一连串的抖动,即电平的快速变化,如图4.4所示。图4.4按键从按下到松开的电平变化为了解决这一问题,需要通过延时消抖来确保得到稳定的按键输入电平,即确定按键是否按下或是否松开。具体操作为,当用户按下按键时,软件需要延时一会儿(一般为10ms左右),待引脚的输入电平稳定后再判断高低电平,这种消抖方式叫做软件消抖,具体操作流程如图4.5所示。图4.5按键消抖流程图4.4功能设计4.4.1实时定位该设计的一大特点便是可以实时定位。当家中小孩、老人需要独自外出时,用户可以通过发送“GET”字样信息给设备手机号,主动获取模块即家人当前所处的位置信息,提高弱势群体外出的安全性。同时,该功能也为本设计的应用拓展扩展提供思路,若将设备放置于背包,行李箱或者其他贵重物品中,用户也可以获取物品当前所处的位置信息,达到防丢的目的。实时定位功能程序流程图如图4.6所示。图4.6实时定位功能程序流程图4.4.2远程呼救本系统的基本功能,也就是设计的核心思想,防丢功能,便是远程呼救。当用户在外出遇到危险时,可以按下设备上的按键,系统便会向设备所绑定的手机号发送用户当前所处的位置信息,以示求救,被绑定的用户便可及时准确地获取用户当前的位置,并且立即采取措施,避免了因为用户不方便说话或者来不及求救时的一些悲剧地发生。类似的情况在我们的日常生活中时有发生,例如在外出时,乘坐出租车,网约车时,难以避免不法分子的乘虚而入,为我们带来人身伤害,通常情况下,我们在车上没办法通过语言表达打电话向他人求救,该设计的这一功能可以快捷、方便地向家人提供自己的位置信息,并且支持多次连续发送。该功能的实现主要是通过两个条件判断语句,首先按键作为一个外部中断,系统要判断按键是否被按下,系统是否有输入,在按键按下的情况下,设备开始工作,通过串口方式进行数据传输,信息交换,然后判断GPS是否就绪,能否提供有效的位置信息。在进行GPS数据处理时要注意遵循协议的格式,否则无法正常通信。远程呼救功能程序流程图如图4.7所示。图4.7远程呼救程序流程图

5系统测试与误差分析5.1系统测试在完成系统软件的程序编写后,根据系统硬件的设计思路与电路图将模块连接,进行系统测试。测试主要分为两部分,首先是对系统定位精准度的检测。具体操作为多次采集处于不同位置时定位模块所获取的位置信息,并且记录下来,同时通过浏览器搜索所取的位置样本的标准经纬度信息,将二者做对比。通过测量值与真实值的差来计算定位的相对误差。其次是对无线通信情况的测试,在硬件测试中已经对GSM模块的功能进行了全面的测试,在确保模块能够正常使用后,再将模块与单片机相连。通过软件编程设置按键的输入方式,利用串口通信使模块与单片机进行信息交互。当设备上电稳定后,通过向设备手机号发送短信检测系统是否能正常接收信息,通过按键使设备接收指令,查看系统是否能正差发送信息。5.2误差分析在上一小节对系统整体进行测试后,可以发现系统已经完成了设计的基本功能。但是系统在GPS定位到的数据上还存在一定的误差。由于卫星、信号传播、接收设备等各种因素的异常都有可能造成定位信息的不准确,从而系统产生误差,因此对于误差的分析还需进行进一步的深入的研究。通过查阅相关文献资料,以及进行多次反复的测量计算,初步分析对于本系统而言,误差的主要来源是由于未对数据进行修正。6总结与展望6.1论文工作总结本文在经过前期的市场调研与需求分析后,确立了研究方向,拟定论文题目后,经过不断地学习与探索,设计的主要功能基本实现。下面将本课题完成工作的情况总结如下:(1)对STM32F103C8T6核心处理器从引脚功能到编程方法进行了深入、系统的研究学习;对GPS定位模块和GSM通信模块的相关原理、编程方法与串口通信等基础技术知识等进行了深入、系统的学习。(2)结合各模块的硬件原理,引脚说明,内部电路构成,绘制电路图,从而方便之后对实物的连接。(3)系统学习软件开法知识,熟悉软件开发环境、开发流程。重温C语言语法与编程思想,编写功能函数并反复测试代码的执行效率,不断查阅资料对代码进行优化与改进。(4)对系统的整体功能进行调试,并分析可能影响系统功能的因素。6.2未来展望本设计虽然目前已经实现了预期的功能,达到了设计的目的,但由于现阶段自身的时间与能力等因素限制,出于设计本身的可用性与工业角度考虑,还存在一定缺陷。例如系统所定位到的位置与实际位置存在一定的偏差,本文仅仅阐述了误差可能的来源,并没有研究如何修正偏差使其精确定位。除此之外,用户获取经纬度信息后自行通过浏览器查找实际位置的操作有些繁琐,如果可以使定位到的经纬度信息能够通过某种方式处理直接转换为人们所耳熟能详的位置信息,并且显示在用户手机或者其他设备终端上,使用户通过短消息第一时间直观地看到具体的位置信息,那么该设计的使用将会更加方便。在未来的学习过程中,我将就以上两方面对本设计进行深入开发,同时对设计的应用场景进行进一步的拓展,增强系统的实用性。参考文献[1]基于STM32单片机的智慧防丢失系统设计与实现[J].雷思睿.无线互联科技.2020(04)[2]陈春雨,李瑞英,赵亚军.基于单片机的防丢器的设计与实现[J].大庆师范学院学报,2020,40(03):104-110.[3]钱银,武康,郁李鑫,朱智.基于STM32防丢器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论