基于STM32 单片机的智能家居控制系统设计

2022-04-06 08:35杨恒敏
科学技术创新 2022年8期
关键词:串口温湿度蓝牙

杨恒敏

(江苏联合职业技术学院扬州分院,江苏 扬州 225003)

1 概述

当今社会科学技术发展的速度日新月异,随之通信技术也不断得到发展,5G通信技术已经到来,物联网技术也更加成熟,在物联网时代,人们希望每一个物件入网并可以实时监控,实现智能化,而智能家居正是受到信息化影响的一种物联网技术的应用,智能家居就是通过物联网技术,将日光灯、电风扇、空调和窗帘等各种设备通过网络连接到一起,实现照明控制、风扇控制、空调控制、窗帘控制等多种智能功能[1],这些功能使智能家居技术在生活中应用更加广泛,并向不同领域渗透和延伸,人们期望在物联网技术的推动之下,生活能够更加节能、环保和高效,因此智能家居走进人们的生活,并给人们的生活带来了很大改变,智能生活方式也将成为今后人们居家生活的主流方向。

2 系统整体设计方案

本系统主要由单片机核心处理器、语音识别电路、环境信息感知电路、蓝牙通信电路、液晶显示电路和电气设备控制电路等组成,主要功能是利用语音识别系统和手机APP 进行控制,实现有人闯入自动警报、照明控制、温度和湿度控制、空气质量检测、家用电器控制和自动窗帘等的控制。主控是STM32F103RCT6 单片机,连接到每一个传感器,当系统采集到声音信号时,经过电路处理后送入LD3320 语音识别模块,处理结果通过并行端口传送给单片机,单片机接收到LD3320 语音识别模块的处理结果后,进行分析,发出相应的控制指令,控制各电气设备,实现电气设备的启动或停止[2],另外也可以利用环境信息感知模块(温湿度传感器、烟雾传感器和人体光学传感器)实时监测室内环境,发出相关指令,控制灯光、插座、风扇和窗帘的打开或者关闭,当环境参数超过预定值或者在安防模式下有人闯入时,播放语音报警信息,为了方便用户了解状态,还还可以通过液晶显示屏实时展示各个电路模块的具体工作状态,系统整体框图如图1。

图1 系统结构框图

3 系统硬件设计

3.1 单片机控制模块。本系统采用STM32F103RCT6 单片机控制外部电路和设备,STM32F103RCT6 型单片机是嵌入式的微型控制器的集成电路(Integrated Circuit),拥有32 位的Cortex-M3 内核处理器,CPU 的最高速度可以达到72 兆赫兹,程序存储器的容量为256 千字节,程序存储器类型是FLASH(闪存),随机存取存储器的容量是48K,采用LQFP64 封装形式,因此封装体积小,高速低功耗,相比8 位而言单片机性能更优,是本电路中控制系统的核心,负责各个传感器之间通讯及解码。

单片机最小系统是由单片机芯片外加时钟电路、复位电路、电源和地构成的,它是单片机工作的最小的组成部分,也是单片机工作的必要条件。其中,电源电路的作用是提供合适的供电电压,保证单片机能够正常工作,时钟电路可通过外接晶振和电容等来产生一定频率的时钟脉冲信号,从而为芯片工作提供稳定的频率,而复位电路的作用是恢复单片机内存储的数据,当单片机遇到异常不能正常工作时,可以把单片机的特殊功能寄存器的数据恢复到默认的数据,使程序能够重新开始运行。

3.2 语音识别模块。语音识别模块主要包括语音芯片LD3320 及其相关电路,语音芯片LD3320 是一种非特定人的芯片,主要作用是采集环境中的语音信号,而且也能够识别特定语音信号,通过口令触发方式和垃圾词语吸收模式,可以提前设定好要识别的关键词语,为了降低误识别率,进一步提高语音识别的准确程度,可以添加一些其他的词语到识别列表中,用来吸收错误的识别,此外,LD3320 工作时不需要预先进行训练或者录音,语音识别的准确率可以高达百分之九十五以上,是一款使用非常广泛的语音识别类芯片。设计中采用的是串口通信方式,芯片直接与STM32F103RCT6 的RXD信号相连接[3],麦克风采集到语音信号,当LD3320 模块识别出语音信号时,将识别到的语音信号与识别列表中的关键词汇进行比较,找到最佳匹配的词语,芯片LD3320 便会发出一个中断信号,然后将这个信号通过电路传送给STM32 单片机进行相应的处理,语音识别流程如图2 所示。

