一 智能恒温调奶器-控制端子系统需求分析书
-
- 问题描述
在现代化的生活中许多新生儿,在其生长中需要喝奶。然而许多母亲选择奶粉为新生儿提供营养,因此智能恒温调奶器就不可或缺了。它能根据母亲精心设定的参数为宝宝提供适宜饮用习惯。避免出现宝宝每次喝水或者牛奶时母亲担心水温或水位的问题,提高了宝宝喝水舒适度和在质量,让宝宝成长更健康。
-
- 要达到的目的
智能监控:在生活中,如果母亲不注意新生儿的乳汁,可能会导致婴儿的日常乳汁不适。 例如,母亲不掌握水温并烫伤婴儿。为了防止这些情况的发生,用户需要智能恒温牛奶分配器来具有实时获取水杯数据的功能。此时,不仅需要具有可以感知牛奶调节器环境的功能,而且用户还需要具有可以智能调节的功能,以便该设备可以在不同条件下自动运行和控制。并为新生儿提供舒适安全的饮料。在调节牛奶的环境的同时,让家人放心。
远程控制:牛奶调节器的工作环境,设备的安全状态以及需要定期检查牛奶调节器中潜在的安全隐患。检查频率越高,牛奶调节器的安全性越高。用户需要具有实时远程控制功能。该控制功能可以使用户随时随地监视厨房中的牛奶搅拌器环境,检查设备状态并通过移动平台控制设备。
- 水温检测和水位检测功能
- 远程实时自动控制与阿里云通信功能
- 液晶显示功能
- 铃声提醒功能
-
- 具体的分析
1.3.1 水温检测和水位检测功能
- 检测水杯水温数据,获取实时的水杯水温数据,避免出现水杯水温过高的工作调奶器环境。
检测水杯水位数据,获取实时的水杯水位数据,避免因每餐水位过多影响宝宝用量。
1.3.2 远程实时自动控制
自动控制功能
调奶器设备环境对当前水温进行实时监控+判断,如果程序检测到水温低于正常用户预设定的最低值或者最高值此事程序就会触发相应的指令对设备进行控制例如: 断开加热器、开启加热器、关闭高温报警、低温提示灯,同时设备会根据一系列协议指令向移动端用户发出提示指令使用户在各地可以查看调奶器状态。
远程开关控制功能
移动终端子系统采用TCP通信并且通过阿里云服务器对控制端子系统下发控制指令。
- Android端采用TCP通信机制通过连接阿里云服务器,收集智能恒温调奶器水温数据以及水位数据进行实时判断根据预设值向调奶器发出控制指令,控制铃声提醒模块和提示灯运作。同时若调奶器水温、水位等传感器处于睡眠状态或者出现程序故障用户可 以采用App对调奶器进行初始化、故障排查自检功能帮助用户解决调奶器带来的某些小故障;
- 根据账号不同,对同一个调奶器环境设备水温超高报警模块和用户同时不同的控制请求,并优先级响应指定账户请求,用户和调奶器之间的数据存储在阿里云服务器,用户可以通过App对云端的数据及指令记录进行查询、备份、删除操作。
1.3.3 液晶显示功能
显示功能:
通过LCD液晶实时显示智能恒温调奶器水温,以及加热器会根据水杯环境计时做出判断是否加热,并且在LCD显示当前调奶器是否在加热。
1.3.4 铃声提醒功能
铃声提醒功能:
- 对检测的水温数据进行判断,如果超过设定的阈值,则会发送警报信息提醒用户,并且自动开启降温装置。
- 对检测的水温数据进行判断,如果低于设定的阈值,则会发送警报信息提醒用户,并且自动开启升温装置。
- 对检测的水位数据进行判断,如果超过设定的阈值,则会发送警报信息提醒用户并且显示提示灯亮。
- 对检测的水位数据进行判断,如果低于设定的阈值,则会发送警报信息提醒用户并且显示提示灯亮。
二 智能恒温调奶器-控制端子系统设计书
2.1 系统概述
智能恒温调奶器-控制端子系统共分为控制端子系统、移动监控子系统、服务器子系统。控制端子系统,采用WIFI模块实现与服务器子系统的TCP通信,将水温传感器、水位传感器的检测数据上传到服务器中,移动监控子系统基于HTTP通信方式实现与服务器子系统的通信,获取服务器中数据,再将数据进行可视化图形处理后直观的呈现给用户。
2.2 系统整体设计图
智能恒温调奶器-控制端子系统分为水温检测和水位检测模块、液晶显示模块、铃声提醒模块、远程实时自动控制。铃声提醒模块响应用户设置的提醒时间并发出提醒,远程实时自动控制模块,控制端子系统通过服务器子系统向移动端子系统发送实时水温与水位数据。
具体设计如图控制端子系统结构图 2.1 所示。
图2.1 控制端子系统结构图
2.3 智能恒温调奶器-控制端子系统硬件电路
根据系统需求分析,硬件电路规划分为单片机最小系统电路模块、水温检测电路、液晶显示电路模块、电机电路模块、铃声提醒电路模块和通信电路模块。
2.3.1单片机最小系统电路模块
最小系统电路由At89c51芯片电路与复位电路组成,拥有512字节的数据存储空间和8K字节的程序存储空间。共40个引脚,1个全双工串行通信端口,2个优先级设置,3个十六位强大定时/计数器,4个八位并行I/O端口,5个优质中断源。STC89C52单片机得时钟引脚为XTAL1和XTAL2;控制信号得引脚有RST、ALE、PSEN和EA;I/O端口有P0、P1、P2和P3.
具体设计如图 2.2、2.3、2.4、2.5 所示。
图2.2 单片机电路设计图
图2.3 时钟电路设计图
图2.4 USB 下载电路 | 图2.5 复位电路 |
2.3.2水温检测电路模块
水温检测电路使用DS18B20水温探头传感器作为电路数据检测元件。电阻值随着水温上升而迅速下降,由此可测量温湿度。VCC供电5V,VDD芯片供电线与5.1千欧姆并联,并联分流不分压,可以提供过流保护,一定程度上可以避免DS18B20内部芯片烧坏。DATA端口输出单总线数字信号,GND端口接地,形成回路。NC端口为空脚,悬空处理。
具体设计如图水温检测模块电路设计图 2.6所示。
图2.6 水温检测模块电路设计图
2.3.3水位检测电路模块
电路由XKC-Y23-V液位水位传感器为核心, LED-GND端口接地使内部LED电路连通,因为LED的驱动电流十分的小,为了避免LED烧坏,V-LED端口在连接电源时串联一个220Ω的电阻再并联一个10uF电容,提供稳定的低电流输入,LED端口连接最小系统引脚,作为应答引脚接收电频信号。 S-GND端口连接地线,VCC端口连接电源(5V),VO端口作为模拟信号的输出端。
具体设计如图 2.7 所示。
图2.7 xkc-y23-v液位水位传感器电路图
2.3.4 远程实时自动控制
无线通信模块由ESP8266 ATK-01传感器和最小的系统RX和TX端口组成。 ESP8266 ATK -01的RXD端连接到最小系统软串口的接收端,TXD端连接到最小系统软串口的发送端,RXD端连接到发光 发光二极管与上拉电阻并联连接。 当RXD端输出数据信号时,当其为高电平时,发光二极管发光;当其为低电平时,发光二极管熄灭;当有数据传输过程时,LED闪烁 对传输过程的响应。 连接到TXD端的LED也是一样。
具体电路设计如图2.11所示
. 图2.8 通信模块电路设计图
2.3.5液晶显示电路模块
液晶显示电路模块使用 LCD1602 液晶模块共16个管脚分别为RS(数据命令选择端),R/W(读写选择端),E(使能信号);VCC供电5V,VDD芯片供电线与5.1千欧姆并联,并联分流不分压,可以提供过流保护,一定程度上可以避免LCD1602内部芯片烧坏。
具体电路设计如图 2.2.7 所示。
图2.9 液晶显示模块电路设计图
2.3.6铃声提醒电路模块
铃声提醒电路模块由蜂鸣器报警和 led 灯闪烁报警两部分组成,具体电路设计如图其中信号一个接地一个接信号,电路采用直接接正,三极管控制地。
具体电路设计如图蜂鸣器模块电路设计图 2.9、led灯模块电路设计图 2.10所示
图2.10 蜂鸣器模块电路设计图 | 图2.11 led灯模块电路设计图 |
2.4 智能恒温调奶器-控制端子系统模块功能
2.4.1 水温检测模块
- 功能:
获取调奶器环境的水温数据。
- 流程:
使用Ds18b20传感器检测水温,当水温发生变化时,Ds18b20会输出不同的电平信号,接收解析这些电平信号就能获取水温,例如初始化DS18B20水温探头后读取序列号、发送RAM指令开始转换水温、复位模块、产生中断读取水温数据。
该过程如图温湿度模块功能设计图 2.12所示
图2.12 温湿度模块功能设计图
2.4.2 水位检测模块
- 功能:
获取调奶器环境水位数据。
- 流程:
使用XKC-Y23-V液位水位传感器检测当检测到有水,传感器会以高电平输出。
该过程如图水位检测模块功能设计图 2.13所示
图2.13 水位检测模块功能设计图
2.4.3远程实时自动控制
控制模块
- 功能:
用户通过该帐户登录以远程控制牛奶调节器的环境设备以开启,关闭和定时。
- 流程:
从无线通信模块接收指令,并从阈值警报模块接收警报请求。在执行指令之前,它将首先确定当前帐户ID是否由用户注册。如果这是帐户ID发出的指令请求,则设备将处理该帐户,ID指令。同时,如果Android帐户未向下层发送任何数据获取请求,则下层将在设置的时间点完成相应的数据传输和铃声提醒。
具体如图控制功能模块设计图 2.15 所示
图2.14 控制功能模块设计图
图2.15 网络调试助手连接云服务器
图2.16 wifi模块设计
ESP通信功能模块设计与通信协议
功能模块设计:
- 功能:
自动将家庭网络连接到Android终端,发送收集的瓶子环境数据,并接收处理服务器发出的控制指令。
- 流程:
使用ESP8266进行无线网络访问。 ESP8266会在启动时自动配置网络,并连接到用户指定的AP。如果连接失败,它将提示您切换到手动配置(通过串行端口)。采样期过后将收集数据。然后,将牛奶状况的环境数据传输到协议的数据位,并通过TCP协议上传到阿里云服务器。子系统每毫秒检测一次接收到的数据。接收完成后,将对获得的数据进行分析和处理。
通信协议设计:
(1)数据包格式
表2-1 通信协议格式表
起始位 | 控制位 | 数据位 | 数据位 | 数据位 | 校验和 | 结束位 |
数据获取 | ||||||
1byte | 1byte | 1byte | 1byte | 1byte | 1byte | 1byte |
0x55 | 0xAB | 0x02 | 0xXX | 0x00 | 0x00 | 0xFF |
0x55 | 0xAB | 0x03 | 0xXX | 0x00 | 0x00 | 0xFF |
控制指令 | ||||||
0x55 | 0xAB | 0x05 | 0xXX | 0x00 | 0x00 | 0xFF |
0x55 | 0xAB | 0x06 | 0xXX | 0x00 | 0x00 | 0xFF |
0x55 | 0xAB | 0x07 | 0xXX | 0x00 | 0x00 | 0xFF |
- 帧的开头是:0x55,帧的结尾是0xFH。
- 控制位:数据源或目标所代表的位。
- 数据长度位:以下数据捕获的字节数。
- 校验和:数据包长度和数据位%256。
(2)控制位说明
表2-2 控制位说明表
序号 | 控制码 | 功能说明 |
(1) | 0x02 | 水温 |
(2) | 0x03 | 水位 |
(3) | 0x05 | 加热器 |
(4) | 0x06 | 提示灯 |
(5) | 0x07 | 蜂鸣器 |
(6) | 0x08 | 散热器 |
(7) | 0x10 | 设置水温的阈值 |
- 协议描述(上传数据具体描述)
表2-3 上传数据描述表
描述 | 水温 | 加热器状态 | 继电器状态 | 蜂鸣器状态 |
数据长度 | 1byte | 1byte | 1byte | 1byte |
数据内容 | 数据位:水温整数 | 数据位:整数 | 数据位:整数 | 数据位:整数 |
(4)下发设备控制指令描述
表2-4 下发设备控制命令描述表
描述 | 加热器 | 提示灯 | 蜂鸣器 |
数据长度 | 1byte | ||
数据内容 | 0x01:开启设备 0x02:关闭设备 | 数据位1:0x01(只有开启会有定时) 数据位2:小时的十位和个位 数据位3:分钟的十位和个位 |
2.4.3液晶显示模块
- 功能:
当产品启动后显示初始化、加热器状态、实时水温。
- 流程:
用户启动产品后会自动进入加热状态,水温传感器初始化后通过数据处理在液晶显示屏上显示。
图2.17液晶显示设计
2.4.3 铃声提醒模块
- 功能:
当牛奶调节器环境数据超过其阈值时,将发送警报请求,打开相应的牛奶调节器环境设备,并干预牛奶调节器环境。还可以通过接收阈值修改指令来设置和临时存储阈值。
- 流程:
如果用户不控制牛奶调节器的环境设备,系统将自动实时检测并收集数据以与相应的阈值进行比较。如果水温之一超过阈值,则水温控制设备将响应警报请求以停止加热。 Android终端将打开提示,直到水温数据降至相应的水温阈值以下。当水温低于阈值时,设备将请求打开继电器以模拟加热。同时,LED将显示加热状态,Android终端将打开提示。
该过程如图铃声提醒模块功能设计图 2.14所示
图2.18 报警模块功能设计图
三 智能恒温调奶器-控制端子系统测试书
3.1 测试计划
表3.1 测试表
序号 | 测试时间 | 测试模块 | 测试目的 |
1 | 4月13号 | 水温与水位模块 | 检测数据是否被测量和数据的准确性 |
2 | 4月14号 | 铃声提醒模块 | 检测是否能进行数据的 比较和处理 |
3 | 4月15号 | 阿里云通信模块 | 检测元器件能否正常工 作 |
4 | 4月16号 | 远程实时自动控制 | 检测是否能连接服务器 子系统,是否能进行通信 |
模拟实际用户使用环境,按测试计划,逐一测试,观察系统是否有异常状态。若各模块均可以正常运行,则项目完成。
3.2 测试用例
3.2.1水温与水位模块
AT89C51开发板将串行端口连接到计算机的USB。 计算机将启动串行调试助手,并选择相应的外围端口。波特率设置与ATC9851相同,为9600。ATC9851会将传感器收集的数据发送到串行端口。串行调试助手然后接收这些数据并以十六进制显示它们。测试人员可以通过观察串行调试助手打印的数据来测试控制端子系统模块的正常运行。
- 如图水位检测紧贴调奶器平面部分,水流经过模块后输出高电平以此来提时水位到达了要求水位。
具体如图水位检测测试样图 3.1 所示
图3.1 水位检测测试样图
- 如图DS18B20水温探头根据调奶器环境实时检测水温,当环境水温超过用户通过App预设值时加热器状态会在status后显示关闭不在加热,当低于用户预设值时status显示开启加热器。
具体如图水温探头检测样图3.2 所示
图3.2 水温探头检测样图
表3.2 水温与水位测试表
序号 | 功能 | 输入 | 实际结果 | 预期结果 |
1 | 检测液晶屏是否正常 | 外部水温调奶器环境TEST | 液晶屏上显示“TEST” | 液晶屏上显示“TEST” |
2 | 检测液晶屏 是否正常 | 外部水温调奶器环境45℃ | 液晶屏上显 示“45℃” | 液晶屏上显示 “45℃” |
3 | 检测液晶显示是否正常与显示加热状态 | 外部水温调奶器环境60℃ | 液晶屏上显示“60”status:no | 液晶屏上显示“60”status:yes |
4 | 检测液晶显示是否正常与显示加热状态 | 外部水温调奶器环境18℃ | 液晶屏上显示“18℃”status:yes | 液晶屏上显示“18”status:yes |
5 | 测量水位 | 外部调奶器水位<100ml | App显示“未到达水位” | App显示“未到达水位” |
6 | 测量水位 | 外部调奶器水位>100ml | App显示“超过水位” | App显示“超过水位” |
7 | 测量水位 | 外部调奶器水位==100ml | App显示“到达水位” | App显示“到达水位” |
3.2.2铃声提醒模块
AT89C51开发板将串行端口连接到计算机的USB。 计算机启动串行调试助手。 设置串行调试助手后,智能恒温调奶器-控制端子系统将模拟外部牛奶调节器环境的变化,以使收集的数据超过其相应的阈值。 超过阈值后,检查水温控制设备。 如果是,则确定阈值报警模块正常工作,否则,确定阈值报警模块工作异常。
表3.3 铃声与提示灯测试表
序号 | 功能 | 输入 | 实际结果 | 预期结果 | |
1 | 测试水温铃声提醒 | 设置水温阈值50℃ | 外部水温调奶器环境25℃ | 蜂鸣器不响、提示灯常量 | 蜂鸣器不响、提示灯常量 |
2 | 测试水温铃声提醒 | 设置水温阈值50℃ | 外部水温调奶器环境31℃ | 蜂鸣器不响、提示灯常量 | 蜂鸣器不响、提示灯常量 |
3 | 测试水温铃声提醒 | 设置水温阈值50℃ | 外部水温调奶器环境40℃ | 蜂鸣器不响、提示灯常量 | 蜂鸣器不响、提示灯常量 |
4 | 测试水温铃声提醒 | 设置水温阈值50℃ | 外部水温调奶器环境50℃ | 蜂鸣器响提示灯不亮 | 蜂鸣器响提示灯不亮 |
6 | 测试水位铃声提醒 | 设置水位值100ml | 外部水位调奶器环境50ml | LED 灯闪烁 | LED 灯闪烁 |
7 | 测试水位铃声提醒 | 设置水位值100ml | 外部水位调奶器环境60ml | LED 灯闪烁 | LED 灯闪烁 |
8 | 测试湿度铃声提醒 | 设置水位值100ml | 外部水位调奶器环境70ml | LED 灯闪烁 | LED 灯闪烁 |
9 | 测试湿度铃声提醒 | 设置水位值100ml | 外部水位调奶器环境80ml | LED 灯闪烁 | LED 灯闪烁 |
10 | 测试湿度铃声提醒 | 设置水位值100ml | 外部水位调奶器环境100ml | LED 灯不闪烁 | LED 不灯闪烁 |
3.2.3远程实时自动控制
AT89C51开发板将串行端口连接到计算机的USB。计算机启动串行调试助手。设置串口调试助手后,在计算机上打开网络调试助手,设置协议类型为TCP Server,设置本地主机地址和本地端口后打开服务,然后打开串口调试助手,ESP8266开始自动AP配置,然后连接到服务器,网络调试助手会看到新的客户端连接,网络调试助手会向客户端发送字符信号,ESP8266模块会接收到数据并将其打印到串口。因此,此时,串行调试助手将接收网络调试助手发送的字符数据。网络调试助手还将接收串行助手发送的字符数据。如果测试数据没有丢失或两端都重复,则确定无线通信模块工作正常,否则,确定无线通信模块工作不正常。
具体如图测试样图 3.3 所
图3.3 测试样图
表3.4 网络通信测试表
无线通信模块测试 | ||||
序号 | 功能 | 输入 | 实际结果 | 预期结果 |
1 | 检测无线设备是否正常 | 给模块发送AT | 串口调试助手还回OK | 串口调试助手还回OK |
2 | 检测无线设备是否能连接服务器子系统 | 发送AT相关指令 | 串口调试助手显示 connection OK | 串口调试助手显示 connection OK |
控制端子系统上传模块测试 | ||||
序号 | 功能 | 输入 | 实际结果 | 预期结果 |
1 | 检测水温数据上传 | 外部水温调奶器环境40℃ | 服务器子系统显示湿度40℃ | 服务器子系统显示湿度40℃ |
2 | 检测水温数据上传 | 外部水温调奶器环境40℃ | 安卓子系统界面显示湿度40℃ | 安卓子系统界面显示湿度40℃ |
3 | 检测水位数据上传 | 外部水温调奶器环境50ml | 服务器子系统显示湿度50ml | 服务器子系统显示湿度50ml |
4 | 检测水位数据上传 | 外部水温调奶器环境100ml | 安卓子系统界面显示湿度100ml | 安卓子系统界面显示湿度100ml |
设备控制模块测试 | ||||
注:为便于说明以下发声器指铃声功能 | ||||
序号 | 功能 | 输入 | 实际结果 | 预期结果 |
1 | 加热器设备开启功能 | 服务端发送开启指令 | 设备开启 | 设备开启 |
2 | 加热器设备关闭功能 | 服务端发送关闭指令 | 设备关闭 | 设备关闭 |
3 | 发声器设备开启功能 | 服务端发送开启指令 | 发声器开启 | 发声器关闭 |
4 | 发声器设备关闭功能 | 服务端发送关闭指令 | 发声器关闭 | 发声器关闭 |
5 | 提示灯设备开启功能 | 服务端发送开启指令 | 提示灯开启 | 提示灯开启 |
6 | 提示灯设备关闭功能 | 服务端发送关闭指令 | 提示灯关闭 | 提示灯关闭 |
四 智能恒温调奶器-控制端子系统说明书
4.1引言
此系统分为控制端子系统、数据处理和网络通信三大模块,其中控制端子系统模块对现实环境数据的检测和储存,通过数据处理模块来实现铃声提醒功能,还通过网络通信来实现此系统与服务器子系统的数据交互,从而实现移动端的远程监控功能。
4.2 系统特色说明
控制端子系统是能调奶器-控制端子系统的重要部分,它使用了DS18B20水温传感来测量调奶器的水温;使用xkc-y23-v液位水位传感器来测量调奶器水位;能够准确计时的获取到数据,将获取到水温、水位、数据通过LCD液晶展示出来,方便用户查看实时数据。
4.3系统的使用说明
4.3.1开发平台
开发平台AT89C51
4.3.2资源需求与配置要求
硬件环境:51单片机开发箱、水位检测(xkc-y23-v)、水温检测(DS18B20)
软件环境:Keil4
4.3.3使用步骤
- 生成hex文件;
- 搭建好51单片机开发箱的硬件电路图,DS18B20(VCC、GND、DATA接单片机P3^7)、xkc-y23-v(VCC、GND、DATA接P3^6)、提示灯接P1^1-P1^4、发声器接P1^5;
- 插入电源;