3622| 2
|
[入门教程] 【掌控2.0测试】利用SIoT实现远程语音开关灯 |
本帖最后由 lidunyong 于 2019-12-8 10:42 编辑 2.0版本到手已经有几天了,其实我第第一时间就开箱了。最令人感兴趣的无非就是它的语音识别功能。一开始我就想把语音识别功能与物联网结合起来,但经过测试后发现无法与MQTT一起使用。经过几天的琢磨,发现另一种途径可以与MQTT一起使用。那就是通过MQTT的WebAPI功能,然后通过mPython的“网络”的扩展模块来实现消息的发送,通过SIoT架起两块掌控板之间的桥梁。下面我就与大家来分享一下。 一、功能描述 首先来张对比照片: 主要是通过2.0板上的麦克风传感器将我们的声音通过网络进行识别,然后返回识别结果,再根据结果进行比较后向SIoT服务器发送对应消息。如有“开”字,就发送“open"消息,有”关“字就发送”close"消息。而当1.0板子接收到“open”消息时,则点亮三个RGB灯;相反,接收到“close"则关闭RGB灯。 二、准备工作 硬件: 掌控板2.0*1 掌控板1.0*1 供电可直接数据线接电脑,或用其他扩展板供电(我的是一块用百灵鸽,一块用micro:bit掌控I/O扩展板) 软件: 1、mPython 下载地址:https://www.labplus.cn/software 2、SIoT1.2 下载地址:http://mindplus.dfrobot.com.cn/siot 三、功能实现 1、打开SIoT服务器,并始终打开着。 网页端访问:http://192.168.8.69:8080 2、规划协议 3、程序编写(利用mPython软件) 控制端(掌控板2.0): 控制端要实现语音识别以及消息的发送,再加上测试过程中发现语音识别与MQTT不能同时使用,所以只能利用网络功能。因此要添加”音频“、”网络“两个应用扩展。 首先,添加应用扩展 其次,编写程序 因语音识别与网络功能都需要连接WIFI。因此首先就要连接WIFI 进行语音识别。掌控板不能时时刻刻在语音识别,因此要标记何时开始语音识别,我是用按A键,同时亮绿灯开始识别,红灯亮识别结束。 然后进行语音识别结果的比较,再通过网络的GET方式进行发送消息。 那这个请求的网址是参考SIoT的WebAPI功能的。 参考:https://siot.readthedocs.io/zh_CN/latest/advanced/03_webapi.html 参考这些之后,完成程序如下: 完整的控制端(2.0)程序 语音控制端.rar 最后将程序刷入到掌控板2.0上。 受控端(掌控板1.0): 受控端没有语音识别功能,所以不会与MQTT冲突。那就可以通过MQTT去订阅消息,从而实现对应的执行。 首先就是添加MQTT应用扩展。 根据协议设置相关参数: 根据接收到的消息进行对应地执行 注:同一项目下可以有多个设备。 完整的受控端(1.0)程序 受控端.rar 因个人水平有限,在摸索中前进,分享的内容有限,可能有些地方还有待纠正和改进,希望同行不吝赐教。最后附上测试视频。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed