您的位置 首页 智能家居

手把手教你做语音控制智能家居

手把手教你做天猫精灵语音控制智能灯 前言: 随着科技的发展,现在的家用电器功能越来越强大,虽然WiFi手机控制已经成为标准配置,但手机控制有时候仍然显得不是非常方便,人们必须把手机解锁,找到app,找到相应的配置界面才能操作。这样下来可能就几分钟过

手把手教你做天猫精灵语音控制智能灯

前言:

随着科技的发展,现在的家用电器功能越来越强大,虽然WiFi手机控制已经成为标准配置,但手机控制有时候仍然显得不是非常方便,人们必须把手机解锁,找到app,找到相应的配置界面才能操作。这样下来可能就几分钟过去了。我们需要一个真正便捷的智能控制,那种最方便呢?当然是语言控制,语音控制是最自然的,最符合人们习惯的控制方式,也是最快捷的方式。今天我就手把手的教大家做一个语音控制的智能灯。我们使用的开发板是一款当今最流行的WiFi开发板esp8266。

语音识别概述

语音控制是人类的梦想,自从计算机出现后人们就不断的想让计算机能够识别人类的声音,但由于人类声音的复杂性,同样的语句,不同的人说出来计算机就不能正确识别,同样,一个人说话,说的语速不一样,计算机也很难识别,这样语音识别就发展的很慢,截止到21世纪初期,也只能识别简单的句子,识别的准确度也是差强人意。但随着近10年深度学习的发展,语音识别的准确度有了非常大的提高,长语音识别率能达到99%以上。这样语音识别的商业价值就渐渐体现出来。我们今天就是使用的语言识别功能是天猫精灵提供的,天猫精灵是阿里巴巴推出的一款智慧音箱,可以识别人的声音,可以和人做简单的对话。

手把手教你做语音控制智能家居

项目搭建

要使用天猫精灵语音控制我们的智能家居,需要先搭建开发环境,开发环境推荐使用Ubuntu linux,linux开发比windows开发要方便。

环境准备:

1.安装ubuntu操作系统

2.安装python环境及其依赖的包

sudo apt-get install-y python

sudo apt-get install-y gcc-multilib

sudo apt-get install-y libssl-dev libssl-dev:i386

sudo apt-get install-y libncurses5-dev libncurses5-dev:i386

sudo apt-get install-y lipeadline-dev lipeadline-dev:i386

sudo apt-get install-y python-pip

sudo apt-get install-y minicom

3.安装aos-cube

sudo pip install setuptools

sudo pip install wheel

sudo pip install aos-cube

#如果遇见pip红色报错,请执行pip install --upgrade pip进行升级即可

4.使用git下载源码

https://github.com/alibaba/AliOS-Things

至此环境已经安装完毕,在开发项目之前,要首先在天猫精灵的平台进行产品创建

产品创建

登录产品创建网站https://living.aliyun.com/,如果有淘宝账号,直接使用淘宝账号登录即可。如果没有则需要自己申请。

登录进去之后首先“创建新项目”

选择天猫精灵生态项目,输入自己的项目名称,点击确定。

手把手教你做语音控制智能家居

项目创建完毕,选择“创建新产品”

选择创建产品的品类

手把手教你做语音控制智能家居

选择产品的属性和功能

手把手教你做语音控制智能家居

第二项可以跳过,到设备调试界面,选择模组,添加新的设备

手把手教你做语音控制智能家居

添加完成后打开设备详情页面

手把手教你做语音控制智能家居

这个页面注意记录下来ProductKey,DeviceName,DeviceSecret这三个重要信息

外加Product Id,总共是四个参数,称为四元组。productID在下图中可以取到。

手把手教你做语音控制智能家居

至此产品和设备创建完毕,下面我们就要编写自己的产品代码。

工程创建

在环境搭建好之后可以使用下面命令创建自己的工程,开发板选择esp8266。

aos create project -b esp8266 -tlinkkit_demo -d 你自己的工作目录 工程目录名

工作目录要事先创建好,创建工程完成后会在工作目录下面生成一个工程目录。

其中app_entry.c 和linkkit_example_solo.c是我们需要更改的文件。

修改代码

