爱星物联:对接小米IoT 实现小爱同学语音控制

文章目录

  • 前言
  • 步骤
  • 1、小米开发者账号
  • 2、小米开放平台服务器配置(这是云云对接的关键)
  • 3、通过米家 APP 授权(这是验证服务器配置的关键)
  • 4、创建小米 IoT 云云对接的产品
  • 5、配置爱星物联的智能产品、语控配置
  • 6、通过测试工具测试指令
  • 7、通过小爱同学测试指令
  • 总结

  • 前言

    智能音响,作为现代智能家居的重要组成部分,其重要性体现在多个方面,不仅极大地丰富了人们的生活体验,还推动了科技与日常生活的深度融合,今天使用小爱同学控制智能设备;

    对接小爱同学有两种方式,第一种:技能方式;第二种:小米 IoT 的云云对接方式。要说哪种方式更好,我自然是推荐小米 IoT 云云对接的,可是呢…他对你的小米开发者账号要求比较高,在新规定出来之后开发者账号已经无法随意开通云云对接了,还好我公司的账号在很久很久以前开通了,所以…来一场让人羡慕的演示吧!

    步骤

    1、小米开发者账号

    小米 IoT 包含两种方式,第一种是云云对接, 第二种是 SDK 接入;如需平台支持音响控制,必须账号具有云云对接权限;

    有云云对接权限的账号:
    图一
    无云云对接权限的账号:
    图二

    2、小米开放平台服务器配置(这是云云对接的关键)

    点击控制台-> 应用-> 云接入 OAuth 管理,这里配置爱星物联的 OAuth2.0 的地址,这样小米就能通过 OAuth2.0 调用你的授权和下发控制了;
    图三
    这个爱星物联的服务器地址从哪里来呢?

    其实我们可以找到开源代码中的“iot_smart_speaker_service”服务,将这个部署到公共网络,并且配置好 https,下面是我 Nginx 的对语控服务的配置;

    想要看 https 怎么申请,可以参考文章《泛域名证书可以这么申请,免费也挺好用》

    server {
      listen       443 ssl;
      server_name cloudapi.hogan123.com;
      access_log logs/access.log main;
      ssl_certificate /opt/hogan/cert/cloudapi/fullchain.cer;
      ssl_certificate_key /opt/hogan/cert/cloudapi/cloudapi.hogan123.com.key;
    
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
    
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;
    
      add_header X-XSS-Protection 1;
      add_header X-Content-Type-Options "nosniff";
    
      location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_buffering off;
        proxy_pass http://127.0.0.1:31003;
      }
    }
    

    通过上面的配置我们得到以下地址:

    OAuth2.0 配置:
    
    账号授权 URL:https://cloudapi.hogan123.com/login
    
    Client ID:XiaomiTest
    
    Client Secret:XiaomiTest123
    
    跳转 URL:https://oauth-redirect.api.home.mi.com/r/2147481880
    
    Access Token URL:https://cloudapi.hogan123.com/oauth/token
    
    Refresh URL:https://cloudapi.hogan123.com/oauth/token
    
    Scope:all
    
    Grant Type:authorization_code
    
    云通信配置:
    
    设备指令接受 URL:https://cloudapi.hogan123.com/api/xiaomiIoTGateWay
    

    将配置填入到小米的服务配置中:
    图四
    点击“测试”,将会打开 OAuth2.0 的授权页面;

    这里有个坑,需要注意以下,平台是支持多个 APP 进行配置的,所以官方提供的域名是一个泛域名,他们会拿泛域名的前缀作为 APP 的 appkey 进行识别账号来源和 APP 信息,我这里没有用到泛域名,所以…这个我们得改下代码,改成给自己的 appKey,不然加载不出 APP 的信息;如果配置了泛域名的朋友,你可以忽略我这一步;

    图五
    成功打开了授权登录页面,输入 App 的账号密码,点击登录,点击确认授权,如果小米没有返回错误的 json,说明你成功了;

    常见的错误,你没有用 https,你使用了端口访问等;
    图六

    3、通过米家 APP 授权(这是验证服务器配置的关键)

    这是验证服务器配置的关键,私有云平台的配网的时候也将显示到授权后的页面中(记得用小米开发者平台绑定账号登录米家 APP)
    图七
    看到下面的页面,说明你成功授权了,只是没有配网设备,如果你在爱星物联提供的 APP 中配网了设备,并且给产品配置了语控,这里就可以同步到设备了;
    图八

    4、创建小米 IoT 云云对接的产品

    创建产品中,产品类型决定平台默认帮你创建的功能列表,语控指令只支持平台提供的功能,自动的功能别想了,另外产品类型也必须是平台提供的,平台没有你需要提单申请,而且申请时间超长的;
    图九
    图十
    小米平台会根据你选择的产品品类默认设置物模型功能,开发者可以根据自己的需求添加和修改功能,并非所有功能支持语控;
    图十一
    图十二

    5、配置爱星物联的智能产品、语控配置

    图十三
    图十四
    这里设备类型要从小米开发者平台的功能定义的 JSON 中获取
    图十五

    6、通过测试工具测试指令

    在操作这一步之前,需要给我们的开发的设备配网,注意这里配网设备是配置到授权页面授权的账号中;有了设备之后,进入米家 APP-连接其他平台,点击同步设备之后,同步页面能看到加载出来了设备之后,开始调试这里将看到“调试 APP 功能(云端缓存)”
    图十六

    之前产品选择的功能比较多,但是我们在平台配置里面只配置了开关;这里可以点击“读取”、“写入”,点击之后控制指令将发至平台,平台将指令发往设备,实现设备控制,设备状态获取;
    图十七

    进入到小爱语控测试工具,平台将帮你生成预料,点击语料进行推送测试;
    图十八
    图十九

    7、通过小爱同学测试指令

    最后将我 82 年的小爱同学,绑定到小爱音响 APP,然后和他说说“打开测试产品”;
    图二十

    总结

    以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,更多资料可从我们官网上获取。

    官方官网:https://www.ai-thinker.com
    开发资料:https://docs.ai-thinker.com/
    官方论坛:http://bbs.ai-thinker.com
    技术支持:support@aithinker.com
    爱星物联IoT平台体验网址:https://open.iot-aithings.com

    作者:安信可科技

    物联沃分享整理
    物联沃-IOTWORD物联网 » 爱星物联:对接小米IoT 实现小爱同学语音控制

    发表回复