基于STM32+Android的蓝牙语音控制智能家居系统

目录
查新说明 4
第 1 章 引言 5
1.1 选题背景和研究意义 5
1.2 智能家居研究现状 5
1.3 论文研究内容和结构安排 6
第 2 章 智能家居实现的理论分析 7
2.1 蓝牙通信技术 7
2.2 语音识别技术 7
2.3 人脸识别技术 8
第 3 章 智能家居系统设计 10
3.1 智能家居系统整体设计 10
3.2 智能家居硬件设计 13
3.3 智能家居软件设计 18
3.4 通信协议 22
3.4.1 蓝牙通信 22
3.4.2 系统硬件设置操作 22
第 4 章 智能家居系统实现 23
4.1 整体系统的搭建 23
4.2 系统测试方案 23
4.3 智能家居系统的测试 23
4.3.1 智能家居 APP 调试 23
4.3.2 蓝牙通信部分调试 23
4.3.3 语音控制部分调试 24
4.3.4 人脸识别部分调试 24
4.3.5 地震监测部分调试 24
第 5 章 结论与展望 25
参考文献 26
第 3 章 智能家居系统设计

3.1智能家居系统整体设计

3.1.1系统整体架构
如图 2 所示,智能家居系统包括+12 V 电源、主控芯片 STM32F407、LCD 显示屏、SD 卡、按键、TPAD 模块、蜂鸣器模块、继电器模块、蓝牙 HC-05 、语音模块、六轴传感器 MPU6050、摄像头 OV2640、温湿度传感器 DHT11、一氧化碳检测模块、以及升压模块、推拉式门锁、电灯、风扇。
在这里插入图片描述
图 2 智能家居系统整体架构图
一、主控芯片方案 方案一:C51 单片机
一个全双工串行通信口,外部数据存储器寻址空间为 64kB,外部程序存储器寻址空间为 64kB,逻辑操作位寻址功能,双列直插 40PinDIP 封装,单一+5V 电源供电,
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:
用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:

用以存放程序、一些原始数据和表格;I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式; 五个中断源的中断控制系统;一个全双工 UART(通用异步接收发送器)的串行 I/O 口, 用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路, 石英晶体和微调电容需要外接。最佳振荡频率为 6M-12M。
方案二:STM32F407 单片机
它拥有的资源包括: 集成 FPU 和 DSP 指令,并具有 192KB SRAM、1024KB
FLASH、12 个 16 位定时器、2 个 32 位定时器、2 个 DMA 控制器(共 16 个通道)、 3
个 SPI、2 个全双工 I2S、3 个 IIC、6 个串口、2 个 USB(支持 HOST/SLAVE)、2 个
CAN、3 个 12 位 ADC、2 个 12 位 DAC、1 个 RTC(带日历功能)、1 个 SDIO 接口、
1 个 FSMC 接口、1 个 10/100M 以太网 MAC 控制器、1 个摄像头接口、1 个硬件随机数生成器、以及 112 个通用 IO 口等。
STM32F407 系列面向需要在小至 10 x 10 mm 的封装内实现高集成度、高性能、嵌入式存储器和外设的医疗、工业与消费类应用。STM32F407 提供了工作频率为 168 MHz 的 Cortex™-M4 内核(具有浮点单元)的性能。
性能:在 168 MHz 频率下,从 Flash 存储器执行时,STM32F407 能够提供 210 DMIPS/566 CoreMark 性能,本文转载自http://www.biyezuopin.vip/onews.asp?id=14985并且利用意法半导体的 ART 加速器实现了 FLASH 零等待状态。DSP 指令和浮点单元扩大了产品的应用范围。
功效:该系列产品采用意法半导体 90 nm 工艺和 ART 加速器,具有动态功耗调整功能,能够在运行模式下和从 Flash 存储器执行时实现低至 238 µA/MHz 的电流消耗(@ 168 MHz)。
丰富的连接功能:出色的创新型外设:与 STM32F4x5 系列相比,STM32F407 产品还具有符合 IEEE 1588 v2 标准要求的以太网 MAC10/100 和能够连接 CMOS 照相机传感器的 8~14 位并行照相机接口。可以利用支持 Compact Flash、SRAM、PSRAM、
NOR 和 NAND 存储器的灵活静态存储器控制器轻松扩展存储容量。
考虑到我们要用到较多 FLASH 存储单元存储用户信息,以及需要进行蓝牙通信等,本项目采用方案二,使用 STM32F407ZG 作为主控芯片。

二、无线传输方案
方案一:采用 WiFi 的无线传输方案
Wi-Fi 模块又名串口 Wi-Fi 模块,属于物联网传输层,功能是将串口或 TTL 电平转为符合 Wi-Fi 无线网络通信标准的嵌入式模块,内置无线网络协议 IEEE802.11b.g.n 协议栈以及 TCP/IP 协议栈。传统的硬件设备嵌入 Wi-Fi 模块可以直接利用 Wi-Fi 联入互

联网,是实现无线智能家居、M2M 等物联网应用的重要组成部分。方案二:采用蓝牙的无线传输方案
蓝牙(Bluetooth®):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用 2.4—2.485GHz 的 ISM 波段的 UHF 无线电波)。蓝牙技术最初由电信巨头爱立信公司于 1994 年创制,当时是作为 RS232 数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的难题。
方案三:采用 ZigBee 的无线传输方案
ZigBee 是一种基于标准的远程监控、控制和传感器网络应用技术。为满足人们对支持低数据速率、低功耗、安全性和可靠性,而且经济高效的标准型无线网络解决方案的需求,ZigBee 标准应运而生。核心市场是消费类电子产品、能源管理和效率、医疗保健、家庭自动化、电信服务、楼宇自动化以及工业自动化。围绕 ZigBee 芯片技术推出的外围电路,称之为“ZigBee 模块”,常见的 ZigBee 模块都是遵循 IEEE802.15.4 的国际标准,并且运行在 2.4GHZ 的频段上,另外,欧洲的标准是 868MHZ、北美是
915MHZ。
WiFi 模块传输的数据量大,功耗较大,蓝牙 ble 传输的数据量小,功耗低,但是传输的距离近,只有 10 米左右,ZigBee 技术传输的数据量小,但是传输距离较远,有 200 米左右,而且功耗较低。由于本次项目要求实现智能家居系统控制数据的无线传输, 数据量较小,功耗要求低,距离要求低,故采用蓝牙通信技术。

3.1.2系统功能
本智能家居系统基于蓝牙和语音控制,实现以下功能: 一、通过手机实现家电控制: 1、手机发送 Android ID 到 STM32 端实现 root 用户注册;
2、root 用户可使用手机添加或删除家庭成员;
3、root 用户手机遗失时,可通过智能家居系统的 STM32 端的 APP 实现一键重置蓝牙用户;
4、登记在 STM32 的 FLASH 里面的 Android ID 用户可实现手机控制开门/关门、开灯/关灯、开风扇/关风扇。
二、语音识别+人脸识别开门/关门。
三、语音控制开关灯、开关风扇以及切歌,关闭音乐等。
四、STM32 端通过 MPU6050 实现地震监测,通过 DHT11 和光敏传感器实现环境监测,通过 CO 检测模块实现一氧化碳检测报警。
五、用户可通过 LCD 显示屏操作 APP 实现人脸管理、人脸登记、语音留言、文本留言、查看语音、查看文本留言、查看门外情况(监控),以及控制开门/关门、

开灯/关灯、开风扇/关风扇。
六、用户可播放音乐、播放视频等。

3.1.3系统指标
1、语音识别准确率:80%以上;
2、人脸识别准确率:95%以上;
3、蓝牙通信准确率:99.99%;
4、CPU 耗内存:不工作时低于 10%;
5、MPU6050 能监测 3 级以上地震,并且抗干扰。

智能家居系统 STM32 源程序主函数

#include "includes.h"
#include "malloc.h"

