物联网智能家居突出特点就在于家居都连接入网,且都可以通过一定手段进行智能控制。
图3-1 物联网智能家居框架
如图3-1所示,构建了一个现代家庭中所涉及到的所有物联网智能家居相关的框架。包括了安防、照明、互联网、影音、饮水、停车等方方面面。下面本设计将从其中一个方面具体阐述方案的设计与实现过程。
在家居生活中,热水器是一个必不可少的家电产品,这里面就需
要一个智能的水温液面控制系统。可以监测内部水温及加热桶内的液面高度,保证热水器的安全、正常的运行。本设计就针对这一系统进行设计与实现。
本设计选择了一个智能水温液面控制系统,该系统可以应用于家庭饮水机中。主要实现的功能有:水温测量与显示,预设温度加热,水温长时间保持在预设值,程控分段加热,液面高度测量,低液位加热报警保护。
本方案主要使用89C52单片机作为MCU进行控制,以DS18B20作为温度传感器将水温反馈给单片机,单片机处理后通过LED数码管进行显示。单片机外接按键,通过外部中断触发的方式接受按键设定加热温度值。
液面部门采用超声波传感器测量,当液面高度低于最小加热高度时,返回一个停止加热信号并由单片机输出一个电平驱使蜂鸣器报警。加热部件主要利用继电器控制两个20W的加热棒,进行加热,可以同时工作快速加热也可以单个工作维持温度稳定。
根据上面的概述,本系统将实现一个如图3-2的水温加热控制系统,具有水温加热、温度保持,液面高度测量、液位低报警功能。根据上述功能,形成了如下这个系统框图:
|
超声波测距模块 |
单片机 |
蜂鸣报警器 |
按键 |
加热继电器 |
DS18B20 |
与门电路 |
指示灯 |
单 片 机 |
LED温度显示 |
按键 |
图3-2 智能水温液面控制系统框图
框图上部,实现温度控制。该部分所采用的温度传感器为Dallas半导体公司的数字化温度传感器DS18B20,它是世界上第一片支持“一线总线”接口的温度传感器。“一线器件”体积更小、适用电压更宽、更经济。全部传感元件及转换电路集成在形如一只三极管的集成电路内。
DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线,当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。
图3-3 温度控制电路
TO-92封装的DS18B20引脚功能描述见表3.1。
序号 |
名称 |
引脚功能描述 |
1 |
GND |
地信号 |
2 |
DQ |
数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 |
3 |
VDD |
可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 |
表3.1 DS18B20详细引脚功能描述
因为一线通信接口,必须先完成ROM设定,否则记忆和控制功能将无法使用。主要首先DS18B20提供以下功能命令之一:读ROM, ROM匹配,搜索ROM,跳过ROM,报警检查。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20所测温度。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。所有的数据的读、写都是从最低位开始。
键盘共有三个键,判断K3~K5键是否按下,可采用软件查询和中断的方法,当某个键按下时,低电平有效。3个键K3~K5的功能定义如表所示。
K3~K5键的定义
按键 |
键名 |
功能 |
K2 |
功能转换键 |
此键按下,显示温度设定值,按键松开,显示当前温度 |
K3 |
加1键 |
设定温度值加1 |
K4 |
减1键 |
设定温度值减1 |
图3-4 按键控制电路
继电器主要用来控制加热棒工作,实现强弱电隔离,保证操作安全。在这里,就需要温度检测子系统和液位控制子系统联合协调工作。因为,决定是否加热需要满足两个条件,其一水温低于设定温度,其二液面高度大于最小加热高度。只要当这两个条件同时满足时,才允许系统开始加热。因此从温度检测子系统过来的加热使能信号和液位控制子系统发出的加热开启信就需要通过一个与门芯片,然后将输出结果传递给继电器控制端P10。
控制P10的高低电平来控制继电器的断开和闭合,当P10口为低电平时,三极管导通,发光二极管亮,控制继电器开始加热,当P10为高电平时,三极管截止,继电器断开,停止加热。
图3-4 继电器控制电路
LED数码管是一种半导体发光器件,其基本单元是发光二极管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,通过由各自独立的I/O线控制,当单片机的P0口输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对P2.0-P2.3位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在本设计中采用了四位八段数码管,用动态驱动来显示温度的值,如图3-5所示。
图3-5 LED显示电路
图3-6 液位控制子系统框图
图3-7 超声波模块原理图
液位控制子系统主要完成两个功能,其一测量液位高度并通过LED显示;其二根据液面高度决定是否继续加热,防止加热棒干烧烧毁。超声波传感器通过J1口的2、3端口(TX、RX)与单片机进行数据通信。将4口接5V电源供电,1口直接共地。
超声波测距模块的工作时序图:
图3-8 超声波模块工作时序
以上时序图表明你只需要提供一个10uS 以上脉冲触发信号,该模块内部将发出8 个40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;测量时周期为60ms以上,以防止发射信号对回响信号的影响。
在这里,液面信号和温度信号协调工作。因为在温度不到预设温度需要加热工作时,还需要判断一下液面的高度是否符合加热要求。所以,这时温度控制子系统的加热使能信号和液面控制子系统的使能信号需要通过一个与门电路来实现。只有当两种使能信号同时满足条件输出后,才能开始加热动作。这里我们使用74LS08芯片,这是一个四路二输入芯片。