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

前言:随着科技的发展,现在的家用电器功能越来越强大,虽然WiFi手机控制已经成为标准配置,但手机控制有时候仍然显得不是非常方便,人们必须把手机解锁,找到app,找到相应的配置界面才能操作这样下来可能就几分钟过去了。
我们需要一个真正便捷的智能控制,那种最方便呢?当然是语言控制,语音控制是最自然的,最符合人们习惯的控制方式,也是最快捷的方式今天我就手把手的教大家做一个语音控制的智能灯我们使用的开发板是一款当今最流行的WiFi开发板esp8266。
语音识别概述语音控制是人类的梦想,自从计算机出现后人们就不断地想让计算机能够识别人类的声音,但由于人类声音的复杂性,同样的语句,不同的人说出来计算机就不能正确识别,同样,一个人说话,说的语速不一样,计算机也很难识别,这样语音识别就发展的很慢,截止到21世纪初期,也只能识别简单的句子,识别的准确度也是差强人意。
但随着近10年深度学习的发展,语音识别的准确度有了非常大的提高,长语音识别率能达到99%以上这样语音识别的商业价值就渐渐体现出来我们今天就是使用的语言识别功能是天猫精灵提供的,天猫精灵是阿里巴巴推出的一款智慧音箱,可以识别人的声音,可以和人做简单的对话。

项目搭建要使用天猫精灵语音控制我们的智能家居,需要先搭建开发环境,开发环境推荐使用Ubuntu linux,linux开发比windows开发要方便环境准备:1.安装ubuntu操作系统2.安装python环境及其依赖的包。
sudo apt-get install -y pythonsudo apt-get install -y gcc-multilibsudo apt-get install -y libssl-dev libssl
-dev:i386sudo apt-get install -y libncurses5-dev libncurses5-dev:i386sudo apt-get install -y libreadline
-dev libreadline-dev:i386sudo apt-get install -y python-pipsudo apt-get install -y minicom3.安装aos-cube
sudo pip install setuptoolssudo pip install wheelsudo 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在下图中可以取到。

至此产品和设备创建完毕,下面我们就要编写自己的产品代码工程创建在环境搭建好之后可以使用下面命令创建自己的工程,开发板选择esp8266aos create project -b esp8266 -t linkkit_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 <= 0) {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

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

