DIY智能家居语音助理——语音智控万物

本文指导读者利用M5StickC和ESP8266开发板,结合Blynk物联网平台和语音识别技术,创建一个智能家居语音助理。通过语音命令控制智能设备,如灯光、温度监测等,实现家居的便捷操控。教程详细介绍了硬件连接、程序设计和自定义语音指令的设置步骤,旨在帮助爱好者体验物联网和语音识别技术的乐趣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

本文作者: & 铁熊

开源电子平台兴起以来,诞生了不少的创客们,他们用天马行空的想象力,创造出各种新鲜有趣的作品,他们热衷于改变千篇一律的生活,享受科技创造带来的乐趣。其中与我们的生活息息相关的就包括智能家居相关的作品,在这方面国内外大牛们各显神通,纷纷创造出自己独特的智能家居作品,例如智能窗帘、智能宠物投食机、家庭气象站、智能小夜灯等居家必备的实用项目。

我自己也喜欢改造家里的电器,赋予传统家具新鲜的活力,让它们知冷暖,变成真正的生活小帮手。但随着改造或者是创造出的智能家居项目越来越多,他们的控制变得越来越困难:往往需要切换到不同 App 去控制不同的设备,这变得相当繁琐,而且它们之间是相互独立的。那有没有办法使他们有机结合在一起呢?

语音控制就是一个非常理想的控制方法,我们只需要一句话就可以获取各种传感器的信息,也可以控制各种执行器完成我们的操作。本期教程就教大家打造一个智能家居语音助理,通过语音识别享受智能家居带来的便捷与乐趣。

先来看一下演示视频,对本期教程实现的效果有一个大致的了解。视频中演示了如何用语音控制灯的开关、查询灯的状态以及获取室内温度。

DIY 智能家居语音助理 — 语音控制万物

作品效果图

可以通过继电器将本项目中的 LED 灯换成普通的灯泡,视觉效果更佳,如下图所示。利用这种方式,我们可以控制的设备就不仅仅是模拟的 LED 灯了,而是智能家居里的各种设备。

设计思路

下面开始详细讲解程序设计过程,项目框架如下:

语音助理控制端,我们采用 M5StickC 开发板来编程,因为 M5StickC 开发板集成了电池、麦克风以及屏幕,可以实现方便地实现语音识别,是一个比较理想的测试模块。

智能小灯与传感器受控端,我们采用 ESP8266 结合各种传感器来制作,ESP8266 是一款性价比很高的开发板,性能强大,同时又可以连接 WiFi,接入各种物联网平台。

物联网方面,我们采用 Blynk 物联网框架,因为 Blynk 是一个相对简单实用的物联网平台,拥有丰富的控制组件,仅需少量代码即可完成复杂的物联网开发,又因其具有开放 API,故而可以轻松的集成到种物联网项目或者是自己 DIY 的 App 当中。

准备工作

我们使用 Arduino 软件来编写本项目的程序,开发板选择 ESP8266 及 ESP32 类型。至于如何在 Arduino 中配置 ESP8266 及 ESP32 的开发环境,不在本文的介绍范围,请自行查阅相关资料。

要完成本课程的项目,需准备如下材料:

  • M5StickC 开发板;
  • ESP8266 开发板;
  • DHT11 温湿度传感器。

电路接线

DHT11 温湿度传感器连接 ESP8266 开发板的 GPIO5 接口。注意视频中使用的开发板与下图不同。视频中采用了一块集成的 ESP8266 开发板,自带 DHT11 温湿度传感器,省去了接线的烦恼。但是掌握了接线原理,使用任何 ESP8266 开发板都是可以的。

语音助理程序设计(控制端)

第一步:获取语音助理项目及授权码

此处我使用的 Blynk 服务器是国内第三方搭建的免费服务器,地址是:blynk.mixly.org

使用 Blynk App 扫描下面的二维码,就可以克隆智能家居助理项目,并且复制 Blynk 授权码备用。(对 Blynk 不熟悉的朋友,可以参考裘炯涛和陈众贤老师编写的《物联网So Easy!》这本书,上面有很多 Blynk 物联网的基础知识及案例,可以帮助大家快速入门。

第二步:获取 M5 语音识别授权码

我们先去 M5 官方网站(https://m5stack.com/pages/download)下载并安装 M5Burner 烧录软件。如下图所示,打开 M5Burner 软件插入 M5StickC 开发板,选择自己的端口号,然后选择 ATOM 模块看到 EchoSTT 点击 Get Token 获取语音识别授权码,获取到授权码后复制该授权码备用。完成这些步骤之后就可以关闭 M5Burner 软件了。

第三步:修改程序

使用 Arduino IDE 软件选择本教程附录的 voice_assistant 程序并打开(程序下载方法见文末)。主要代码如下:

// Blynk与联网相关库
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// 语音识别相关库
#include <driver/i2s.h>
#include <HTTPClient.h>
#include "BaiduRest.h"

// M5StickC相关库(含TFT彩屏库)
#include <M5StickC.h>

#include "image.h"  // 图片取模数据
#include "Function_wrapper.h"  // 函数封装

// -------------------------- 用户设置开始 ------------------------------ //
// -------------------------------------------------------------------- //

// WiFi账号与密码
char ssid[] = "********";
char pass[] = "********";

// 语音识别授权码
#define voiceAuth "f008d1c88064c8c38084de074b73b823"

// Blynk授权码
char auth[] = "SDzbDasOYxRDYqr7NdZiSIk2VSI52e6b";

// -------------------------------------------------------------------- //
// -------------------------- 用户设置结束 ------------------------------ //

BaiduRest rest;

uint8_t microphonedata0[1024 * 80]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值