图2 语音识别流程

3.3 环境信息感知模块。环境信息感知模块主要由DHT11温湿度传感器、MQ135 烟雾传感器和HC-SR501 人体光学传感器模块及其相应的电路组成。

DHT11 温湿度传感器是一款含有已校准信号输出的数字温湿度传感器,它用的是数字模块采集技术,体积小巧、功耗很低,抗干扰能力较强。温湿度传感器DHT11 一共有4 个引脚,连接到单片机的方式也比较简单,1 号引脚接电源,2 号引脚接数据输出端,3 号为悬空脚,无需任何处理,4 号引脚接地,接到STM32 单片机的其中一个引脚上,在实际使用时,1 号引脚和4号引脚之间可以增加一个电容以去耦滤波。

MQ135 烟雾传感器能够检测出空气中多中常见的有害类气体,是一款适合家庭使用的空气污染报警器,它对苯系蒸汽、氨气和硫化物等的反应灵敏度高,对其他一些有害的气体和烟雾的检测效果也相当好,所使用的的气敏材料是在清洁空气中电导率很低的二氧化锡(SnO2),当烟雾传感器检测周围的空气中存在污染气体时,传感器中的电导率会发生改变,随着环境中污染气体的浓度增加,电导率会随之增大,只要通过简易的电路,就可以把电导率的变化转换为所检测气体浓度对应的输出信号,实时监测室内的空气质量以及家庭的环境安全。

HC-SR501 人体光学传感器模块的工作电压在4.8V 到20V 之间,与整个电路的工作电压相符,人体的体温在36℃到37℃左右,人体所发出的红外线波长大约在10 微米左右,在电路的安防模式之下,一旦有陌生人闯入家庭领域时,人体产生的红外线被透镜增强之后,聚集到传感器的红外线感应源上,打乱了感应元件中热释电元件的电荷平衡,释放出带电的正负粒子,在电路处理之后发出报警信号[4],本电路中是在安防模式下,有陌生人闯入时,防盗报警指示灯闪烁,蜂鸣器也发出声响,向用户发出警示。

3.4 蓝牙通信模块。蓝牙通信模块使用HC-05, HC-O5 是一款高性能的蓝牙串口模块,它采用主流的CSR 公司蓝牙芯片,协议标准是蓝牙V2.0,体积小巧,成本低,可以通过两种模式即命令响应工作模式和自动连接模式进行数据传输,主要适用于短距离的无线数据传输,可以非常方便地和上位机(如手机、电脑等)的蓝牙设备相连接,也可以使用两个蓝牙模块进行相互数据通信,避免了复杂的电路连接,可以直接代替串口连接线。并且该模块支持的波特率范围非常宽,可以从4800 到1382400 Bd,还兼容5V 和3.3V 单片机系统,硬件的开发非常容易,配对成功建立蓝牙连接后,使用方式和普通串口一致,可以直接连单片机,不需要分析内部是如何驱动,适用于GPS 导航,工业控制等,在本系统中主要用于使系统连接到上位机APP 端,需要注意的是蓝牙的串口优先级要先设置好,否则会出现信息错误。[5]

3.5 手机端APP 开发。App Inventor 编程软件是谷歌公司开发的,使用简单,是一款在线并且开放的手机APP 编程工具,没有专业学习过的也可以完成手机App 开发,其中内置了蓝牙服务器等本次软件开发所必需的组件,相较于Android Studio等手机开发工具,使用APP Inventor 不需要配置复杂的系统环境,并且更易于上手,操作简单,简单的应用使用本软件足够可以完成,与智能家居设计中软件部分开发的要求相吻合。[6]通过蓝牙控制单片机,从而去控制家用电器等。

