摘要随着当今时代的发展推进人们生活质量的越发提高,对于生活中身体的健康质量是当代人们追求的一个重要的指标。随着老年人身体逐渐衰老...
摘要
随着当今时代的发展推进人们生活质量的越发提高,对于生活中身体的健康质量是当代人们追求的一个重要的指标。随着老年人身体逐渐衰老,很容易患上各种慢性病,只能长期靠药物够维持身体基本机能,但却无法改善因衰老带来的记忆力弱等问题,从而导致不能按时按量服药,没有了持续用药的效力。为此,决定研发一款具有智能语音提醒功能的、基于STM32单片机的智能药盒来解决这些问题。
本文详细介绍了此药盒的主要构成和设计原理。该智能药盒采用模块化设计,主要由STM32单片机最小系统、红外检测模块、智能语音模块、GSM通信模块、时钟模块、按键模块和液晶显示屏等构成。时钟模块为单片机提供精准时钟,通过按键设置好每天吃药时间及超时时长,并显示在液晶显示屏上,时间一到,马上通过GSM通信模块发送短信,智能语音模块提醒吃药时间到,若超时,则再次提醒。此时红外模块一直在检测药盒是否有打开并关上动作,若有该动作,则该时段不再发出提醒语音或短信;否则便每隔一段时间便提醒,直到检测到该动作为止。
通过上述要点的理论研究与功能模块的应用方式,完善具体步骤和功能,包括LCD实时时钟显示、工作时计时系统运行,DS1302计时器开始进行倒计时工作,当计时时间结束之后,驱动GSM模块发送提示短信,并使用红外传感器检测要和是否被打开,设定时间如果超时的话会进行语音播报提醒。各部分功能模块统一由STM32单片机调度配置,实现其逻辑控制以及驱动控制。
关键词:STM32单片机 GSM通信 DS1302时钟模块
Abstract
With the development of society and the improvement of the living standards of the population the search for a healthy quality of life increases. In combination with the current growing smart drug box and facilitating access to medicines for the elderly, this paper describes the design of a microprocessor-based smart home drug box.
First of all, this paper introduces the structure and working principle of the hardware involved in this system, including STM32 microcontroller, LCD1602 liquid crystal and microcontroller timing/counter, infrared module, voice module, GSM communication. Secondly, the modularization design of hardware and the programming idea of software are introduced. Finally, the final result is obtained after debugging the system. In the first part, the parameters, internal structure, pin function, LCD1602 hardware circuit, display principle and various commands, timing/counter and buzzer principle are introduced. In the second part, the operation mode and workflow among the modules are systematically introduced. Finally, the basic mode of system operation obtained after debugging and improvement is as follows: the system is based on single-chip microcomputer control. Through the design of single-chip MICROCOMPUTER STM32 timer interruption, the system completes the control of clock operation and is displayed by LCD1602 LIQUID crystal.
Through the theoretical research of the above points, specific functions are realized, including LCD real-time clock display and running of working timing system. When the timer time is up, GSM module is driven to send prompt message, and infrared sensor is used to detect whether to be turned on or not. If the time is set, voice broadcast and reminder will be delivered. Each functional module is unified by STM32 MCU scheduling configuration to achieve its logic control and drive control.
Keywords: STM32 MCU GSM communication DS1302 clock module
第1章 绪论
1.1研究背景
现在社会的年纪大的人,随着当今时代的发展推进人们生活质量的越发提高,对于生活中身体的健康质量是当代人们追求的一个重要的指标。随着老年人身体逐渐衰老,很容易患上各种慢性病,只能长期靠药物够维持身体基本机能,但却无法改善因衰老带来的记忆力弱等问题,从而导致不能按时按量服药,没有了持续用药的效力。为此,决定研发一款具有智能语音提醒功能的、基于STM32单片机的智能药盒来解决这些问题。
它的本质就是一种为了方便提醒并引导老年人按时吃药而设计的一种药品的存放物体,通过对智能药盒的功能的完善,它可以完全解决难以服药和记不住药的老年人的问题。智能药箱是在日常生活中监视并提醒每天使用药物的老年人的方法。每天提醒老年人三次以上,并可以设置种类提示可以有效解决解决老年人不记得按时吃药这一严重问题。
1.2研究意义
由于不重视老年人,面向老年群体的智能手提电脑尚未起步,目前市场尚小,但随着这种需求的增加,老年手提电脑市场必将迎来新的开发热潮。最初出现的一箱较小的随身药品,形式简便,用量少,不能满足老年人的需要。大部分电子薄膜的电路一般由个别的数字电路构成,具有单一的功能,而且重量、体积大,耗电量特别高,所以使用费增加。因此,使用方面存在很大的局限性。然后,一些大容量,高功能的东西,却不怎么受关注。随着市场需求的增加,药箱大面积增长。结构和桌子不断更新,优化和改善,各种形象的人性化智能电子药箱出现了新设计,易于操作,时机简便,最大的方便于更多的老年人。智能笔盒不仅可以推出多种药片,还可以推出多种医疗、医疗产品,扩大智能笔的消费对象和消费层,提高智能笔的使用价值。更智能化的电子药片成为新的需求。
最近几年半导体行业飞速发挥自己的作用,簇生单片机技术的突飞猛进,以单片机微控制器为主要中心的大范围的电路的结合在生活中随处可见的各种物品中得到了超出想象的广泛的应用。而以微控制器内部构件为中心开发的的电路的数字程度提高,同时是由于其在使用过程中,芯片的尺寸较小,但功能确实异常的强大,消耗电压、电流的量非常小等优势,在研究和各种背景文件的过程中,今天的大多数Roans在药物管理的充分性和科学化的应用方面无法遵循自己的想法,而且总是失败的。针对群众性疾病,建立了有效的药品管理体系。而以STM32单片机为核心研究设计的智能药盒,功能全,体积小,低功耗等优势,适合于在电子药盒的这一品类的产品中使用。
第2章 系统整体设计
本设计的主要功能是首先时间显示功能,使用 LCD1602液晶显示人机交互界面按照当前网络时间在显示屏幕上进行刷新显示当前时间,在本课题中该系统在运行过程中采用外部时钟模块进行连接,这样的设计完全可以保证在系统环境以及总电源部分掉电之后时间仍然不会被清空,下次再次上系统中运行的时间就是当前时间;设计按键电路以及按键出发的逻辑程序,按下按键进入设置模式,并通过按键可以设置当前时间和每天3次吃药时间;计时提醒功能,通过开始设定的时间系统进行倒计时运行,当到了该吃药的时间后,发送短信提醒用户吃药;并且使用红外模块检测用户是否已经吃药,如果红外传感器没有检测到药盒被打开,系统认定没有吃药,此时进行语音播报语音播报过程中如果检测到了药盒被打开就停止语音播报,回复系统待机模式,进行时间显示。如图2-1所示是系统整体结构框图:
图2-1系统整体结构图
2.1元器件的使用与研究
2.2.1单片机的选择
STM32系类微处理器级别的单片机其主要功能性简介如下:该型号的系列芯片单片机由目前发展迅猛的半导体厂家ST厂商推出的STM32系列微控制器单片机,它如此获得大众的青睐是因为这是一款结合各种优点,以及性价比超高的微控制系列单片机,运行时候的工作机能及其强大。同时它还配备有一流并且丰富的片上资源:1us的双12位ADC模拟、数字信号转换的功能,4兆位/秒的UARTTTL串口电平信号的传输,18兆位/秒的SPI通信接口等等,在使用工作过程中的能耗和芯片资源集中的放置在一个小区域方面也有优异的现状。其强大的功能主要表现在:
1、内核: 32位Cortex-M3CPU ARM中央处理,其在工作情况下达到最峰值的工作效率的时候,频率达到了72MHz,1.25DMIPS/MHz,架构采用特有的单独一个执行周期的乘法和电路搭建起来的电压值计算;
2、丰富的存储设备:最大有512KB的Flash(闪存存储器),最小也有32KB。而SRAM(可读存储器)则有6-64KB,其中高速缓存存贮器用来存放程序中的局部变量等数据,当系统掉电之后,数据就会丢失,使用可读存储器用于存放控制软件的逻辑程序代码,该部分内容在掉电之后不会丢失,因此每次重新弄上电之后,系统都会进行一次复位将程序归到初始的状态。
3、供电电源2.0V-3.6V均能正常可靠工作, I/O口类型可由软件配置。工作时钟4-16MHz皆可,且内嵌调校好的8MHz RC振荡时钟及32kHz的RTC时钟。
4、设计过程中可直接用串行调试(SWD)和JTAG接口进行调试。
2.2.2红外传感器使用及原理
基于红外信息检测的技术的自动执行物品,当有人体进入到开关感应的有效距离的时候,这一有特殊感应距离的专用感知系统探测到人的身体上带有的红外信息的变化,直接在模块上控制动输出高电压信号,如果被探测到的人没有离开特别设计的感应区域之后活动,模块就不会发生变化将持续输出高电平;当人体从感知区域离开时之后,开模块控制系统关闭延时自动改变点评输出信号。具有较高的灵活敏感度,可以应用于各种场合,依靠本身稳定的运行机制,获得可靠的检测功能,他被常常用于各种各样的自动感知区域的检测工作。模块分析内部结构与外部功能分析出的主要特点是:超级减小降低的功耗,开关自身所消耗的功率值仅仅<0.00005W。较宽的电压范围设计:DC12V-24V,默认情况下使用工作在为12VDC(可定做工作电压:3.3-4.5VDC)。
同时模块两种触发方式:(可跳线选择)。
a、应用中突出不可重复使用触发信号:就是在感应输出引脚需要输出高电压值之后,经过一段时间的时间控制,输出引脚就会将自动从高电平变成低电平;
b、模块具有可以重复的感知方式:当有物体进入到开关感应的有效距离时,就会输出高电平,若该物体在延时时间段内一直被检测到,则一直输出高电平,直到在延时时间段内该范围内无物体被感应到,才会输出低电平。
2.2.3时钟模块
本设计中使用了单独的外设时钟模块,虽然单片机内部也具有实时时钟,不过单片机掉电之后时钟数据无法继续计时,下次上电后芯片内部还是运行的上次停止的时间,因此选用DS1302模块进行时钟的记录;
DS1302是当前最新推出的外部时钟芯片,这一整体结构内具有一个可以进行读写的实时时钟以及静态存储区,通过简单的串行接口与单片机进行通。通过使用配置到系统中的按照当前时间出发的计时功能/采用日期计时的电路提供秒、分、时、日、周、月、年的信息,还能区分平年、润年。同时,显示时间格式可设置为24或12小时格式。DS1302与STM32单片机采用串行通信。通过对上述数据传输方式以及寄存器的配置已经了解了该模块的控制方式,在软件设计方面进行代码实现,即可实现需要的功能。
2.2.4 GSM模块研究与使用
本设计中根据功能用到的是体积小,质量轻的的GA6模块进行GPRS数据传输,主要是发送短信的功能,其在使用过程中优点在于:信号铺展的区域范围很大:GPRS在 34个省内信号传输都有不错的性能,并且使用的通行的2G通信信号的传输标准。能进行高速传输,目前,理论峰值传输最高可达100 余 KbpsGPRS,实测也有85.6Kbps。GA6的尺寸小,功耗低和较宽的工作温度,是M2M应用最理想的解决方案。
2.2.4显示屏的研究与使用
显示功能方面采用LCD1602液晶显示屏,其外围元件少,易调试,驱动及显示程序原理简单,易设计调试。其串行时序图如下图2-6所示。
图2-6 显示屏串行时序图
第3章 硬件电路的设计
3.1 STM32单片机最小系统电路
STM32单片机系统由晶振时钟电路、复位电路和电源构成。
复位电路:由一个10kΩ电阻和一个0.1uF电容串联即可,如下图3-1复位电路图。
当系统上电之后,芯片的NRST引脚变为高电平,并且高电平持续时间是受RC的数值来确定,本单片机最小系统中R=10K;C=0.1uf。;这个数值可以保证单片机在两个时钟周期以上进行使芯片复位其时间的计算公式如下:上电后的复位时间=R*C=10KΩ*0.1uf=10ms,也就是说在芯片上电10ms后,芯片开始复位。
与电容再并联一个开关S1,可用于手动复位。开关S1按下之后,开关闭合,电容C2被短路,NRST引脚为低电平,单片机复位;开关S1释放后,开关断开,3V3通过电阻R1对电容冲电,NRST引脚电压逐渐升高,最终为高电平,芯片正常工作。
图3-1 复位电路图
时钟晶振电路:采用8MHz无源晶振搭配15pF的起振电容,为单片机提供外部时钟;与晶振并联一个1MΩ的电阻帮助起振,也可使时钟运行更加稳定。下图3-2为时钟电路图。
图3-2 时钟电路图
电源电路:本设计使用STM32核心控制板,板载了电源转换电路以及稳压电路,使用ASM1117-3.3稳压片,这个芯片的特点就是在输入端提供5-12V的直流电源,就可以从输出引脚输出5V的稳定电压,给芯片运行提供了稳定电源。系统电源电路使用单片机最小系统的USB-5V电源输入,该电路中核心功能芯片是AMS-1117稳压芯片,该稳压片可以起到降压的作用,当输入电压在5-12V时,可以将输出端口的电压降至3.3V,经过核心板上的稳压芯片将电压降至3.3V,提供给芯片使用,同时该5V电压就直接提供给语音模块、驱动电器等其他电路作为系统总电源。电源降压电路如图3-2所示:
图3-3 电源电路图
单片机总体引脚电路图:单片机IO口和外设模块之间的连接主要有:WI_FI模块进行串口通信的串口引脚、语音模块建立SPI通信连接的SPI通信接口、用于采集环境温湿度的温湿度传感器的IIC通信接口,和有害传感器连接的模拟信号输入端,ADC输入引脚、以及控制风扇的普通IO。STM32单片机原理图如图3-3所示:
图3-4 单片机最小系统图
3.2 GPRS模块-SIM800C
GPRS模块使用串口透传的方式和单片机进行通信,因此模块的电气连接除了电源只需要将UART_RXDUART_TXD引脚连接到单片机的串口二上也就是单片机的PA10和PA11引脚上。GPRS芯片电路图如下图3-5所示。
图3-5 GPRS芯片电路图
3.3红外模块电路设计
红外模块主要有红外发射管与红外接收管组成,应用光的反射原理,发射管与接受管同向并排放置,发射管持续发射出红外线,在其有效检测范围内,若无障碍物,则接收管一直处于无效状态;当有效检测范围内有障碍物(反射面)时,发射的红外线就会反射回来,被接收管接收,经过一些列电路处理后,输出端就会输出一个有效的低电平,同时绿色LED灯就会亮起来。该低电平传入单片机,单片机便知道药盒被打开了。
该模块还可通过调节电位器旋钮来调节检测的有效距离,最远可调至30cm。其抗干扰能力强,外围电路简单,易调试等优点。电路图如下图3-6所示。
图3-6 红外传感器电路图
3.4显示屏驱动电路设计
LCD液晶显示屏使用串行驱动的方式与单片机引脚进行连接,其中VSS和VDD分别连接电源正负极,E和RW引脚连接高电平,点亮屏幕背光,D0~D7引脚为数据引脚,和单片机PB0~PB 7按顺序连接,通过软件程序配置时序,实现LCD液晶显示屏的内容显示。显示屏电路图如下图3-7所示。
图3-7 显示屏电路图
3.5按键电路设计
本系统中采用按键作为配置信号逻辑输入,按键的一端连接单片机的数字输入IO端口,另一端连接到电源的GND上,当开关被按下之后,电路被导通,单片机的相应端口输入进低电平信号,进入中断控制程序。按键逻辑电路图如下图3-8所示。
图3-8 按键逻辑电路图
3.6时钟电路的设计
时钟模块采用DS1302作为系统的外部时钟计时器,用来记录当前时间,采用三线制SPI接口与CPU进行通讯,具有掉电保存,选择单片机上的一个SPI通信端口,其中时钟模块上的SCLK连接到单片机的CLK引脚上,时钟数据通信引脚连接到单片机的SPI输入端,该引脚连接了一个下拉电阻,保证模块之间在通信过程中可以有稳定的信号输入。时钟模块的使能端连接到单片机的输出IO上,配合SPI通信进行时钟驱动。电路图如下图3-9 时钟芯片电路图。
图3-9 时钟芯片电路图
第4章 系统软件设计
系统软件需要实现的功能:单片机能检测各个按键的输入信息,并能正确实时地在LCD1602上显示。在系统记录下四次用药时间和每次的用药量之后,调节好系统时钟后系统开始运行,单片机将定时的四个时间与系统的实时时间相比较,相等时立刻发送短信和播放语音,并显示此次用药的服用量。同时,红外检测模块实时检测药盒的状态,判断是否打开。系统软件设计流程图如下:
图4-1 主程序流程图
4.1 DS1302模块软件设计流程图
DS1302部分软件程序设计首先需要配置单片机的SPI通信,配置相应IO口复用为SPI片上外设端口,通过软件程序设计配置数据读写,其配置流程如下,首先关闭DS1302写保护,向模块写入时间控制,写到DS1302的相应寄存器上,判断数据是否发送完成,若未写完继续向寄存器写入,若发送完成之后条用读数据函数,读取当前时间,进行内部使用。时钟模块软件流程图如下图4-1所示。
图4-1 时钟模块软件流程图
4.2 GSM模块通信程序设计
Gsm数据通信主要是串口通信,首先我们需要打开单片机定时2,void Uart_Init(unsigned int baud)串口初始化,选择定时器2,TL2 = RCAP2L = (65536-(UART_FOSC/32/baud)); 设置波特率为9600 。定时器2开始运行T2CON = 0x34; 打开总中断和串口中断ES = 1; EA = 1; 初始化AT指令:Uart_SendString2("ATrn");delay_ms(100)at指令根据芯片手册编写。
Uart_SendString2("AT+CSCS="GSM"rn");delay_ms(100);Uart_SendString2("AT+CMGF=1rn");delay_ms(100);写入手机号码Uart_SendString2(number);delay_ms(100);number为手机号码,延时delay_ms(300);准备发送短信,Uart_SendString2(content);发送当前短信内容, Uart_SendByte(0x1A);发送结束符号.GSM模块软件流程图如下图4-2所示。
图4-2 GSM模块软件流程图
4.3语音模块软件流程图
语音模块采用wt588d语音芯片进行电路设计。当需要进行报警的时候STM32单片机控制语音芯片来播报当前的内容。
p02是复位引脚也可以不接,只有P03口是数据引脚,Wt588d语音芯片他是通过外部的minu下载器下载相应的语音文件,比如播报欢迎光临,那么我们就需要通过minu下载器编辑这段语音欢迎光临。然后生成一个地址,当单片机需要播报这端语音的时候,就会发送指令给wt588d,进行语音播报。语音模块软件流程图如下图4-3所示。
图4-3 语音模块软件流程图
第5章 系统的调试
本系统的大多软硬件的调试都在单片机开发板上完成,在开发板上验证成功后,才开始焊接,各模块都与单片机连线即可开始调试。
5.1软件调试
软件调试过程中采用化整为零思想,逐个功能调试,都调通后,再全部连起来一起调试。
首先,软件分别只运行实现时钟、语音播放以及红外检测功能的程序,然后添加按键的识别以及数据输入功能的程序,接着完成所有与按键输入有关的程序,最后将完整程序运行,调试所有功能。实现系统各参数的可调节,再之后添加LCD1602读取数据的子程序,完成对LCD1602显示的各参数的记录,完成时间定时的功能,最后添加报警提醒程序,实现报警功能。
在系统软件编程的过程中,可分为以下几个阶段:
1、编写简单的时钟程序,实现时钟正常运行。
2、编写各个模块的子程序,如红外检测输出信号,语音播放控制,GPRS模块发送短信等功能。
2、编写液晶屏显示程序,能显示当前时间就行。
3、增加按键检测及数据写入功能程序,并能在液晶屏上正常显示。
4、运行上述所有程序,各个模块与单片机联合调试,逐步实现各个功能。
软件程序编写与调试采用KEIL,软件编译界面如图 5-1所示:
图 5-1 KEIL软件编译界面图
KEIL软件调试界面如图 5-2所示:
图 5-2 KEIL软件调试界面图
5.2硬件调试
在调试硬件时,先逐一验证各个模块是否正常工作,最后再将所有模块连接起来,一起调试。硬件上设计在原理上都是可行的,可以用单片机开发板搭载单个小模块来验证。而开发板本身就已经集成了很多小模块上去,验证时只需要将相应的接口接通即可,便可验证该模块是否可行,最终要验证所有模块均能正常工作。
5.3调试结果
通过对单个模块逐一调试,确定每个模块均能正常工作后,开始对整个系统进行调试。通过按键向单片机输入正确的时间、用药时间以及用药量,同时按下定时按键,单片机能正常记录当前输入的数据以及显示内容。在吃药时间到来时,单片机能正常检测到,并向GSM模块发出下发短信的指令,同时语音提醒吃药时间到,并开始倒计时,在最后吃药时间到来前,打开药盒,红外模块能正确检测到该信号,并传给单片机,单片机则向语音模块发出该时段停止语音播放,并可在今后的同一时段再次启动。
总 结
本系统以STM32单片机为核心,外接语音模块、红外检测模块、智能语音模块、GSM通信模块、时钟模块、按键模块和液晶显示屏等设计了一个智能药盒。时钟模块为单片机提供精准时钟,通过按键设置好每天吃药时间及超时时长,并显示在液晶显示屏上,以及四次定时、蜂鸣器提醒用药时间、四种药物用药量都显示在液晶显示屏上。所使用的STM32系列单片机抗干扰能力强,功耗低,可靠性高。只需用按键设置一次,在使用过程中便不再需要进行除服药外的任何操作。本设计主要完成的工作有:
1.通过单片机内部定时器运行的时钟。
2.使用LCD1602同步显示时间。
3.使用LCD1602将按键输入信息实时显示在显示屏上,包括时间调整,用药量的调整,追求防呆设计。
4.按键完成对四次时间的定时。
5.蜂鸣器在系统设定时间进行声光信号的报警。
经过对于本课题的深入研究以及系统的软硬件设计,完整的实现了预期的本课题从理论研究到设计思路推进到系统硬件选型与设计,系统根据硬件设计进行实物连接最后进行软件程序设计以及调试这一完整过程,成功的实现的预期的功能。
设计过程中,主要进行STM32的运行工作原理以及电路设计进行研究学习,掌握单片机内部运行的必要结构和内部程序运行机制,通过stm32单片机的研究与学习,对各种外设模块进行统一调度控制;掌握DS1302时钟模块的运行方式和原理,建立单片机和模块之间的SPI通信,获取当前时间以及计时控制;研究LCD1602显示屏的显示控制,编写数据写入程序,使其显示相应内容;并设计具有红外传感器的药盒模型,设计药盒打开逻辑控制。
经过这些工作,深入地掌握了 stm32核心控制器的驱动以及各种片上外设的利用,比如时钟定时器配置、时序信号通信,掌握这些片上外设的调用方法以及寄存器的参数配置;通过这次设计,熟悉了各种外设模块的功能原理,以及使用方法,并灵活运用。经过本设计的成功实现,极大的丰富了理论知识以及锻炼了动手能力。
如果认为本文对您有所帮助请赞助本站