一种具有恒温保持和GPS定位功能的智能保温杯
2018-11-14南京邮电大学
南京邮电大学 葛 朴
南京晓庄学院 葛 睿
前言:随着科技的发展智能保温杯也得到了改进,以传统保温杯为基础,现代智能保温杯可以智能加热和保温。主控芯片选用51系列单片机中的STC89C52,可以使此设计产品更加智能化和自动化。
智能保温杯是基于52单片机来实现的温度检测与控制和简易GPS定位信息显示系统。主控芯片选用51系列单片机中的STC89C52,温度传感器选用DS18B20防水型温度传感器,可以对温度进行实时采集,另外LCD1602液晶显示屏可显示DS18B20采集到的实时水温、定时时间和设置的水温下限。并且还运用水位检测功能,当保温杯里的水没有到达下限,则继电器不会吸合驱动加热功能,防止干烧。当水温低于设定的下限且水位达到下限,继电器才会吸合驱动加热。通过这些系统设计,既能防止无水干烧,又能将温度控制在相应的范围内。另外还采用GPS定位和GSM短信发送对智能保温杯随时可获取其位置,有效的防止智能保温杯的丢失。
1 智能保温杯系统结构
如图1通过温度传感器,检测实时水温,通过控制系统作出判断,并通过加热电路驱动加热器工作。显示模块显示DS18B20采集到的实时水温、定时时间和设置的水温上下限。采用GPS模块定位,GSM模块可向特定手机号码发送短信,短信内容为系统的当前经纬度信息,有效的防止产品的丢失。
图1 STC89C52控制的智能保温杯
1)控制系统的选择
作为设计的核心,其运算精度,功能的多样性以及抗干扰性的能力是系统考虑的重要因素。可以直接在线编程的单片机STC89C52作为系统的处理器,工作模式上具有6T模式,也可以是12T模式,STC89C52的工作电压为3.3-5V,对于温度和光照强度的数据进行处理,实现电机的运转。
2)温度传感器的选择
采用的是DS18B20防水型温度传感器。DS18B20单总线可同时连接很多温点,只需要一个元件,成本低,精确度高,电路简单,信号线距离远,体积小,抗干扰能力强。
3)显示器的选择
采用1622液晶显示屏来显示当前的数值。1602功耗低、体积小、显示内容多样化、便于安装,常用在低功耗系统中,不能显示图形,但是对于本系统来说能够满足基本的显示功能。
4)驱动模块的选择
采用LMD18245集成芯片驱动加热片。通过运行程序驱动加热片,是一种开关室的全桥功率驱动加热片的集成芯片。运用这种集成芯片工作可靠性高。
5)信息传输模块的选择
使用GSM模块SIM800A作为信息传输的媒介,只需要插上移动卡,即可在全球有移动网络的地方接收到信号。
2 软件设计
2.1 主程序流程图(图2)
系统初始化,检测水位是否达到下限,如果达到下限则向下运行检测水温,水温在设定值的下限,则结束操作;水温不在范围则进行相应的操作,最后中在检测水温是否在范围内,如果在则结束,如果不在则回到上一步进行相应的操作。
图2 主程序流程图
2.2 读温度流程
以下是读温度流程图(图3),系统初始化,检测DS18B20是否存在,果存在则进行ROM操作指令,在向下进行存储指令,最后读取温度值再结束。如果DS18B20不存在则直接结束,不进行温度采集。
图3 读取温度流程图
2.3 定位采集与发送的总流程(图4)
定位系统的软件部分主要分为:系统初始化,然后GPS定位信息的采集,将采集到的信息进行A/D转化,再将采集到的数据存入缓冲区,再检测有无询问指令,如果没有继续检测,如果有检测串口是否打开,如果没打开继续监测,直到打开为止,然后将定位数据在缓冲区进行字符转换,最后发送定位数据,结束定位采集与发送。
图4 定位采集与发送的总流程图
2.4 GPS定位数据的采集
开始GPS定位数据的采集。打开串行口,设置波特率为4800,设置定时时间为1秒,定时读串行口。读取窗口1缓存,判断是否GPRMC语句,如果不是继续检测,如果是复制该语句并从缓存中删除该语句,删除复制语句中的表头SGPRMC,再提取UTC时间并转换为北京时间,再判断接受状态是否有效,如果无效回到读取串行口1缓存,判断是否GPRMC语句,如果是分别提取经纬度再提取UTC日期。
图5 GPS定位流程图
2.5 GSM短消息模块
程序开始,设置短消息的格式,设置接收号码,短信PDU编码,再向串口写AR指令,检测是否成功,不成功继续发送指令,成功则结束GSM短消息定位信息的发送。
图6 GSM短信息流程图
3 调试
1)在Keil4软件中先创建一个工程:单击菜单栏中的“工程”,输入新建工程名,并保存;然后器件选择“Atmel”目录下的“STC89C52” 。
2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名“***.c”,新文件创建完成。
3)程序编译和调试:单击编译按钮,系统会对文件进行运行,在输出窗口中可看到提示信息,如下图中有一个error,按提示找出错误并改正,直到提示没有错误提示为止,如图7所示。
图7 提示信息无错误
4)程序编译无错误后,进入程序调试状态,可查看单片机资源状态,进行断点等方式调试。
如果硬件电路检查后,确定无任何问题,但还是实现不了设计要求,那么就有可能是在程序的编写上存在问题。我们可以根据软件的结构和程序的编写方法逐个模块或逐个任务调试好再进行系统总调试。如果总体能同时运行,硬件和软件一样都没有问题,那么一般情况下系统就可以正常运行了。