一种基于 arduino 的智能家居系统开发设计
摘 要:随着物联网技术的高速发展,本文提出了一种基于 arduino 系列芯片的智能家居系统设计
方案。本方案以智能家居控制芯片为核心,包含了多种智能家居产品,集本地控制、环境感应两种种控
制方式,适合家庭使用以及相关教学实验开发。
关键词:智能家居 arduino 本地控制 环境感应
0引言
随着科学技术的发展,人类的生活水平有着明显的提高,人们越来越重视居住的舒适性、实用性、功
能性和智能性。智能家居系统是以生活环境为基础,融合了通信、网络、计算机、自动控制等现代技术
形成的集功能性、服务性、管理性为一体的舒适、安全、便利、环保的智能系统 [1]。智能家居系统致力于服
务居住者,为其提供舒适的、人性化的、更加科学的居住环境,提高居住者的家居生活质量的同时,并实
现环保节能的居住理念。为了探讨这个理念,本设计研制了一种基于 arduino 的智能家居系统的功能模型。
1 智能家居系统简介
1.1 智能家居系统整体设计
本文基于 arduino uno 芯片,设计了一个智能家居系统的模型,该系统由小夜灯控制模块、智能晾衣
杆、室内智能照明系统、温湿度调节系统、火灾及易燃气体检测系统等分系统组成。智能家居系统的功能
树如图 1 所示。
1.2 分系统功能介绍
图1 系统功能说明图
小夜灯控制分系统:该分系统能在夜间利用光电管模块感知主人的行为变化,当感知到主人要下床的
动作后,打开地面 LED 灯提供照明,为主人提供一个合适亮度的照明,既可以方便主人起夜,防止主人摔
倒,又不影响他人休息;
智能晾衣杆分系统:当下雨的时候,智能晾衣杆分系统能通过雨滴传感器,感知到天气变化,自动驱
动舵机转动收回晾衣杆。
智能照明分系统:利用光敏传感器检测室内外的光线强度,当室内较暗时,开启智能照明系统;并且
根据光线亮暗度,会自动调节室内照明灯的工作功率,以达到节能的目的。另外,可以通过按键切换到睡
眠状态,关闭智能照明系统,开启小夜灯功能。
温湿度调节分系统:利用多点分布的 DHT11 温湿度传感器,实时检测室内的温湿度值,当室内湿度低
于设置标准值时,开启空气加湿器,提高室内空气湿度,当室内温度(湿度)高于设置标准值时,进行通
风操作。系统可以通过按键设置温湿度标准值调节;
火灾及易燃气体检测分系统:利用烟雾传感器检测空气中易燃气体或燃烧后的固体小颗粒。一旦发现
易燃气体和燃烧后的固体小颗粒超标,立即产生报警。提示主人留意火灾或煤气泄漏问题。
2 智能家居系统的硬件平台设计
智能家居系统的硬件部分包括 arduino uno 主控板、DHT11 模块、5V/12V/24V 继电器模块、风扇模块、
舵机模块、雨滴传感器模块、超声波雾化器、蜂鸣器模块、光电管模块、光敏电阻模块、LCD1602 显示模块、
小灯珠及 LED 灯。系统分析图如2所示。硬件设计主要以温湿度调节分系统所用到的模块为例进行叙述。
。
2.1 Arduino uno 主 控 板
图 2 系统硬件说明图
本设计中的智能家居系统的控制芯片是基于 Arduino 芯片设计的处理器核心是 ATmega328,同时具有
14 路数字输入/输出口(其中 6 路可作为 PWM 输出),6 路模拟输入,一个 16MHz 晶体振荡器,一个 USB 口,
一个电源插座,一个 ICSP header 和一个复位按钮。uno 已经发布到第三版,与前两版相比有以下区别:一
个在 AREF 处增加了两个管脚 SDA 和 SCL,支持 I2C 接口;另一个就是增加 IOREF 和一个预留管脚,将来扩
展板将能兼容 5V 和 3.3V 核心板。改进了复位电路设计 USB 接口芯片由 ATmega16U2 替代了 ATmega8U2。
ATmega328 包括了片上 32KB Flash,其中 0.5KB 用于 Bootloader。同时还有 2KB SRAM 和 1KB EEPROM。除
此之外,有些引脚有特定功能 TWI 接口(SDA A4 和 SCL A5):支持通信接口(兼容 I2C 总线)。[2]电路图
3 如下。
2.2 温湿度传感器模块
图 3 芯片引脚电路
本设计采用的是温湿度传感器是 DHT11 数字温湿度传感器,它是一款含有已校准数字信号输出的温湿
度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保它的可靠性与长期稳定性。传感
器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机和连接。每个 DHT11 传感器
都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP 内存中,传感器内部在检测信
号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。DHT11 为 4 针单排引脚
封装。四个引脚分别为 VDD,连接 3V 到 5.5V 供电都可;data 引脚,用于串行数据传输;NC 引脚,将他悬
空即可;最后一位为 GND 引脚。接地。由于超小的体积、极低的功耗,信号传输距离可达 20 米以上,所以
本系统就采用了 DHT11 作为温湿度采集元件。
2.3 继电器模块
图 4 DHT11 应用电路
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通
常应用于自动控制电路中,是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调
节、安全保护、转换电路等作用。
电磁式继电器由铁芯、线圈、衔铁、触点簧片等组成。继电器工作时,当在输入回路端加上电压,线
圈中就会流过电流,线圈产生电磁效应,衔铁受到电磁力吸引,克服弹簧的拉力,吸向铁芯,衔铁的动触
点与静触点(常开触点)吸合,输出电路导通。当输入回路断电后,电磁的吸力也随之消失,衔铁就会在
弹簧的拉力下,返回原来的位置,使动触点与原来的静触点(常闭触点)分离。这样吸合、释放,完成输
出回路的导通和断开。继电器控制电路如图 5 所示。
图 5 继电器控制电路
2.4 风扇模块
本设计应用到的风扇为 12V 直流风扇。模块的三个引脚分别连接电源线、地线和测速信号输出线;直
流风扇可通过改变 DC 电压或者使用低频 PWM 驱动信号来控制。3 线风扇有一根测速信号输出线,可以检测
风扇转速。用户可通过读取风扇转速值调整风扇转速。
2.5 超声波雾化器
超声波雾化器的工作原理是利用电子高频震荡(振荡频率为 1.7MHz 或 2.4MHz,超过人的听觉范围,
该电子振荡对人体及动物无伤害),通过陶瓷雾化片的高频谐振波,将液态水分子结构打散而产生自然飘
逸的水雾,再通过小风扇把雾从底部吹向出口,使空气湿润并伴生丰富的负氧离子,能清新空气,增进健
康,营造舒适的环境。本次设计应用 24V 继电器开启超声波雾化器,调节空气湿度。[5]超声波雾化器硬件电
路如图 6。
图 6 超声波雾化器硬件电路
2.6 LCD1602 显示模块
LCD1602 是一种常用的工业字符型液晶,能够同时显示 16x02 即 32 个字符。LCD1602 液晶显示的原理
是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。LCD1602 是一种工业字符型
液晶,能够同时显示 16x02 即 32 个字符。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个
不同的点阵字符图形,在单片机编程中还可以用字符型常量或变量赋值。1602 采用标准的 16 脚接口。硬件
电路结构见图 7 所示。以引脚功能见表 1。
图 7 LCD1602 引脚电路图
表 1 LCD 1602 引脚功能表
3.智能家居系统的软件设计
智能家居系统的设计及制作是基于 ATmega328 单片机开发的,它构建于开放原始码 simple I/O 介面版,
并且具有类似于 Java、C 语言的 Processing/Wiring 开发环境。Arduino IDE 基于 processing IDE 开发。
对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino 语言基于 wiring 语言开发,不需要太多的
单片机基础、编程基础,简单学习后,即快速的进行开发。对于绝大多数模块的使用,可直接调用其标准
的库函数即可。
本次编程主要工作即驱动各模块进行工作。设置判断条件,对当前环境进行判断,达到判断标准,触
发其他模块进行工作。主要模块库文件“dht11.h”,“lcd1602.h”,“Servo.h”等库函数调用即可。
程序即对当前几个环境值进行检测,当满足一定判断条件或情况时,则产生相应的设备开启或关闭,
以调节居住环境达到舒适的状态。电路上电之后,系统会进行初始化,其中包含对各个功能模块的初始化。
然后系统会对要检测的几个环境值进行检测,实现对应的功能。
我们将光电管安装在床头,只要挥手,光电管就可检测到触发信号,打开小夜灯。再次挥手,就可再
次关闭小夜灯。烟雾报警器开始检测环境中 C0、甲烷、煤气等易燃气体,如果气体超标,就会触发系统的
蜂鸣器报警。当室外下雨时,雨水滴在检测板上,雨滴传感器会反馈一个低电平信号。单片机收到低电平
信号,将控制舵机转角 90 度,收回衣架。检测板中雨水晾干,又恢复高电平状态,晾衣杆将转回至 0 度。
处于晾晒的过程中。温湿度传感器检测开始检测室内温度和湿度,返回两个模拟值,程序当中设定标准值
与其比较,当温度高于此标准值或湿度过高时,会通过继电器去打开排风扇降温或排湿。湿度过低时,将
打开超声波雾化器,增加空气湿度。并通过液晶屏显示室内此时温度湿度情况。最后通过光敏电阻检测的
室外的亮度。根据亮度返回一个模拟值给单片机,单片机根据反馈的模拟值,通过输出 PWM 波来控制室内
照明的亮度。可以适当补光,达到节能的作用。程序流图如 7 所示。温湿度报警器子程序如图 8 所示。
图 7 总程序流程图
图 8 DHT11 程序流程图
4. 功能模型实现图
功能模型插上电源后,所有功能开始工作,此处以温湿度调节功能为例进行简要功能叙述。DHT11
温湿度传感器初始化后,开始检测环境温度与湿度。在程序内已设置好判断标准,温度湿度与相应标准进
行比较,一旦温度过高,芯片会通过继电器,打开直流风扇工作。如图 9。同理,检测到的湿度值与标准进
行判断比较,如果低于判断的湿度标准,即判定空气干燥。控制芯片通过继电器控制超声波雾化器,进行
增湿工作,如图 10。同时 LCD1602 会显示当前的温度值与湿度值。如图 11。
图 9 直流风扇工作图
图 10 超声波雾化器工作图
图 11 LCD1602 工作状态
5.结束语
本文设计的智能家居是基于 arduino uno 主控板上开发。其包括小夜灯控制模块、智能晾衣杆、室内
智能照明系统、温湿度调节系统、火灾及易燃气体检测系统多个家居功能。同时,配合指纹解锁模块、NRF
通信模块、门禁控制器、网络摄像机等安防产品可组建成更完善的智能家居系统。本系统具有控制方式多
样灵活、模块功能可扩展性强、设备操作简单易行等优点,适合家庭、教学、实验开发等多个领域。
参考文献:
[1] 冯凯,董世华.智能家居的由来及其发展趋势[J]. 中国新技术新产品,2010(6):7.
[2]程晨. Arduino 开发实战指南[M]. 北京: 机械工业出版社, 2012.
[3]孙良彦,国外湿度传感器发展动态[J],传感器技术, 1996,
38(5): 2-3
[4]陈启锐.浅析步进电机的工作原理[J].科技向导,2011(35):101.
[5]刘志强,罗庆生。种智能化温度检测系统的设计[J].中国测试技术, 2003,29(3): 95-98
[6]陈杰,黄鸿.传感器与检测技术[M].2 版.北京:高等教育出版社,2010.