【Mr.chen|开发日记Nov.3】利用dueros进行语音识别并和onenet建立连接
Mr.chen 发布于2017-12-12 11:11 浏览:2728 回复:0
0
收藏


     

首先,我不得不吐槽下论坛,每次在线拟帖子,谢了多半页了,说是先提交保存下吧,一提交,卧槽   就只有标题,想砸电脑的冲动。

 

在科技迅速发展的今天,生活压力的增加,人们渴望追求更优越的生活条件,所以加班的现象越来越普遍。那么当你不在家并且家里没人的时候,如果家里失火、煤气忘关,或者说管道漏水等。如何能够实时的了解家中的情况,并且能够在最短速度内报警,把损失降低到最小,显得尤为重要。

本次教程是做一款集dueros语音交互多方平台信息互通为一体的物联网综合信息小车。语音交互部分参考小李飞刀刀大佬的经典之作用嘴控制普通家电,进行编程的,所以大家语音识别部分可以照着他的教程做。

物联网设备层是用的stm32f103型号的单片机作为主控的,然后配合esp8266进行与中国移动onenet进行通信,由于手头有一块中国移动的麒麟座开发板(主控也是stm32f103,板载8266GSM,本次只用8266进行联网),所以省的买了。

blob.png

现在,正式开始对硬件设备进行接入。

首先登陆中国移动onenet官网,创建产品以及设备,关注设备ID以及产品ID一会用来鉴权

blob.png

blob.png


blob.png

blob.png


blob.png

填入正确的产品ID和设备ID时,运行树莓派上根据刀刀大佬编写的识别程序,正常情况下会看到以下效果

blob.png

然后接下来就是受控设备的联网了。

登陆到onenet官网论坛,找到麒麟开发板的例程代码,下载下来。

blob.png

找到裸机例程中的mqtt协议例程 然后打开他

blob.png

双击左侧net_device.c 可以看到例程是支持Airkiss配网的,当然也可以根据自身的情况选择直接将wifi名和密码写入程序,省去手动配网

blob.png

blob.png

然后回到onenet.c进行鉴权信息的修改

blob.png

如果你也用的是麒麟座开发板,那么只需编译,然后下载到板子上就可以了连上onenet平台了

blob.png

如果你用的不是麒麟座,还需要根据板子,修改下外部晶振的频率,因为麒麟座用的是12MHz的晶振,市面上常见的都是8Mhz, 当然你的板子是12M的晶振也不需要做以下步骤。

打开main函数,点击stm32f10x.h单击右键 选择第二项目

blob.png

blob.png

然后回到system_stm32f10x.c   8*9=72MHz

blob.png

最后再编译,下载

blob.png

回到平台查看设备连接情况,设备在线。


blob.png

再回到源码,看看例程是如何利用onenet平台控制麒麟座上的led灯的,在onenetAPP.C中,OneNet_App函数对平台下发的数据进行检索,找到redled 关键字时,对红色led进行控制的. 我们可以通过自定义搜索的关键字,来实现对设备的控制

blob.png

回到onenet开发者中心,找到stm32设备点击下发命令,并输入发送

开指令:  {redled}1   关指令: {redled}0

blob.png

测试板子上的红色led 是否能控制,如果用的是自己买的普通stm32板子,可以通过查看麒麟座的原理图,找到对于的引脚 量一下管脚的高低电平。

要想和dueros通信,就需要相互订阅同一个topic主题,来实现

使用usb转串口模块,连接电脑和单片机,打开串口

然后在打开中国移动的mqtt测试软件,把测试设备也接入onenet平台,看一下mqtt通信的整体效果。

blob.png

blob.png


blob.png

然后对着小度喊,“小度小度 开门    “小度小度 关门  正常情况下会有出现以下效果

blob.png

blob.png

blob.png




最终的效果

 http://xiaoying.tv/v/zzPm7U/1/?fromApp=XiaoYing&toApp=copylink



下篇跟新智能小车制作部分


收藏
点赞
0
个赞
共0条回复 最后由Mr.chen发布于2017-12-12 11:11
#2小小白回复于2018-03-06

楼主能留个联系方式么。。有点问题想请教请教你,谢谢楼主。

0
#3Mr.chen回复于2018-03-06
#2 小小白回复
楼主能留个联系方式么。。有点问题想请教请教你,谢谢楼主。

Q794407343

0
TOP