【项目介绍】
随着科学技术的发展,人们的生活水平逐渐提高,并且开始追求智能、便捷的家居环境,智能家居系统得以快速发展。传统的智能家居系统,其控制方式通常以手动控制和遥控器控制为主,这种控制方式比较麻烦,不足以满足人们对家居生活智能便捷的需求。针对这一问题,本作品以Arduino Nano为主控制器,将语音识别技术应用到智能家居控制系统中,通过语音识别技术识别出短语命令,然后对家居设备进行控制,建立了一套更加智能、便捷的智能家居控制系统。本作品通过语音识别,能够打开关闭灯光,能够打开关闭风扇,能够播报室内当前温湿度。
【项目演示】
视频内容是用掌控板来制作的,换了Nano板就没再录制,实现效果是一样的。
【制作过程】
步骤1 激光切割小房子图纸设计
步骤2 切割和组装小房子
步骤3 硬件安装
步骤4 编程
代码
/*!
* 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)));
}
}
}
【项目总结】
本作品能够顺利的实现打开和关闭灯光、风扇,播报温湿度,达到预期效果。因房子是提前制作好的,没有考虑硬件问题,所以硬件安装后不是很美观,后期重新设计硬件安装的位置。后期添加打开关闭窗帘、空调、热水器、电视等语音控制功能。
【资源】
源文件及源编程
附件
banana---2024.08.10
牛🐮
伦**2024.03.09
666
伦**2024.03.09
好厉害
Vn2qLP0m6zHz2024.01.14
Oh