APP下载

基于STM32的智慧家庭设计

2021-07-14刘鹏飞张微风吴晨旭孙晓明

液晶与显示 2021年6期
关键词:光照度智能家居传感器

刘鹏飞, 张微风, 吴晨旭, 孙晓明

(哈尔滨理工大学 测控技术与仪器黑龙江省高校重点实验室,黑龙江 哈尔滨 150080)

1 引 言

随着现代经济与科技水平的迅猛发展,互联网技术的不断深入发展和成熟,物联网开始逐渐步入社会大众的视野。早在2009年的8月,温家宝总理就提出了“感知中国”这一重要的战略,在国家的“十二五”规划中物联网产业作为新兴的战略性产业得到了大力的扶持与培育,人们将不单单实现人与物体之间的感应与通信,更重要的是能够实现物体与物体之间的自主交流、控制、协同工作[1]。智慧家居系统是现代电子科学、通讯技术与自动化互相结合、相辅相成的科技产物,其中的智能家庭控制系统的主要目标就是供应高效、合理的生活环境,用以保护户主的生命财产安全,为户主创造出放松、温馨的家居生活环境。

从世界范围的角度来看智能家居的发展,其提出到现在已经有很多年了。法国的Marie Chan[2]等人通过对老年人生活习惯的观察进而研制了老年人在家庭生活中密切需要的各种智能装置设备,并且可以根据不同人群的生活需要给与适合他们的可穿戴或者在室内装置植入式的智能系统和辅助系统。Johari[3]等人研究了利用GSM模块通信的智能家居电子控制系统,意图通过此技术减少家居电能的无端浪费。但通常来讲传统的智能家居是依靠复杂的布线来实现用户的控制,但是所面临的后果就是功能的单一性和难以维修性。通过使用物联网技术,能够促成设备之间的基础无线通信与长距离监控,因此大幅减弱了智能家居的局限性[4]。

从国内的角度来看智能家居的发展,目前存在许多问题。首先是不同公司所采用的研发技术不尽相同,导致对同一种智能产品的控制也大相径庭。不同厂商生产出来的产品不互相兼容,甚至有时相同厂商生产出来的产品也是互相独立,不能够进行集中控制,用户体验差,不利于智能家居向更深层次的发展。其次由于我国智能家居发展时间比较短,目前很多技术还处于起步阶段,从而导致部分能够进行集中控制的智能家居系统安装和使用成本都很高,一般只有高档住宅区才有能力安装此产品,普通用户难以接受。

针对上述问题与不足,本文设计了一个简易实用的家庭系统,相比于目前市面上各功能相互独立的智能家居系统,例如采用不同系统控制的防盗系统、环境检测系统等,本文设计的系统将人脸识别自动开门、室内CO浓度检测与处理、室内光照度检测与控制照明、室内温度检测显示、室内离人安防检测报警等功能有序地实现在一套系统中,无需多系统互相协调,安全可靠。并且相比于同种市面上能够实现集中控制的智能家居系统,本系统的成本低廉,使普通用户也能够享受到智能家居带来的便捷生活。

2 系统方案的选取与设计

2.1 系统总体结构

本文采用基于Cortex-M3内核的STM32F103RCT6芯片作为主控,并调用OPEN MV实现人脸辨认,利用温度传感器、光电开关、热释电模块、舵机、CO传感器、光敏传感器与直流电机等模块相配合用以实现智能监测并处理家居环境信息。部分采集数据与处理结果会在TFT_LCD显示屏上进行对应的显示。如果检测到异常CO值则自动启动风扇以提供换气功能。如果在户主离开的情况下有外人闯入则 GSM 无线报警模块将发送报警短信至户主手机端。自动采集室内环境光照度,在低于正常生活需要标准时则自动开启灯光,高于标准值时关闭灯光,以起到节能作用。最后通过无线保真(Wireless-Fidelity,WIFI)方式从手机端传输开门指令自动开关门。

