【掌控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)程序
最后将程序刷入到掌控板2.0上。
受控端(掌控板1.0):
受控端没有语音识别功能,所以不会与MQTT冲突。那就可以通过MQTT去订阅消息,从而实现对应的执行。
首先就是添加MQTT应用扩展。
根据协议设置相关参数:
根据接收到的消息进行对应地执行
注:同一项目下可以有多个设备。
完整的受控端(1.0)程序
因个人水平有限,在摸索中前进,分享的内容有限,可能有些地方还有待纠正和改进,希望同行不吝赐教。最后附上测试视频。
https://v.youku.com/v_show/id_XNDQ2MDE3MTY0MA==.html?spm=a2h3j.8428770.3416059.1
高技术含量的教程,赞一赞。{:5_190:} 掌控版厉害!!!
页:
[1]