官方网站地址https://cloud.bemfa.com/
上面地址有详细说明。如果自己有服务器也可以自己利用各种语音平台提供有SDK来接入。我自己只有一个天猫精灵,所以我这里接入的天猫精灵,没有服务器所以使用现成的。就是上面的巴法云,当然这种平台其实还是挻多的。我是随便选择的一个。
对于巴法云来说接入很简单。
第一步:注意一个巴法云帐号
第二步:登陆以后找到控制台,这里有私钥。这个就是接入时的验证。
第三步:建立一个主题,当然它不是你想建立什么就建立什么的,巴法云物联网平台默认接入天猫精灵控制,仅支持以下类型的设备:插座、灯泡、风扇、传感器、空调、开关、窗帘。
用户可以自主选择是否接入天猫精灵,根据主题名字判定。
当主题名字后三位是001时为插座设备。
当主题名字后三位是002时为灯泡设备。
当主题名字后三位是003时为风扇设备。
当主题名字后三位是004时为传感器设备。
当主题名字后三位是005时为空调设备。
当主题名字后三位是006时为开关设备。
当主题名字后三位是009时为窗帘设备。
当主题名字为其他时,默认为普通主题节点,不会同步到天猫精灵app。
第四步:如果是上面和设备,打开天猫精灵的手机API,搜索 巴法云 。输入之前注册的帐号和密码即可关联设备到天猫精灵。
第五步:编写代码:
因为没有电脑,所以这里用一个笨办法,天猫精灵关联设备后是可以设置设备名的,这个样我们把它命名为 计算机 这个我们给天猫说 xxx计算机,就可以控制电脑,也不会太尴尬。
我这里建立的窗帘,所以它可以控件开关和开合。开没用,所以我实现关机和音量控制,如果用电脑 看个电影什么的,冬天不想下床关机还是可以。当然也可以组合多组设备取不同的名来控制它。
代码我使用TCP方式,没有加密。它传输的数据为字符串。首先连接到bemfa.com端口8344。
连接成功以后发送命令"cmd=1&uid=" + m_uid + "&topic=" + m_topic + "\r\n" 订阅设备消息。uid就是控制台的私钥,topic就是你建立的主题名,,当然这里可以订阅多个设备格式 cmd=1&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002,outlet001,topic003\r\n这个格式可以订阅最多8个设备。发送以后就接收服务器消息,返回 cmd=1&res=1则说明订阅成功。这个时候只要向天猫精灵语音控制设备即可收到消息。
字段说明
cmd:为消息类型
cmd=1 时为订阅消息,当设备发送一次此消息类型,之后就可以收到发往该主题的消息
cmd=2 时为发布消息,向订阅该主题的设备发送消息
cmd=3 是订阅消息,和cmd=1相同,并且会拉取一次已发送过的消息
cmd=7 是获取时间,获取当前北京时间
cmd=9 为遗嘱消息,拉取一次已经发送的消息
uid:用户私钥
可在控制台获取
topic:用户主题
可以在控制台创建主题,格式为英文或数字,相当于设备标识
msg: 为消息体
用户想要发送到某个主题的数据
获取时间指令说明
type=1 获取当前日期和时间,例如:2021-06-11 17:20:54
type=2 获取当前时间,例如:17:20:54
type=3 获取当前时间戳,例如:1623403325
符号说明
\r\n: 为回车换符,每条指令后都需要有回车换行
&: 为连接符,各字段间用'&'隔离
心跳说明
发送任意数据 为心跳消息,包括上述指令也算是心跳,但要以回车换行结尾。
心跳消息是告诉服务器设备还在线,可30秒发送一次,结尾以\r\n结尾。