1. 修改app_entry.c,添加下面代码

static void linkkit_check_awss(void)

{

int ret = 0;

int32_t len = 0;

netmgr_ap_config_t config1;

memset(&config1, 0, sizeof(netmgr_ap_config_t));

ret = netmgr_get_ap_config(&config1);

len = strlen(config1.ssid);

LOG("ret = %d\n", ret);

LOG("len = %d\n", len);

if (len

LOG("Network is not configured, active_awss\n");

awss_config_press();

}

}

在 application_start 函数中添加该函数的调用部分:

int application_start(int argc, char **argv)

{

...

netmgr_init();

linkkit_check_awss(); //Check configuration and trigger network config

...

这样就可以使能配网功能,设备在未配网状态下可以用“天猫精灵,找队友”发现设备。

2 .修改linkkit_example_solo.c文件

在属性处理函数user_property_set_event_handler内添加硬件控制功能。本函数默认仅仅是打印log。

手把手教你做语音控制智能家居

如果要使用eps8266的IO控制功能,需要在头文件引用esp8266的SDK头文件,并且添加esp8266 GPIO的初始化代码。我们实例的是一个智能灯,就要把控制LED灯的GPIO进行初始化,并把控制部分写入消息回调函数。

修改的代码如下

app_entry.h

手把手教你做语音控制智能家居

app_entry.c

手把手教你做语音控制智能家居

手把手教你做语音控制智能家居

linkkit_example_solo.c

手把手教你做语音控制智能家居

编译和烧写

代码修改完毕后,使用aos make进行编译,编译没有问题后

拷贝编译好的二进制文件烧写到esp8266芯片

使用乐鑫的烧写工具进行烧写,注意下面红色框内的参数需要自己修改。

其中blank.bin 和boot_v1.7_921600.bin在$(AOS_PATH)/platform/mcu/esp8266/bsp下面

手把手教你做语音控制智能家居

烧写完毕后,可以尝试实验天猫精灵“找队友”方式给esp8266配网。

配网成功后可以尝试实验语音控制LED灯的亮和灭。

可以在串口看到服务器和esp8266之间的打印, 波特率设置为921600

手把手教你做语音控制智能家居

赞助本站

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: dawei

【声明】:第七手机网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

无人汽车无法躲避没见过的物体?问题出在训练pipeline上

人类经常会遇到种类新颖的工具、食物或动物,尽管以前从未见过,但人类仍然可以确定这些是新物体。 与人类不同,目前最先进的检测和分割方法很难识别新型的物体,因为它们是以封闭世界的设定来设计的。它们所受的训练是定位已知种类(有标记)的物体,而把未

万字读透自动驾驶3D视觉感知算法

对于自动驾驶应用来说,最终还是需要对3D场景进行感知。道理很简单,车辆不能靠着一张图像上得到感知结果来行驶,就算是人类司机也不能对着一张图像来开车。因为物体的距离和场景的和深度信息在2D感知结果上是体现不出来的,而这些信息才是自动驾驶系统对周

自动驾驶会使共享经济再次火热吗?

自动驾驶技术的发展一直饱受争议,对于自动驾驶的未来,有一个一直绕不开的话题,那就是自动驾驶是否安全。众所周知,自动驾驶的目标是让自动驾驶汽车可以独立完成出行任务,人类将自己出行需求完全交给自动驾驶汽车,在出行过程中的娱乐需求也可以由自动驾

Cruise自动驾驶决策规划技术解析

Cruise自动驾驶决策规划控制负责人Brandon Basso本科毕业于哥伦比亚大学,博士毕业于加州大学伯克利分校,主要研究决策、机器人系统设计和软件架构、机器学习、控制理论等。曾在3D Robotics、Uber自动驾驶公司工作多年,担任重要职位,在无人机和自动驾驶领

自动驾驶汽车比七个月大的婴儿还聪明吗?

到了七个月大的时候,大多数孩子已经认识到,即使看不见物体,它们仍然存在。把一个玩具放在毯子下面,孩子会知道它的存在,他可以伸手到毯子下面把它拿回来。这种对物体恒存在的理解是正常发展的里程碑,也是现实的基本原则。 这也是自动驾驶汽车所没有的。

返回顶部