基于上述功能论述的整体结构图如图1所示。

图1 系统整体结构图Fig.1 System overall structure diagram

2.2 人脸识别系统

本文采用LBP(Linear Back Projection)特征值提取用来分辨不同的人脸,LBP俗称累加法,是很早开始利用ECT图像重建的成像算法,其通过将固定一点包含在内的所有投影光线进行叠加,再通过反向的计算加估算从而得出这一固定点的密度值。从成像的原理来看,这种做法属于不完全雷登逆变换[5],完整的雷登逆变换需要包含反投影、归一化、微分、希尔伯特变换等步骤。在数字图像处理逻辑和智能识别领域内,该方法后来又提升为一种比较合理的描述算子,在其提取特定图像局部纹理信息时,不受图像光照强度的影响,即光照强弱对结果具有不变性。LBP也有很多的变种和改进,单纯的LBP算法是获得固定点的像素和其周围像素值的对比程度,通常来讲就是检测其两者的对应差异度,在其控制范围内根据LBP值统计其直方图,把直方图作为判别特性的依据。这样做的益处是在特定程度上规避了图像没有100%瞄准的问题,也对LBP特征做了降维处理。对于获得的直方图特性,有多种方式可以判别其相似性。设想已知人脸直方图为Mi,待匹配人脸直方图为Si,那么可以通过直方图交叉核方法或者卡方统计方法计算出来:

(1)直方图交叉核方法:

(1)

(2)卡方统计方法:

(2)

本文选用的是OpenMV嵌入式图像处理摄像器,简单来说,它是一个可编程的摄像头,通过 MicroPython程序库,可以很方便地调用部分机器视觉开源算法。在MicroPython函数库中,对所捕获的图像的LBP键点的提取有固定的函数从roi输入图像中提取局部二值模式(LBP)特征值。然后,通过编写采集人脸 LBP 特征值的函数进行建立家庭成员的人脸函数库,摄像头实时采集的图像的 LBP 键值跟图像库里的每个人脸图片一一进行比对,计算出每个的特征差异度值,一旦发现正在检测的人脸是包含在人脸数据库里的,则传递信号给单片机(Microcontroller Unit,MCU),MCU立即启动舵机自动开门。

在做好摄像头检测的同时,还要兼顾节约资源,因为摄像头安置在系统模型的房屋门上,所以只需考虑当有人靠近门口一定距离之后才自动识别人脸,故本文选用热释电模块HC-SR501来完成检测人体的任务。由参考文献[6]可知该传感器输出高电平有延迟时间,其工作原理通常为热辐射原理。人体在体温恒定的情况下所发出的红外射线均为10 μm左右,如果人体活动在模块感应范围内,则输出将始终保持高电平,直到人们离开时才延迟高电平变低(传感器模块在每次人体自动活动后被检测到),以上一次活动为延迟时间的起点),而高低电平的结果反馈给摄像头,如果为高电平则唤醒摄像头的人脸识别功能开始工作,如果为低电平则摄像头休眠节约能源。

2.3 WIFI无线传输开门指令

本文选用的WIFI通信模块为ESP8266模块。ESP8266模块是一个完整的而且可以自搭体系的WIFI网络方案模块,也能够搭配相应的软件进行开发。在其搭载应用并是其中唯一的处理器时,该模块可以利用外部FLASH启动,内置的高速存储器可以更有利于系统的性能提升,并且能够使内存的要求降低。其实还有另外一种情况,当无线网接入了WIFI适配器任务时,任何的包含微控制器的设计均可以添加该模块,从配置上来讲该模块的连接方式很简单,只需要串行外设接口(Serial Peripheral Interface,SPI)或高级高性能总线(Advanced High Performance Bus,AHB)桥接口即可。ESP8266的芯片内集成了非常多的模块,其中有像电源管理转换器、天线的开关等等,所以其应用十分简单,对外部电路的要求也很低。在平时PCB设计时其占用的空间也十分可观,其强大的存储能力与SOC处理能力使得调用GPIO口集成传感器或是应用其他设计提供了最少占用资源的益处[7]。总之,配备有ESP8266的系统具有的特征为低功率操作的自适应无线电偏置、睡眠/唤醒模式之间的快速切换、前端信号处理功能等。

在穿戴电子设计与物联网应用中,ESP8266可与其他几项技术一起配合使用以获得最低功耗的机器状态。而节能状态共分为3种模式:深睡眠模式、睡眠模式和激活模式。可以通过编程,使得ESP8266在发现某种特定情况时自觉唤醒工作,也可以通过程序使得时钟在固定的时间内唤醒ESP8266进行工作。在某些移动SOC上面该特性具有很大的作用,例如SOC在启动WIFI之前处于低功耗状态,为了满足设备对电子产品功率的需求,ESP8266在比较短的距离之内可以通过利用编程来降低输出功率进而降低整体系统的功耗,用来适应不同的设计方案。

需要注意的是本次下载好固件的模块的AT指令波特率为115 200、8位数据位和1位停止位。模块支持STA+AP/STA/AP等3种工作模式,常用的AP模式也就是将ESP8266模块自己配置成WIFI热点,用以电脑或者手机移动终端通过互联网进行直接接入,最后实现无线网络控制。而常用的STA模式为由该模块直接连接到由其他路由器所建立起来的局域网内,同时将手机等移动终端连接到相同的局域网之内,需要了解到每个设备自身的固定IP,这样之后通过配置AT指令将处于相同局域网内的移动终端与ESP8266模块互相连接,完成信息的传输。最后的STA+AP模式也就是上述两种模式功能的共存模式。

本文主要采用串口无线模式进行工作,也就是STA(COM-STA)模式。ESP8266作为无线STA连接进手机开启的热点内,与手机进行数据互传,可以认为手机相当于TCP的服务器,模块相当于TCP的客户端,最后通过透传模式完成数据传输通道的建立[8]。

配置模块具体的AT指令步骤如表1所示。

表1 串口无线模式手机端配置Tab.1 Serial port wireless mode mobile phone configuration

2.4 室内CO浓度实时监测与处理系统

本文选用的CO浓度气体检测模块为MQ-7 一氧化碳气体传感器。该气体传感器的气敏材料是用电导率很低的二氧化锡,采用循环的检测方式来检测一氧化碳。也就是说如果空气中的一氧化碳气体浓度不断增加[9],那么气体传感器的电导率也跟随着不断增加。传感器的表面电阻Rs是通过与其串联的负载电阻RL上的有效电压信号VRL输出而获得的。二者之间的关系为:

RS/RL=(VC-VRL)/VRL.

(3)

然后采用STM32F103RCT6主控的一个ADC进行CO传感器的模数转换,获得转换后的量化值。在系统主程序中设定一个室内CO浓度存在的最大阈值,将ADC通道采集并转换后的量化值与该阈值进行实时对比,一旦获得的量化值超过阈值,MCU就立即给直流电机所接引脚低电平,启动直流电机带动风扇转动,实现室内换气。直到CO浓度低于设定的安全值时,风扇自动停止换气。

2.5 室内光照度实时监测与自动照明系统

本文设计的光敏传感器为基于光敏电阻而设计的光敏电阻传感器。光敏电阻俗称光导管,硫化镉通常作为其制作材料,也有硫化铋、硫化铝、硫化铅等作为材料制作的。其原理可以概括为特殊材料在某一种特殊波长的光照下,其阻值立即降低[10]。本次设计的光敏模块PCB 尺寸为3.2 cm×1.4 cm,工作电压为3.3~5 V,配备有LM393比较器,输出信号干净,波形完美,并且驱动能力也很强,单峰电流超过了15 mA,其中还内嵌了一个可调电位器进行手动调节,检测光线照度。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。其电路结构图如图2所示,电路原理图如图3所示。

