• 003-STM32+Air724UG基本控制篇(阿里云物联网平台)-在阿里云物联网平台上一型一密动态注册设备(Android)


    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    前言

    如果咱自己做产品,APP端肯定是一个程序.

    如果咱向前面章节似的自己去云端注册设备,然后再把设备的信息(三元组)给用户,

    然后用户再填写信息接入,这样用户体验不好,过于繁琐,也无疑增加了人工成本.

    应该是用户打开手机APP,然后APP自己去云平台注册一个设备,然后接入云平台实现通信

    动态注册的方式(咱使用的是,一型一密免预注册)

    先解释几个名词:一机一密 ;一型一密(预注册) ;一型一密(免预注册)

    一机一密:

    就是咱原先测试的在网页上去手动注册设备,然后把ProductKey、DeviceSecret、DeviceName

    给设备,然后设备根据这三个信息组合计算下得到mqtt的连接参数,然后就连接通信了

    https://help.aliyun.com/document_detail/74005.html?spm=a2c4g.11186623.6.585.3bb41114l1EN77

    一型一密(预注册):

    需要咱先在网页上注册上设备,然后把ProductKey、ProductSecret、DeviceName

    给设备,然后设备通过https或者mqtt获取DeviceSecret

    然后设备根据ProductKey、DeviceSecret、DeviceName这三个信息组合计算下得到mqtt的连接参数,然后就连接通信了

    https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

    一型一密(免预注册): 免预注册就是不用在云端自己注册设备,设备连接上网络以后设备自己去注册.

    这样子的话,每个设备烧录同样的程序就可以,不用再配置什么三元组了!

    不过每个设备程序里面的需要写上产品的ProductKey 和 ProductSecret  的值,这两个值是固定的.

    主要是区分开你注册的时候注册到哪个产品下.

    然后设备通过https或者mqtt接口注册设备,

    注册的时候服务器会返回ClientID和DeviceToken 等参数

    最后按照平台规定的组合MQTT参数

    MQTT连接的方式注册设备:

    https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

    拼接注册返回的参数连接MQTT:

    https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.2.16.1c99426ff6ECtQ#concept-mhv-ghm-b2b

    测试本节一型一密(免预注册)程序

    1.打开本节的Android程序

    2.登录自己的云平台,打开动态注册,查看自己产品的ProductSecret; ProductKey; 

    注:选择哪个产品,设备就会注册到哪个产品下

    打开动态注册

     

    3.替换自己的 ProductSecret; ProductKey; 

    4.下载安装到手机

    注:注册的时候设备名字是可以自己规定的

    5.输入设备的名称,然后点击注册设备

    我写的是 regapp

     

    8.注册成功以后自动跳转到主页面

    9.用户可以看下日志,和刷新下云平台设备列表

     

    源码说明

    1. 注册设备我封装成了一个java文件

    2.用户调用这个函数注册设备(形参为设备的名字)

    3.程序运行的时,如果没有注册过设备,则跳转到注册页面

    4.用户点击按钮,调用注册函数注册设备

    5.注册完成跳转到主页面

    6.主页面如果判断有注册的信息执行连接MQTT程序

    结语

    之所以我把注册时的设备名称拿出来,是因为咱后面可以和手机验证码结合.

    用户拿到手机APP之后用户需要用手机号登录注册,然后呢设备的名字就用手机号代替.

    注意: 产品的 ProductSecret  和 ProductKey  别泄露了哈!!!!!

    如果让别人知道了之后,别人也可以在你的平台上动态注册设备并接入了!!!!

  • 相关阅读:
    将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
    vue 设计一个倒计时秒杀的组件
    es6之三个点(...)扩展运算符
    es6之解构赋值
    es6之字符串添加的东西
    ES6系列之变量声明let const
    js对数组进行删除
    python学习
    泛型
    随笔
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14620081.html
Copyright © 2020-2023  润新知