回到顶部 回到顶部
best-icon

基于语音识别技术的智能家居 简单

头像 feng0539 2023.11.14 713 1

【项目介绍】

        随着科学技术的发展,人们的生活水平逐渐提高,并且开始追求智能、便捷的家居环境,智能家居系统得以快速发展。传统的智能家居系统,其控制方式通常以手动控制和遥控器控制为主,这种控制方式比较麻烦,不足以满足人们对家居生活智能便捷的需求。针对这一问题,本作品以Arduino Nano为主控制器,将语音识别技术应用到智能家居控制系统中,通过语音识别技术识别出短语命令,然后对家居设备进行控制,建立了一套更加智能、便捷的智能家居控制系统。本作品通过语音识别,能够打开关闭灯光,能够打开关闭风扇,能够播报室内当前温湿度。

【项目演示】

 

视频内容是用掌控板来制作的,换了Nano板就没再录制,实现效果是一样的。

【制作过程】

材料清单

  • Arduino Nano X1 链接
  • Gravity: 简易继电器模块 X1 链接
  • 炫彩 WS2812 LED灯带 X1 链接
  • 多功能环境传感器 V1 X1 链接
  • 中英文语音合成模块V2.0 X1 链接
  • 天问ASR-THREE X1 链接
  • 小风扇 X1

步骤1 激光切割小房子图纸设计

微信截图_20231106094053.png

步骤2 切割和组装小房子

图片2.png

步骤3 硬件安装

a53bf3ca23be2898e4d9e861797b5e7.jpg

步骤4 编程

NANO.png

代码
/*!
 * MindPlus
 * nano
 *
 */
#include "DFRobot_BME280.h"
#include <SoftwareSerial.h>
#include <DFRobot_NeoPixel.h>
#include "DFRobot_CCS811_I2C.h"
#include <DFRobot_SpeechSynthesis_M.h>

// 动态变量
volatile float mind_n_wendu, mind_n_shidu, mind_n_ID;
// 创建对象
DFRobot_NeoPixel            neoPixel_13;
DFRobot_SpeechSynthesis_I2C sstts;
SoftwareSerial              asr(A0, 21);
DFRobot_BME280_IIC          bme280;
DFRobot_CCS811_I2C          ccs811;


// 主程序开始
void setup() {
	asr.begin(115200);
	bme280.begin(0x76);
	while(ccs811.begin() != 0);
	ccs811.setMeasCycle(ccs811.eCycle_250ms);
	ccs811.writeBaseLine(17531);
	neoPixel_13.begin(13, 32);
	neoPixel_13.setBrightness(120);
	sstts.begin(sstts.eV2);
	delay(1000);
}
void loop() {
	mind_n_wendu = bme280.getTemperature();
	mind_n_shidu = bme280.getHumidity();
	if (asr.available()) {
		mind_n_ID = asr.read();
		// 打开风扇
		if ((mind_n_ID==76)) {
			digitalWrite(3, LOW);
		}
		// 关闭风扇
		if ((mind_n_ID==77)) {
			digitalWrite(3, HIGH);
		}
		// 打开所有灯光
		if ((mind_n_ID==70)) {
			neoPixel_13.setRangeColor(0, 31, 0xFF0000);
		}
		// 关闭灯光
		if ((mind_n_ID==71)) {
			neoPixel_13.clear();
		}
		// 灯光调亮
		if ((mind_n_ID==72)) {
			neoPixel_13.setBrightness(200);
		}
		// 调暗灯光
		if ((mind_n_ID==73)) {
			neoPixel_13.setBrightness(10);
		}
		// 最大亮度
		if ((mind_n_ID==74)) {
			neoPixel_13.setBrightness(255);
		}
		// 最小亮度
		if ((mind_n_ID==75)) {
			neoPixel_13.setBrightness(5);
		}
		// 打开客厅灯
		if ((mind_n_ID==53)) {
			neoPixel_13.setRangeColor(0, 5, 0xFFFF00);
			neoPixel_13.setRangeColor(12, 17, 0xFFFF00);
		}
		// 打开厨房灯
		if ((mind_n_ID==54)) {
			neoPixel_13.setRangeColor(6, 11, 0xFFFFFF);
		}
		// 打开卧室灯
		if ((mind_n_ID==55)) {
			neoPixel_13.setRangeColor(18, 32, 0xCC33CC);
		}
		// 当前温度
		if ((mind_n_ID==56)) {
			delay(1000);
			sstts.speak((String("当前温度") + String((String(mind_n_wendu) + String("度")))));
		}
		// 当前湿度
		if ((mind_n_ID==57)) {
			delay(1000);
			sstts.speak((String("当前湿度百分之") + String(mind_n_shidu)));
		}
	}
}

【项目总结】

        本作品能够顺利的实现打开和关闭灯光、风扇,播报温湿度,达到预期效果。因房子是提前制作好的,没有考虑硬件问题,所以硬件安装后不是很美观,后期重新设计硬件安装的位置。后期添加打开关闭窗帘、空调、热水器、电视等语音控制功能。

【资源】

 

源文件及源编程

评论

user-avatar
  • Vn2qLP0m6zHz

    Vn2qLP0m6zHz2024.01.14

    Oh

    0