图2 光敏电阻传感器电路结构图Fig.2 Structure diagram of photoresistor sensor circuit

图3 光敏电阻传感器电路原理图Fig.3 Schematic diagram of photosensitive resistance sensor circuit

通过该光敏传感器模块将室内的实时光照度转换成高低电平进行输出,通过引脚传输到MCU内部,再由程序判断电平的高低来决定是否驱动外置的LED灯的亮灭来补充室内光照,如果室内光照度充足,则LED灯自动熄灭,起到节约电能的作用。

2.6 室内安防监测与自动报警系统

本文采用BKF-DS300C1型号的光电传感器与SIM800C GSM/GPRS模块来完成该部分功能。这款光电传感器是一款集接收与发射于一体的光电传感器,其发射的光通过漫反射被设备的接收部分所感知,进而进行调制输出。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等优点,传感器的最远检测距离是3 m,在保持室内拥有适宜的光照度的情况下,正常房屋卧室内窗户的标准尺寸为1.2 m×1.5 m左右,室内客厅窗户的标准尺寸为1.5 m×1.8 m左右,卫生间内的窗户尺寸为0.6 m×0.9 m左右,采用两个BKF-DS300C1型号的传感器对称分布,则传感器所覆盖的监测宽度最大为6 m,满足正常情况下室内不同房间窗户的宽度,具有很强的适用性[11]。将光电传感器分别放置在窗户的两侧,可以判断是否有人通过翻窗户强行闯入室内的情况发生。当有物体遮挡在该传感器前面时该传感器的信号线输出低电平,该信号通过与MCU相连的引脚传入主控,进而MCU根据得到的信号继续控制与SIM800C GSM/GPRS模块相连的引脚以驱动该模块的运行。它是一款高性能的工业级GSM/GPRS模块,其中搭载了SIMCOM公司的工业级四频模块,工作频段为850/900/1 800/1 900 MHz,所以可以实现小功耗的语音、短信、蓝牙和彩信等数据传输功能[12],通过简单的串口AT指令的配置,就可以实现模块给户主人手机上发送短信的功能,用以提示户主室内有人非正常闯入。短信的读取与发送将用到的指令配置步骤如表2所示。

表2 短信发送配置AT指令步骤

短信的内容在编译主控程序时已经设置为固定的字符串,由固定的指针变量对应,在发送完最后一条AT指令后由系统直接发送给模块,再由模块发送到对应的手机号里,完成短信传输工作。

3 主控系统总体编程

在编写主控程序的开始需要给所引用的所有函数进行头文件引用。完成该项任务后,开始进入主程序的编写,在main主函数里先把本次设计所用到的所有变量进行逐一复制或定义,以便接下来的函数能够正常应用这些变量。设置室内报警短信内容为“Your home was stolen”,并赋值给p1指针变量,设定室内CO浓度阈值为370,赋值给bb变量,设定接收变量 ReadValue、短字节变量 temperature、以及系统初次采集回来的ADC电压值赋值变量adcx ,然后开始初始化函数,例如初始化中断NVIC_Configuration(),初始化USMART函数usmart_dev.init(72),初始化串口、延时函数、ADC 函数、内存池、LCD调用函数、DS18b20 调用函数、光敏电阻传感器调用函数等。

在初始化完本次设计的主程序所有调用函数之后,首先展开while函数进行不断的大循环,该循环用以保证系统的正常工作。进入大循环函数内,首先检测系统是否接入了DS18b20模块,如果正常从GPIOA0引脚引入了该模块的信号线,则系统调用LCD屏幕显示函数用来在LCD屏幕上显示“DS18B20 OK”字样,否则就会显示“DS18B20 Error”用来表达此模块没有正常的接入系统或是系统无法正常识别模块。然后调用LCD函数显示设计者姓名信息、日期等消息,接下来进入新的while 循环。

