既然感兴趣的人挺多,那我就写一下。
首先是智能音箱的选择,百度、小米、天猫都在发力,看眼缘。而且这个东西其实还是挺有意思的,因为我媳妇很喜欢这个东西,现在听歌基本都靠吼:小度小度!所以,我只能趁着我媳妇外出的时候,偷偷研究,否则会打扰她听歌。
然后说方案,有人还留言说:希望我开源~~~
开源就夸张了,本来我就是跑了个例程,上升不到开源的高度。我使用的是blinker他们家的方案,上一节已经说过了。用法还算简单,但是他们家目前貌似发力点集中在arduino的开发方式上,eclipse下编程的代码也有,但是相对提供的支持少很多,原因不明。
但这并不表示blinker有多强大,因为它能可以接入百度?原因很简单,百度,或者说小度是希望外部设备接入的,毕竟都想布局物联网的市场。百度搜索:小度技能开放平台,结果如图:
你搜索小爱、或者天猫开放平台,里面都是教你如何接入它们的平台。所以,blinker是针对这几家的开放平台,根据官方的要求写了一个相对比较好用的接入的函数库。
虽然我是一个爱思考的工程师,也花了半天时间啃官方的文档。但我还是放弃了,太累人,我懒………..
所以,使用现成的方案吧,你要先找到blinker提供的函数库文件。个人建议你先逛一下他们的开发文档,起码有个大致的印象。实在找不到,再看我的程序。
第三,我使用的是基于安信可的一体化开发环境,最新版,RTOS方式。如果没有看懂前面系列教程的童鞋,建议你看着玩就行了,想看懂是很难的。
最新版的安信可一体化开发工具,相比之前的版本,有一个重要的变化:增加了menuconfig。
很多人第一次见到这个东西,我也是刚接触一段时间。简单来说,官方的SDK中提供了大量的接口驱动,如果所有驱动都编译进程序里,一个是太费时间(虽然现在也很慢),另外就是太占flash。而通过menuconfig,我们可以选择添加我们需要的驱动,避免资源浪费。界面如下:
怎么用?
按按上下左右,空格、回车,多试几遍就行了。跟电脑开机时候的BIOS页面很像。前期,建议多看“Component config”里面的内容,有基础的,敲几遍就有感觉了。敲回车,进入后页面如下:
选中blinker,再回车。进入之后,主要是下面这两项:
“BLINKER_WIFI”里面填入你家的wifi账号和密码,模块对应的密钥,同时设置wifi模式为默认模式。下面三个分别是:天猫、小度、小爱。用哪个选哪个,我这里选小度,模式选OUT_LET模式。
wifi的账号、密码,已经模块密钥都在这里填写,程序里就不用再写了。
源码打开后,如果你看了我的程序,会发现里面有两部分源码:一部分是小度的,一部分是小爱的。没错,小爱的是官方提供的,小度是我在小爱基础上改出来的。主要看下面:
前面的,和上一节一样,没必要再看了。但是需要你有上一节的基础,就是说上一节的内容,最好是跑过一遍。这一节主要看这两个,这里起作用的主要是这两个函数,一个是:
blinker_dueros_power_state_init(dueros_power_state);
从函数名字可以大致猜出来它的功能:基于小度的开关类设备状态初始化,括号里面是状态发生变化时对应的回调函数。代码如下:
void dueros_power_state(const char *state)
{
static int state_flag = 0;
if(state_flag == 0)
{
//GPIO12拉高,GPIO13拉低
gpio_output_set(BIT12, BIT13, BIT12|BIT13, 0);
state_flag = 1;
}
else
{
gpio_output_set(BIT13, BIT12, BIT12|BIT13, 0);
state_flag = 0;
}
BLINKER_LOG(TAG, "need set power state: %s", state);
blinker_dueros_config_t config = {
. power_state = state,
};
if (strcmp("True", state) == 0) wsState = 1;
else wsState = 0;
blinker_dueros_print(&config);
}
GPIO操作的那部分是我加的,看到这里该懂的就懂了。说白了就是,收到语音控制开关状态时,执行该函数。
另一个函数是和设备查询相关的,简单来说,小度要判断你是什么东西!
另外,小度APP里面即便绑定了blinker的账号,有时候设备也刷新不出来,这时候需要跟小度说:小度小度,查找设备(也可能是:添加设备,我记不清了)!
我这里只是简单的把思路跟大家说一下,具体操作还是比较繁琐的,需要细心!例如,我最开始绑定账号后,设备刷新不出来,是在小度APP里找到的使用说明、评论,才知道要语音要求它添加设备。
最后,就是你们前几天看到的效果,视频如下:
最后,程序放出来,你们可以测试一下,但是密钥信息不要用我的,改成你们自己的。
完整工程源码,请关注公众号:单片机爱好者,回复关键字:ESP8266,即可获取。
牛逼!网上很多都是接入小爱同学,直接用官方的例程,连改都懒得改。你这里直接移植到了小度下面!
看的挺仔细
esp8266
不是这里
menuconfig在哪
安信可工具1.0版本里面有,不过需要有前面的操作基础。零基础的就算了。
前辈,能加个微信吗?ngfx666
已加,请讲~