#include "spblcd.h"
#include "spb.h"
#include "common.h"
#include "ebook.h"
#include "settings.h"
#include "picviewer.h"
#include "audioplay.h"
#include "videoplay.h"
#include "calendar.h"
#include "nesplay.h"
#include "notepad.h"
#include "exeplay.h"
#include "paint.h"
#include "camera.h"
#include "recorder.h"
#include "usbplay.h"
#include "netplay.h"
#include "wirelessplay.h"
#include "calculator.h"
#include "phoneplay.h"
#include "appplay.h"
#include "smsplay.h"

#include "usart3.h"
#include "sim900a.h"
#include "mpu6050.h"
#include "wm8978.h"
#include "lan8720.h"
#include "lsens.h"
#include "usb_app.h"
//--------------------------------------------------------------------------------------------
// 设置 FLASH 保存地址(必须为偶数,且所在扇区,要大于本代码所占用到的扇区.
// 否则,写操作的时候,可能会导致擦除整个扇区,从而引起部分程序丢失.引起死机.
#define FLASH_DATA_SAVE	0X080FF000

// 0~3:num
// 4~19:root user Android ID
// 20~35:common user Android ID 1
// ...
// 132~147:common user Android ID 8 u8 flash_data_save[148];



// 用于存放 root ID
const u8 id_root_buf[]={"7659483c763e8649"};
// 用户 id 索引,其中 find_id[0]为 root 用户 id u8 find_id[9]={4,20,36,52,68,84,100,116,132};

#define COMMON_BUF_LENTH sizeof(id_common_buf)
#define ROOT_BUF_LENTH sizeof(id_root_buf)
#define	COMMON_BUF_SIZE
COMMON_BUF_LENTH/4+((COMMON_BUF_LENTH%4)?1:0)
#define ROOT_BUF_SIZE ROOT_BUF_LENTH/4+((ROOT_BUF_LENTH%4)?1:0)

/提示信息///

//删除所有蓝牙用户
u8*const delethbt_remindmsg_tbl[GUI_LANGUAGE_NUM]=
{
"你已经删除所有蓝牙用户",
"你已经删除所有蓝牙用户",
"你已经删除所有蓝牙用户",
};

//删除所有蓝牙用户
u8*const ndelethbt_remindmsg_tbl[GUI_LANGUAGE_NUM]=
{
"你没有删除蓝牙用户",
"你没有删除蓝牙用户",
"你没有删除蓝牙用户",
};

//关于我们提示信息
u8*const aboutus_remindmsg_tbl[GUI_LANGUAGE_NUM]=
{
"2018 年广东省大学生电子设计竞赛\r\
一种基于蓝牙和语音控制的智能家居系统\r\ 手机通过蓝牙连接本系统可以实现控制\r\
通过语音控制+人脸识别实现安全的家居控制\r\ 参赛队伍号:00237\r\
作品属性:智能家居",
"2018 年广东省大学生电子设计竞赛\r\
一种基于蓝牙和语音控制的智能家居系统\r\

手机通过蓝牙连接本系统可以实现控制\r\
通过语音控制+人脸识别实现安全的家居控制\r\ 参赛队伍号:00237\r\
作品属性:智能家居",                     "2018 年广东省大学生电子设计竞赛\r\
一种基于蓝牙和语音控制的智能家居系统\r\ 手机通过蓝牙连接本系统可以实现控制\r\
通过语音控制+人脸识别实现安全的家居控制\r\ 参赛队伍号:00237\r\
作品属性:智能家居",
};

//地震提示信息
u8*const dizhen_remindmsg_tbl[GUI_LANGUAGE_NUM]=
{
"危险警报:\r\
地震啦!\r\ 地震啦!!\r\
地震啦!!!\r\ 地震啦!!!\r\ 地震啦!!!",
"危险警报:\r\
地震啦!\r\ 地震啦!!\r\
地震啦!!!\r\ 地震啦!!!\r\ 地震啦!!!",
"危险警报:\r\
地震啦!\r\ 地震啦!!\r\
地震啦!!!\r\ 地震啦!!!\r\ 地震啦!!!",
};

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值