3.6 液晶显示模块。显示部分选用OLED (Organic Light Emitting Diode),OLED 即有机发光半导体二极管, 又称为有机电激光显示二极管,是由特殊的有机材料制成的,构造及制作较简单,支持众多芯片,无需背光,显示单元具有自发光的特性,通电就能亮,属于电流型有机发光器件,OLED 显示屏采用非常薄的有极涂料和玻璃基板,厚度比LCD 小很多,这样更薄的屏幕腾出的空间就可以放入更多的元器件,而且可视角度大,同样适用于可弯曲性面板。LCD屏容易出现拖影现象,影响视觉观感,而OLED拖影极小,OLED对比度也比LCD显示好,相比LCD 有更多的优势,结合嵌有对比度控制OLED 显示屏驱动芯片SH1101A、高效的DC-DC 转换器和显示存储振荡器,有效的减少了元件的消耗和数量。[7]0.96 寸7 针SPI 通信的OLED显示屏模块各接口名称和管脚说明如表1 所示。

表1 OLED 显示模块各接口定义和管脚说明

3.7 电气设备控制模块。电气设备控制模块主要由灯、风扇、插座等家用电器和门、窗帘等终端部分组成。在智能家居系统控制时,灯由发光二极管来模拟,窗帘用直流电机来模拟实现,空调则有由风扇来代替,门由舵机sg90 模拟,插座由继电器模拟,安防系统由人体光学传感器模拟实现,烟雾报警由MQ-135 和蜂鸣器实现。电路硬件部分的连接关系如图3 所示。

图3 硬件连接关系图

4 系统软件设计

4.1 软件总体设计。本设计的软件部分采用C语言编程,利用Keil μVision5 作为编程环境。系统主程序主要包括初始化服务程序、中断服务程序和各个功能模块子程序等。首先定义好硬件电路的端口,然后进行延时函数设计,设置好中断的优先级级别,液晶显示OLED部分初始化、温湿度传感器初始化、串口初始化等各个模块的初始化函数,然后定义控制函数,控制函数的作用是设置各个家电控制部分的工作状态,通过简单的逻辑控制,可以实现对家用电器设备等的控制功能,main 主程序部分主要如下:

4.2 液晶显示子程序设计。OLED 液晶显示屏驱动软件程序设计基于STM32F103RCT6 型号单片机,采用常见的C 语言编写,主要完成配置STM32 单片机管脚实现SPI 通信,将所需显示信息传输到OLED显示屏驱动芯片SH1101A,驱动OLED显示屏芯片SH1101A完成片选和复位等功能,进而实现显示和清屏等操作。

4.3 语音模块子程序设计。语音模块首先要设定好关键词语,如“开门”、“关门”、“打开插座”和“打开窗帘”等,以便控制相应的智能家居设备开始工作。在程序流程编写上,通过程序预先设置相应语音代码指令,并对应智能家居设备此时的工作状态。本设计中语音识别分为两类,第一级用来唤醒智能家居系统,第二级用来控制家用电器以及设备等,同时将对应的信息通过串口发送到STM32。

例如在语音模块端编写C语言程序进行如下设置:

对照表2 中的指令顺序,串口发送信息5 是开灯,串口发送信息6 是关灯,则对应执行开灯和关灯的操作,其他设备也以此类推,便可以实现相应的功能。

表2 语音指令表

5 结论

本设计利用STM32 单片机、各种传感器模块和语音识别模块等实现了智能家居控制系统,该系统能够识别用户发出的语音指令,并能根据语音识别结果,控制家庭电路中电风扇、插座、日光灯、门和窗帘等设备的打开或关闭;在安防模式已经开启并且有人闯入的情况下发出预警信号,并通过环境中的烟雾浓度和温湿度参数实时监测,及时发现污染气体,监测室内的空气质量,提高了人们家居生活的品质,使得人们轻松实现便捷又安全的现代智能家居生活。经过对该系统的实验测试,需要注意的是因为功率器件较多,应使用开关电源,而不要使用降压电源模块,测试结果表明,该系统电路结构简单,工作性能稳定,语音识别率高,能够完成环境参数的监测和居家电气设备控制的功能。

猜你喜欢
串口温湿度蓝牙
蓝牙音箱的直线之美
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于AT89C51的数字型蚕用温湿度计的设计
基于EM9000工控板高性能双串口通信模型设计与实现
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
基于温湿度控制的天气预测装置
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于DSP和μcos的温湿度检测系统的设计
船舶电子设备串口数据的软件共享方法