宋瑞博, 张 妍, 连梦慧
(大连海洋大学 信息工程学院, 辽宁 大连 116023)
家居环境是我们室内活动的重要场所,一个好的家居环境,能够让人感到有很高的舒适度,同时能保持很好的情绪,所以人们越来越重视家居环境的改善。随着物质生活水平的提高,人们消费理念也在发生改变,追求更加个性、舒适、环保的产品,也更易接受酷炫和富有科技感的智能产品。对家居环境造成影响的因素:一个是随着当今社会的经济发展,地球环境污染日益严重,导致空气质量急剧下降;二是家里装修,由于选用的装修材料不够环保,也会造成室内空气污染;三是天然气泄漏、室内温湿度不适应人体的需要等因素。针对以上原因,本文设计一款以物联网为基础的智能家居系统。本系统利用STM32 单片机来做主控芯片,利用各种传感器监测室内环境参数的状况,通过控制电路控制家电动作,同时通过通信模块实现远程控制,从而为人们营造出更美好的生活环境。
系统的主控制板和各外围芯片进行防水封装后可以放置于一个带两个轮子的载体中。载体高度不宜太高,有利于保持稳定度、方便通过较为低矮的空间,减少转向。该系统主要利用微处理器(STM32 单片机)和机器视觉模块(OpenMV)模块在室内自动巡航,并利用各种传感器对各类环境参数进行检测,并定时将各种传感器数据传入巴法云服务器以及在终端可视化展示,动态观测各种环境参数变化、接收报警、打开特定电器或手动改变载体方向。主控制器选用STM32单片机,其内核是Cortex-M3,是由ST(意法半导体)公司推出的一种ARM芯片。该芯片具有价格低、外设多、实时性能优异、低功耗控制以及低开发成本等优点[1]。系统总体结构图见图1。
图1 系统总体结构
考虑到环保节能的问题,本次设计采取太阳能板与锂电池协同供电。在锂电池电量不足时,利用太阳能板或市电为锂电池充电;当太阳能所供的电压不足时,锂电池利用电阻降压为其他模块供电。
太阳能方案是利用太阳能板和CN3816 太阳能控制芯片,该芯片具有自动跟踪太阳能板的最大功率点的功能,可以最大限度地利用太阳能板的输出功率。市电方案是利用变压器进行降压,利用场效应三极管整流,减少了对二极管的功耗,能够更加高效地利用电能,设计如图2 所示。
图2 市电为锂电池充电电路
监控模块主要是通过选取不同类型的传感器来监测各种环境参数。传感器又叫电五官,是获取环境信息的主要途径和手段,其具有高精度、稳定性好、处理方便等特点,本系统主要由主控芯片STM32 控制不同的传感器,机器视觉模块配合这些传感器获得不同房间的环境参数。传感器主要包括:
1)温湿度传感器DHT11,该传感器可实现对信号自动校准,具有较高的测试准确性[2],它的2 脚与STM32PB7 相连。
2)甲烷传感器MQ-4,它是一种SnO2 半导体气体传感器,能较好地完成对煤气泄漏的监测。
3)空气质量传感器MQ-315,它可以测量空气污染的主要成分,如二氧化碳,氮氧化物,氨气,酒精,苯类等。MQ-4 和MQ-315 这两个传感器是将成分含量转换成不同的电压值,利用与STM32 的PA4、PA5 相连并利用其封装的AD 模块检测电压,在STM32 将数据进行转换,利用通信模块,实现STM32 与云服务器相连,实现远程检测与控制。
为了实现更加智能的家居系统,本系统中还载有红外发射接收模块,将此模块的输出引脚与STM32的PA1 相连,若将遥控器对准红外接收管,红外接收管将红外信号转换成不同高低电平时长的信号,使用STM32 定时器TIM2 捕获功能,获得高低电平的时长,即是红外编码,并将该编码存储到内存中。利用STM32 定时器TIM3,实现定时监测环境数据,然后根据其手册计算出环境参数与电压值的关系,根据经验设定阈值,并将接收到的数据与阈值比较,如果超过则控制STM32 的定时器TIM2 在PA1 引脚输出对应编码(高低电平时长),使红外发射管控制家电开关,同时检测到煤气泄漏、火灾等报警利用通信模块远程通知业主。这样可以充分利用STM32 的控制存储优势,并利用云平台储存数据,在手机终端进行接收。
本系统选择12864LCD 作为显示屏。12864LCD是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及128×64 全点阵液晶显示器组成。12864LCD显示屏利用I2C 协议与STM32 通信,数据时钟引脚分别与PB8、PB9 相连,并实时显示传感器的值,同时利用8266Wi-Fi 模块获得时间与日期,天气等与空气情况一起显示。同时系统调节阈值的过程中也可以通过12864LCD 显示阈值,方便观察调节的进度。阈值硬件调节是通过对普通的矩阵键盘稍作修改,拓展4×4 矩阵键盘,利用二极管的单向导电性,构造一个如图3 的矩阵键盘,节约了4 个I/O 口,对于保留的4个I/O 口分别与STM32 的PB10-PB13 相连,对于第五列的按钮单独查询,再对左边3×4 的按钮通过拉高其中三个引脚,置零另外一个引脚,依次识别得到按钮坐标。相关代码如下:
图3 键控电路
实现硬件对阈值的调整。
当某一参数超过阈值,控制STM32 的PA6 引脚进而控制蜂鸣器报警煤气泄漏、火灾报警,以及识别成功地提醒。即利用TIM4 功能输出不同频率的PWM波控制三极管的开闭,高电平导通,低电平闭合,进而使无源蜂鸣器接收到不同频率的PWM 波,进而生成不同的声音如警告声和提示音。设计电路见图4。
图4 报警电路
图5 小程序截图
随着测量值和阈值差距的增大,STM32 输出越高频率的PWM波,得到越尖锐的报警声。
在避障模块主要依靠机器视觉模块(OpenMV)。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作[3]。OpenMV 是集成了摄像头模块的STM32 单片机,控制电机驱动板L298N,IN1-IN4 分别与OpenMV P0-P3 相连,ENA、ENB 引脚与P7、P8(PWM 输出引脚) 相连,根据IN1-IN4 的电平高低情况控制两个轮子转动方向,带动载体运动,它可以利用PWM脉冲调制的方法,即改变P7、P8 引脚PWM占空比,改变两个轮子转速,进而实现改变运动方向;通过摄像头接收的图像,利用测距和识别算法,识别出障碍物,改变两个舵机的转速,实现避障、自动巡航。当然我们同样可以通过机器视觉模块对一些其他方面的监测,如入侵监测、家庭录像、辅助拍照等。
信号传输是物联网的核心,云服务器是整个系统数据的处理及存储站,是整个物联网系统的重要组成部分[4],我们选择巴法云服务器,成本低且能完成系统要求。为了实现实时监控,我们选用ESP8266WIFI模块, 作为连接云服务器与传感器的桥梁,利用STM32 的USART2 引脚(PA2、PA3)与8266 的TX、RX相连实现串行通信,同时利用PB0、PB1 控制8266 使能,将感知层的数据传送到巴法云服务器。
终端利用微信开发者工具开发微信小程序。微信开发者工具能帮助微信后台页面的开发者更便捷安全地调试微信内的网页,而无须去借助一些模拟类软件。微信开发者工具开发原理是集成了Chrome DevTools 和基本的移动调试模块,可进行微信内网页调试与微信小程序调试,开发的小程序具有独有的优势,优势如下[5]:小程序相对于APP 开发维护成本低,可以降低项目运营成本;小程序依附于微信中,不用下载其他APP,小程序更适合为大众使用;微信小程序与云端用MQTT 为通信协议与巴法云服务器端通信,得到每个房间的环境状况,方便终端对其观测、了解环境状况。MQTT 相关js 代码如下:
小程序部分包括两部分环境监测部分与个人中心,环境监测部分接收各个传感器的值,包括所处的位置,天气,空气质量等参数,通过链接可以进行全局报警设置,个人中心部分包括项目介绍,系统设置等信息。
根据硬件设计以及功能需要,设计电路并编写单片机程序,利用KEIL 软件和ST-Link 调试器,在线对单片机进行仿真,再将程序烧录到单片机内。调试过程是按照设计的电路图在面包板上连接测试,上电之后观察电路各模块参数是否正常。如环境参数测量能否显示,数据是否传入微信小程序,最后利用嘉立创制PBC 板,焊接电路,测试图和实物见图6、图7。
图6 测试图
图7 实物图
本系统利用KEIL 等软件进行硬件编程,微信开发者工具设计微信小程序,最后制PBC 板组成实物,通过测试可以较好地实现预期的功能。本系统实现稳定性高,电路结构简单,性价比高,使用元器件通用性高等特点,更能很好地满足人们的需求。但一些模块的智能化还有待改善,离真正的智能家居,有一定的距离。本系统很好地将物联网技术与传感器技术结合,实现了家庭中的电器设备与互联网、物联网技术进行互联互通,体现了物联网技术在人们生活中的应用,具有一定的现实意义。