MQTT接入阿里云IoT平台应用案例

蓝蜂物联网
2022-07-05


MQTT接入阿里云IoT平台


前言:此文档旨在介绍阿里云IoT平台配置MQTT的方式方法,从而可以使用蓝蜂MQTT网关将下位机数据传输到阿里云IoT平台。按照如下步骤就可以成功实现数据上云的功能。

、配置阿里云IoT平台

1.1登录

进入阿里云IoT平台官网(https://www.aliyun.com/),登录账号,然后点击右上角控制台。

进入控制台后,选择【产品与服务】→【物联网平台】。或直接搜索“物联网平台”。

注:**次使用阿里云 IoT 平台物联网服务器需要先开通服务才能使用,跟随界面提示点击即可。

这样便可进入物联网平台

1.2创建产品

点击实例,可进入实例详情,点击【设备管理】-【产品】-【创建产品】,如图

【产品名称】:自定义

【所属品类】:选择标准品类时,可选择与自己产品设备相近的模型,选择后系统可自动为您创建必选功能,也可根据需要添加可选功能和自定义功能,本文档选择自定义品类,自定义功能

【节点类型】:选择直连设备

【联网方式】:蜂窝(2G/3G/4G/5G)

【数据格式】:ICA标准数据格式(Alink JSON)

【校验类型】和【认证方式】可保持默认

1.3添加设备

创建产品完成后,点击【确认】按钮后,可进行添加设备,点击【前往添加】。

DeviceName】:设备名称DeviceName建议填写蓝蜂网关sn编号,可方便后续对配置文件进行导入导出操作,本示例填写的为网关sn编号200121091367。

点击【确认】按钮,添加完成,可在设备列表中看到添加的设备。

点击【查看】按钮,可查看设备的连接参数以及其他详细信息

可以看到我们创建的设备的三元组,如图

1.4配置阿里云IoT平台物模型

在阿里云IoT平台,点击【产品】,找到我们创建的产品,点击【查看】按钮,如图

进入产品中,点击【功能定义】-【编辑草稿】

进入编辑草稿页面,点击【添加自定义功能】,这里我们添加属性,添加温度,湿度和开关三个属性,您可根据自己需求进行填写,如图

注意:数据类型需要根据设备每个属性的实际情况进行选择,在后面使用蓝蜂MQTT网关配置工具配置时,需要与之进行匹配。

区别于EMCP物联网云平台,此处不需要填写变量的地址,数据是根据“标识符”来展示的。建议在创建变量后将创建的“变量名称”、“标识符”、“数据类型”记录下来,如下表。在之后的蓝蜂MQTT网关配置工具中会用到。


变量名称
标识符
数据类型
温度
temperature
int32(32位整形)
湿度
Humidity
int32(32位整形)
开关
Switch
Bool(开关量)



添加完成后,列表中可看到我们添加的3个属性,点击左下角【发布上线】

注:

1、如果想要修改创建好的功能类型,点击编辑草稿即可。

2如果想要创建新的模块(类似于变量的分组)点击编辑草稿→添加模块即可。


至此,按照如上步骤,对于阿里云平台的设置就完成了,下面我们进行连接设置。

配置蓝蜂MQTT网关配置工具

将网关通电联网,使用电脑与网关232串口连接,使用本地串口配置方式登录进入蓝蜂MQTT网关配置工具,详细配置工具使用说明请参考《蓝蜂MQTT网关配置工具使用说明》

2.1登录

打开“蓝蜂MQTT网关配置工具”,此处必须使用本地串口配置的方式进行配置,如图:

使用232串口,将网关的RS232口使用USB转232线接到电脑串口上,同时填写配置参数,包括选择通讯口,波特率,数据位,数据校验,停止位。默认参数为115200,8,无,1。

【通讯口】:选择正确的串口号,可在电脑的“设备管理器”中查看。本机为COM4。

【读取网关串口参数】:如果对于串口参数并不了解,可点击“读取网关串口参数”按钮,客户端会主动搜索并填入已选中的串口的参数。前提是必须选择正确的通讯口。

【记住配置】:点击“记住配置”按钮后,会记住当前配置,避免每次进入时需要重新配置的问题,再次进入时可直接进行连接操作。

点击“立即连接”按钮,稍等片刻即可进入网关配置工具进行配置。

2.2连接阿里云IoT平台

进入蓝蜂配置工具后,点击【MQTT连接】-【MQTT连接配置】,可用于配置连接的MQTT服务器的参数。配置完成后,网关即可连接MQTT服务器

对于连接阿里云服务器的参数,可在阿里云IoT平台查找,点击【设备】按钮,可在阿里云IoT平台找到上述创建的设备,如图

点击设备后面的【查看】按钮,可找到连接参数,如图

将弹窗中的参数分别粘贴填写到蓝蜂MQTT网关配置工具的连接配置页面,如图

其他参数默认填写

注意:将连接参数从阿里云IoT平台粘贴填写到蓝蜂MQTT网关配置工具时,参数前面和后面不要留有空格,否则将无法连接阿里云IoT平台。

填写完成,点击【保存】按钮,需要重启网关,配置才会生效,可正确接入阿里云IoT平台,连接成功后,可在阿里云IoT平台看到设备已正常在线

2.3添加驱动、变量

在驱动管理页面为网关添加驱动,可按照自身设备进行填写,如图,详细添加驱动使用说明请参考《蓝蜂MQTT网关配置工具使用说明》。

添加驱动完成后,可为设备添加需要采集的变量参数,可添加上我们在阿里云IoT平台添加的3个参数,在阿里云IoT平台找到我们配置发布的3个参数,如图

进入产品后,点击【功能定义】,可在里面看到我们创建的3个属性,如图

我们依次将3个参数添加到蓝蜂MQTT网关配置工具的变量管理中

添加完成后,如图

注意:蓝蜂MQTT配置工具中的变量标识必须与阿里云IoT平台的属性标识符保持一致且大小写一致,这样阿里云IoT平台才会正确解析物模型。

注:

网关会将创建的所有变量上传到阿里云IoT平台,由IoT平台根据标识符来判断数据是否采集、展示。

、上报数据

3.1上报数据配置

要想实现设备上报数据到阿里云IoT平台,我们需要先在蓝蜂MQTT网关配置工具中进行上报数据配置

点击【数据传输配置】-【数据上报配置】,我们可在数据上报配置中设置上报主题

对于上报主题我们需要在阿里云IoT平台打开对应设备的topic列表找到属性上报topic,如图

进入产品后,点击【topic类列表】-【物模型通信topic】,即找到属性上报主题,如图

主题中的通配符${deviceName}需要替换成我们这个产品中创建的设备的三元组中的DeviceName

我们的示例在阿里云IoT平台创建的设备的DeviceName为网关sn编号200121091367,而在蓝蜂配置工具中可使用通配符${sn}代替200121091367。

因此我们的上报主题为/sys/gqbaihhDlTb/${sn}/thing/event/property/post,我们将该主题写入数据上报配置中的上报主题中,如图

【上报方式】:可按需求填写,此处我们选择定时上报

※【加工脚本】如下,复制粘贴即可,一般不需要进行修改:

function reportToJson(signalArray, system){

    var json ={

        id: system.msgId,

        version:"1.0",

        sys:{ ack : 0},

        method: "thing.event.property.post",

        params:{}

    }

    var time = new Date().getTime();

    for(var i=0; i<signalArray.length; i++){

        var signal = signalArray[i];

        json.params[signal.key] = {

            time:time,

            value:Number(signal.value)

        }

    }

    return JSON.stringify(json);

}

点击确定按钮,配置完成,配置完成后,将网关重启,并将网关接入设备后,采集到的数据就可上报到阿里云IoT平台了。

3.2查看数据

当设备采集到数据并上报到阿里云IoT平台后,我们可以在阿里云IoT平台,点击设备,找到我们接入的设备

点击查看按钮,进入设备详情中,点击物模型数据,便可查看到我们采集到的数据,如图

点击【查看数据】按钮,可查看该属性的历史数据详情,如图

、写入数据

4.1写数据配置

从阿里云IoT平台向设备写入数据,需要在蓝蜂MQTT网关配置工具中对写入进行配置

点击【数据传输配置】-【写变量配置】,我们可在写变量配置中设置请求和响应主题

对于请求和响应主题我们可以在阿里云IoT平台打开对应设备的topic列表找到属性设置topic,如图

进入产品后,点击【topic类列表】-【物模型通信topic】,即找到属性设置主题,如图

主题中的通配符${deviceName}需要替换成我们这个产品中创建的设备的三元组中的DeviceName

我们的示例在阿里云IoT平台创建的设备的DeviceName为网关sn编号200121091367,而在蓝蜂配置工具中可使用通配符${sn}代替200121091367。

因此我们的请求主题为:/sys/gqbaihhDlTb/${sn}/thing/service/property/set,

响应主题为:/sys/gqbaihhDlTb/${sn}/thing/service/property/set_reply

我们将请求主题和响应主题写入写变量配置中的请求和响应主题中,如图






※【请求解析脚本】如下,复制粘贴即可,一般不需要进行修改:

function writeReqToJson(str){

    if(str!=""){

    var req = JSON.parse(str)

    var keys = Object.keys(req.params)

    var key = keys[0]

    var msgId = req.id

    var json = { key: key, value:req.params[key]+"",msgId:msgId}

    return JSON.stringify(json)

    }   

       return {}

}



※【响应加工脚本】如下,复制粘贴即可,一般不需要进行修改:

function writeRespToJson(signal, system){

    var json = {

        "code": 200,

         "data": {},

         "id": system.msgId,

         "message": "success",

         "version": "1.0"

    }

    return JSON.stringify(json)

}


点击确定按钮,配置完成,配置完成后,将网关重启,并将网关接入设备后,就可以从阿里云IoT平台直接控制设备进行写入数据了

4.2向设备写入数据

打开阿里云IoT平台,点击【监控运维】-【在线调试】,选择我们想要写入数据的设备,如图

找到想要写入数值的属性,我们此处对温度进行写入数值36,如图

设置成功后,数值便写入成功了,在阿里云IoT平台数值查看处我们也可以看到我们写入成功的数据,如图

注意:

点击“获取”时,获取到的值是阿里云平台最后一次成功通讯的值。即使获取成功,也不能说明网关和下位机通讯正常。



、注意事项

1、LF220网关暂时不支持web配置页,目前暂时不能设置交换机和路由器模式。

2、在打开蓝蜂MQTT网关配置工具之后,请勿关闭已打开的命令行窗口,或修改浏览器内地址,否则将无法正常使用配置工具。

3、连接阿里云IoT平台时建议将网关的“透传设置”、“采集异常设置”、“状态上报设置”关闭。

4、配置成阿里云服务器以后,再次配置网关时只能使用RS232转USB本地配置,不能使用在线配置。

5、配置LF220网关参数时必须要和阿里云服务器中设置的一致。

6、阿里云服务器(或其他服务器)有自己固定的格式,需要编写对应的脚本。阿里云服务器脚本按照文档中填写的即可,可以直接复制粘贴。

7、如果串口232是7位时,串口连接点击升级,升级成功客户端不会提示升级成功,但是网关实际会升级成功。

8、蓝蜂MQTT网关配置工具的网关编码格式为UTF-8。

9、兼容性:win7, win10, win11系统,不支持winxp及更低版本windows系统,不支持linux、MacOS、android和ios系统。







河北蓝蜂信息科技有限公司

公司电话:0311-68025711

技术支持:400-808-6168官方网站:www.lanfengkeji.com



分享