首先通过GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)函数调用接收从GPIOA15引脚输入进来的电平值,并赋给变量ReadValue。接下来需要经过一个if判断,如果ReadValue的值为1,则通过函数GPIO_SetBits(GPIOA, GPIO_Pin_4)使GPIOA4引脚输出高电平,此引脚外接一个LED灯,15脚接的是光敏传感器的信号线,也就是说如果光敏传感器接受到外接光强低于正常阈值时反馈高电平,主控采集之后做出决定,通过高电平点亮外接LED进行补光,类似开启外接电灯,起到自动开灯的功能,之后进入下一个环节。如果DS18b20已经正确接入系统,那么开始每100 ms读取一遍模块内部的数据寄存器,从而取得温度的具体数值,读取成功之后调用LCD显示函数显示温度数值。

延时10 ms之后开始通过函数Get_Adc_Average()读取ADC1 通道1采集回的电压值,并将值赋给变量adcx,然后再次调用LCD显示函数进行ADC电压值显示,并做好后期调用准备。接下来是几个if判断语句,当然判断的条件就是adcx与之前设定的CO阈值变量 bb,如果adcx 的值大于bb,则打开风扇进行换气功能,如果adcx的值小于bb,则在LCD屏幕上显示“Air qualified”。最后就是判断是否有外接闯入者进入室内的问题,通过光电开关判断是否有物体闯入,如果有则通过GPIO引脚反馈信息,之后主控开始调用短信发送函数进行发送短信工作。这就是本文设计主控芯片系统编程的总体内容,程序流程图如图4所示。

图4 程序流程图Fig.4 Program flow chart diagram

4 系统测试结果

4.1 人脸识别测试

在测试整体系统运行过程中,我们选取了3个不同的实验室进行测试,分别将本文设计的智能家居系统安装在实验室1、实验室2和实验室3中,并且在每个实验室的系统中都提前录入同一组由30人组成的人脸数据,进而在每个实验室中30人每人测试2次人脸识别功能,共计测试60次,记录识别成功次数与失败次数,并由成功次数比上测试总次数从而获得该测试实验室下人脸识别系统的成功率,测试结果如表3所示。

表3 人脸识别测试结果表Tab.3 Face recognition test table

由实验数据可以得到,该系统的人脸识别成功率基本上稳定在百分之百,识别成功率高,功能成功实现。人脸识别系统运行如图5所示。

图5 人脸检测运行图Fig.5 Face detection running graph

4.2 WIFI无线传输与移动端控制开门测试

首先在测试手机等移动端控制开门的功能前需要搭建起室内TCP客户端与服务器连接网络,开启手机移动热点局域网络,设置好网络名称与密码,然后将手机作为TCP服务器,而将安置在室内的智能家居系统中的ESP8266模块作为客户端模式连接进手机开启的局域网之中。配置完成后,通过电脑端串口助手可视化显示室内家居系统与手机之间的WiFi通信,如图6、7所示。

图6 智能家居客户端接收手机服务器发来的信息图Fig.6 Smart home server receives information from the mobile phone server

图7 手机服务器显示家居系统发来的信息图Fig.7 Mobile phone client side displays the information map sent by the home system

经检测,WIFI无线传输信息功能成功实现。在系统程序的编写中已经定义手机一键轻松出门、自动关门实现的特定指令,在安装了本家居系统的3个实验室内分别用手机进行了实地测试,在发送特定开门指令后各实验室的房间门均按要求自动打开,定时自动关门。

4.3 CO传感器、温度传感器工作测试

在测试实验室内CO浓度时,为了模拟室内CO浓度逐渐升高,在CO浓度传感器下点燃打火机,从图8、图9、图10中可以看到实时监测的CO浓度值在不断升高,从最开始的2.48×10-4迅速提升到5.61×10-4。

图8 CO浓度实时采集显示图1Fig.8 Display chart 1 of CO concentration real-time acquisition

图9 CO浓度实时采集显示图2Fig.9 Display chart 2 of CO concentration real-time acquisition

