本帖最后由 fyaocn 于 2016-7-29 10:51 编辑
5. Amazon的语音控制服务
基于Amazon云服务的Chipkit WF32是一款优秀的物联网开发板,通过MRF24G的WiFi模块可以使得其连接互联网,基于Digilence的专有DEIPcK和DEWFcK库实现对WiF的连接和控制。基于云服务的物联网技术有多种控制方式,而Amazon提供的语音识别技术,使得控制和交互更方便和有效。Amazon语音服务是需要AmazonEcho音响来提供服务的。不过,最近提供了一个可以模拟的网站接口使得没有这个设备可以测试和使用Amazon的语音服务。 5.1 首先需要创建一个Amazon账号,然后进入开发者页面,就可以开始开发之路了。 5.2 设置AWS IoT服务 AWS IoT服务是把硬件设备虚拟成一个设备Device,提供MQTT或者HTTP服务连接这个设备。在本项目中Chipkit WF32+LED灯就是这个连接的智能硬件设备。 5.2.1 创建一个设备Create athing 创建后生成一个endpoint,这个是把本设备和其他设备区分的唯一标记,需要在后面用到的。 Thing Name: WF32LED REST API endpoint: MQTT topic: $aws/things/WF32LED/shadow/update 5.2.2 创建certificate
这个是保密和认证的重要机制。创建了3个文件,都需要在程序中用到。 Certificate ARN arn:aws:iot:us-east-1:571618967604:cert/05321abe48a0468b82736de4dc62571f32d014e910b4637cd8b18818aaafe9a4 5.2.3 关联设备thing和证书certificate。并创建一个策略policy。 关联设备和证书,并生成一个对应于服务的允许和策略过滤器,是Amazon安全层层设防的措施,对应于前一阵一个wifi控制开关要求删差评的事件,表现出Amazon对于安全和易用性之间的一种平衡方法。理解和使用起来确实比较麻烦。 5.3 设置Lambda function AWS Lambda是可以理解为一个具有一定云端计算能力的处理引擎,可以自定义对于事件进行处理。基于Amazon后台有实时数据处理,数据分析,机器学习等服务,这样的功能可以把数据进行初始分析并调用对应的AWS云服务,是一个可以自定义功能的部分。采用的比较容易使用的javascript,python,node.js等语言进行功能设置。 5.3.1 创建lambdafunction 在控制台里选择lambda,进入创建选项,可以选择一个blueprint作为范例修改,以减少配置的选择。 5.3.2 配置起动triggers 起动这个lambda功能的可以是AWS的其他服务,这里选择了ASK,通过ASK来启动lambda的服务 5.3.3 配置程序 这里显示的是基于范例的配置程序,其中起到主要功能的就是 def lambda_handler(event, context) 这个函数,处理lambda的事件。在这个阶段可以进行修改和配置。 5.3.4 完成配置 和前面一样,同样有一个唯一编码: ARN – arn:aws:lambda:us-east-1:571618967604:function:WF32LED 5.3.5 Setting up Alexa Voice Skill
5.3.5.2 使用定制ASK,并选择起动的语句,需要注意避免和其他已经有的话语重复,所以可以取一下比较小众的词句。 5.3.5.3 接着进入语音界面UI的设置。和我们通常的图形UI不同,语音UI需要确定的是说那些词语,如何反馈和互动。在ASK中是用Intent和utterance的组合来实现的。 这里使用的是smart home API的定制UI 2.3.6 测试lambdafunction 返回到 Alexa Skill,然后点击 “Test” ,就可以测试lambda function
|