图10 CO浓度实时采集显示图3Fig.10 Display chart 3 of CO concentration real-time acquisition

当智能家居系统检测到CO浓度超出所设定的正常室内CO浓度值时,测试环境内的风扇成功自动打开,用以起到换气功能,降低室内CO浓度。在CO浓度低于设定阈值后自动关闭风扇,成功完成该功能的测试。

在测试系统温度采集功能时,我们分别采集3个测试实验室各自在早晨6点、中午12点以及晚上6点3个时间节点的水银温度计标准温度与家居系统采集的温度值,如表4、表5所示。

表4 水银温度计采值表Tab.4 Value table of mercury thermometer

表5 家居系统温度采值表Tab.5 Temperature acquisition table of household system

由表4、表5中的数据对比可知,该智能家居系统与标准水银温度计在相同时间节点所测的温度值差值的绝对值不超过0.5 ℃,故证明家居系统的温度采集合理有效,系统采集温度运行图如图11所示。

图11 室内温度采集显示图Fig.11 Display diagram of indoor temperature acquisition

4.4 光照度实时监测与自动照明系统测试

居住建筑起居室或者餐厅内的光照度满足人们一般活动需求的条件是其内部在0.75 m高度水平面上照度值超过150 lx[13-14],故此分别在所测试的3个实验室内相距地面高度为0.75 m处采集家居系统所测得的光照度数值与用标准照度计测试出的光照度数值,测试时间统一选取同一日期的下午5点。数据统计结果如表6所示。

表6 光照度采集值对照表Tab.6 Comparison table of illuminance acquisition values

由表6中的数据可知,假定标准照度计所测得的数据均为标准值,家居系统的光照度检测与标准光照度之间的差值不超过4 lx,系统所测得的光照度值基本准确。智能家居系统反馈的光照度信息如图12所示。

图12 光照度反馈图Fig.12 Illuminance feedback chart

在测试系统自动照明功能时,在测试的3个实验室内分别观察智能家居系统反馈光照度值得变化过程,当外界自然光照随着时间不断减少时,系统反馈的光照度值不断下降,当其值低于系统设定的正常活动阈值150 lx时,系统自动开启室内LED灯照明,通过实地验证3个测试实验室内智能家居系统均实现了此功能。

4.5 短信提示户主系统测试

在验证室内离人安防短信报警过程中,在安装了智能家居系统的实验室中模拟了不法分子通过跳窗户从而非法进入室内的场景,如图13所示。

图13 模拟非法入侵图Fig.13 Siulated illegal invasion diagram

当不法分子闯入之后,触发安装在窗户旁边的传感器,MCU立即采取响应措施,向户主手机发送报警信息,如图14所示。

图14 短信报警提示图Fig.14 SMS alarm prompt diagram

经实地检测,系统成功完成了短信报警提示功能。

5 结 论

通过综合调试与供电,系统的总体运行比较顺利,各个传感器模块的信息采集也非常准确稳定,各个部分之间的工作搭配协调有序,当室内CO浓度过高时可以实现自动换气,WIFI数据传输也很精准,系统整体调用传感器的采回值准确,短信报警功能也很正常,将人脸识别自动开门、室内CO浓度检测与处理、室内光照度检测与控制照明、室内温度检测显示、室内离人安防检测报警等功能成功地实现在一套系统中。整个系统的成本费用为500元左右,而目前市场上销售的智能家居系统整体价格一套最少也在1~2万元之间,经此对比本文成功设计了一个成本低廉、价格能够被普通用户所接受的功能比较齐全的智能家居系统。

猜你喜欢

光照度智能家居传感器
光照度传感器在智能家居照明系统中的应用
三种光照度对广西地不容生理生化特性的影响
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
光照度对不同产地南方红豆杉幼苗生长发育的影响
基于Zigbee的无线通信技术在智能家居中的应用
“农地种电”型光伏电站可种植区域光温环境参数研究
关于智能家居真正需求的探讨