1-基本控制篇(阿里云物联网平台)-C#,网页,android,微信小程序,单片机等使用MQTT接入阿里云物联网平台

这篇具有很好参考价值的文章主要介绍了1-基本控制篇(阿里云物联网平台)-C#,网页,android,微信小程序,单片机等使用MQTT接入阿里云物联网平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

这节测试下使用STM32+EC800 和 Android 和 微信小程序 和 网页端 接入阿里云物联网平台

当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备

这个设备就对应一个MQTT客户端,然后把这个设备的信息放到单片机/APP/微信小程序上使用.

单片机/APP/微信小程序等就作为了客户端接入了物联网平台.

物联网平台应该说是对设备进行管理的平台.

开通阿里云物联网平台

https://www.aliyun.com/

1.搜索阿里云物联网平台(如果没有开通请自行开通)

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

创建产品(并在产品下面添加设备)

1.咱们做产品的时候,一般都是有个产品.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.设置下产品的名称

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.产品弄好了,就要在产品下面挂上设备

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.设置下添加的设备的名字

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

注意:看看自己的这里是那个区域的,后面会用到

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

提示:后面咱就会使用下面三个参数(三元组)组合MQTT参数

"ProductKey": "a1m7er1nJbQ",
"DeviceName": "Mqtt",
"DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"

如何使用MQTT协议模拟设备快速接入物联网平台_物联网平台(IoT)-阿里云帮助中心    阿里云的说明文档

现在看MQTT的IP地址是怎么组合的

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

"ProductKey": "a1m7er1nJbQ", "DeviceName": "Mqtt", "DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"

${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com

1.替换ProductKey:

a1m7er1nJbQ.iot-as-mqtt.${region}.aliyuncs.com

2.替换 ${region}

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

最终IP地址:

a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com

现在看MQTT的端口号是什么

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

现在看MQTT的Client ID是怎么组合的

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

1.我就规定我的前面的clientId是  112233445566 (这个任意)

2.咱呢先不走SSL,  所以  securemode=3 (注意:即使走SSL,端口号也是1883)

3.最后一个呢,咱就选用 hmacsha1(这个选择的是计算MQTT密码的算法)

最终MQTT的 Client ID:

112233445566|securemode=3,signmethod=hmacsha1|

客户端(设备)连接的MQTT的用户名

{ "ProductKey": "a1m7er1nJbQ", "DeviceName": "Mqtt", "DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU" }

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

最终用户名: Mqtt&a1m7er1nJbQ

客户端(设备)连接的MQTT的密码

{ "ProductKey": "a1m7er1nJbQ", "DeviceName": "Mqtt", "DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU" }

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

所以MQTT连接的密码

8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE

最终

IP地址:     a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com

端口号:    1883

Client ID: 112233445566|securemode=3,signmethod=hmacsha1|

用户名:    Mqtt&a1m7er1nJbQ

密码:       8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE

测试

1.打开MQTT调试助手

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.填入相应的参数,点击连接

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

使用网页端调试助手连接

1.关闭测试软件

注:一开始说了,一个设备就作为一个MQTT客户端,也只能一个设备使用.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.打开网页端调试助手

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.WS方式:

IP地址: ws://a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com:443/mqtt

ClientID: 112233445566|securemode=3,signmethod=hmacsha1|

用户名: Mqtt&a1m7er1nJbQ

密码: 8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.WSS方式:

IP地址: wss://a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com:443/mqtt

ClientID: 112233445566|securemode=2,signmethod=hmacsha1|

用户名: Mqtt&a1m7er1nJbQ

密码: 8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

测试单片机程序

1.关闭测试软件

注:一开始说了,一个设备就作为一个MQTT客户端,也只能一个设备使用.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.安装好模组

注意: 单片机都是使用串口2和模组通信,所以需要拆掉ESP8266

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.打开这节的单片机程序

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

  

5.修改为阿里云的设备参数.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

6.使用单片机串口1打印串口日志(115200)

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

7.然后下载程序到单片机,查看日志

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

单片机程序说明

1,串口2接收模组数据的时候,单独使用一个缓存,缓存了TCP接收的数据

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.整体概况

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

①:控制模块连接TCP服务器(MQTT服务器)

②:计算MQTT密码

③:MQTT消息处理封装包(缓存管理,支持消息等级0,1,2)

④:使用Mbedtls里面的sha1或者md5 计算密码文件

3.初始化MQTT,注册相应的回调函数

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

我编写的包是以注册回调函数的形式使用.

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.先使用TCP连接上TCP服务器(MQTT服务器就是TCP服务器嘛)

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

这个里面还有使用模组的唯一码作为ClientID

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

5.连接上TCP以后,发送连接MQTT协议

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

(关于组合计算密码在最后面会有详细说明)

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

6.发送连接协议给服务器以后,如果服务器返回连接成功消息,便会调用MQTT连接成功回调函数

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

7.连接上了以后就轮训mqtt_send_function函数

咱们后面调用订阅,发布的函数的时候, 数据都会存储在缓存里面, 然后通过轮训 mqtt_send_function函数,把MQTT的数据发送出去

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

   

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

关于 

mqtt->timer_out_cnt   等待模块返回 >

mqtt->timer_out_send 等待发送完成

当前我设置的为3000ms

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

串口里面有相应的处理

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

8.接收消息

连接MQTT成功以后收到的服务器发送的数据需要让 mqtt_read_function函数处理, 该函数内部会处理消息并调用相应的回调函

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

使用Android连接

1.打开本节的Android工程

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.修改参数

注意:一开始说了,一个设备就作为一个MQTT客户端,也只能一个设备使用.

或者也可以再注册个设备,然后把参数给APP使用.

如果多个客户端用的同一个设备的参数,就会互相挤掉线.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.安装到手机以后查看下日志

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

Android程序说明

1.整体说明

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

org.eclipse.paho.client.mqttv3-1.2.0: 使用的mqtt的jar包

MyMqttClient 是再次封装的class文件

2.根据参数拼接MQTT信息

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.计算密码

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.连接MQTT服务器

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

使用微信小程序连接

1.打开工程

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.修改MQTT参数

注意:一开始说了,一个设备就作为一个MQTT客户端,也只能一个设备使用.

或者也可以再注册个设备,然后把参数给小程序使用.

如果多个客户端用的同一个设备的参数,就会互相挤掉线.

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.如果想快速测试,可以设置软件不校验服务器域名(测试的时候这样方便点)

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.不过还是建议在微信小程序平台上设置域名白名单

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

注:wss://阿里云的域名

我的设备接入的域名是:  a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

5.正常运行以后,控制台会打印

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序源码说明

1.整体说明

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

paho-mqtt.js : 底层MQTT包

mqtt.js : 在底层包之上封装的包

hmac_sha1.js : 计算MQTT密码

public.js : 公共函数

2.连接MQTT

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

关于单片机密码计算

1.密码计算需要sha1或MD5,我单片机移植了Mbedtls

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

2.密码计算的第二种方式 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

3.按照官方说明拼接参数

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

4.使用加密算法计算密码

aly_hmac_sha1((char *)tcp_mqtt_buff,strlen((char *)tcp_mqtt_buff),DeviceSecret,strlen(DeviceSecret),(unsigned char *)mqtt_password);

这个函数是自己添加的程序

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

5.上面源码可以看出, 不是用sha1普通的计算下.

其实是阿里云平台这样规定的组合计算

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

微信小程序连接阿里云物联网平台,阿里云,物联网,c#

 

微信小程序连接阿里云物联网平台,阿里云,物联网,c#文章来源地址https://www.toymoban.com/news/detail-848821.html

用户也可以用阿里云提供的 SDK包里面的程序文件实现计算密码.

结语

再重复一句话,在物联网平台上面,一个产品就是一个MQTT客户端.

如果客户想多个设备连接云平台就需要自己多创建几个设备.

设备(MQTT客户端)上报数据在云平台显示,见后面章节.

到了这里,关于1-基本控制篇(阿里云物联网平台)-C#,网页,android,微信小程序,单片机等使用MQTT接入阿里云物联网平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 连接阿里云物联网平台

    阿里云物联网平台: link — ` pip3 install paho-mqtt 然后点击刚刚创建的产品,然后点击功能定义,点击草稿编辑,再点击自定义功能定义 然后输入你想要上传的信息的类型定义 设备信息是基于你刚刚定义的产品信息 点击进去后你点击右上角的查看,可以看到三元组 将上边的三元

    2024年02月12日
    浏览(49)
  • 阿里云物联网平台专用工具详细说明

    为了更便捷的使用阿里云物联网平台和更好的让YFIOs数据组态和阿里云物联网平台对接,开发了一款阿里云物联网平台专用工具-AliIoTTools。 AliIoTTools物联网平台专用工具第一版开发完毕的时候,阿里云物联网平台相关的API为151个(目前已经超过该数字),该工具共采用了77个

    2024年02月02日
    浏览(55)
  • 搭建阿里云物联网平台实现MQTT通信

    1,点击进入阿里云官方网站:阿里云-上云就上阿里云 (aliyun.com) 2,注册登录并且进行实名认证; 如下图: 点击右上角 控制台,进入如图界面:  3,在阿里物联网云平台创建设备:   首先创建产品:大致过程如下(多图预警)    添加自定义功能:  发布上线后,就成为了

    2024年02月08日
    浏览(63)
  • 使用mqtt连接阿里云物联网平台代码,云流转

    安装express .命令 npm install express 安装alibabacloud-iot-device-sdk 命令 npm install alibabacloud-iot-device-sdk. 使用云流转,实现两个设备的互通(云流转操作看之前的博客) 代码:

    2024年02月02日
    浏览(57)
  • 物联网点灯项目:阿里云物联网平台+ESP32IDF+uniapp

    首先看效果(不太清晰)   视频演示效果 其次我讲一下大概的实现过程:前端用uniapp,(后来软工学长告诉我如果不是跨端开发的话完全可以不用uniapp,如果你要开发微信小程序就用微信开发者工具,如果你要开发移动端app就用安卓studio,因为我是自己琢磨的,当时只知道

    2024年01月21日
    浏览(50)
  • ESP8266/ESP32 NodeMCU接入阿里云物联网平台

    阿里云物联网平台公共实例是免费的,且不像然也等服务器一样无法区分不同用户发布的话题。本文采用常规的pubsubclient库连接阿里云。ESP8266/ESP32用pubsubclient接入阿里云平台截至写稿的现在,网上有的资源较少,现在我就来介绍一下使用方法 1.登录阿里云官网https://www.aliyu

    2024年02月02日
    浏览(65)
  • 阿里云物联网平台如何通过云产品流转使两个设备互相通信

    目录 前言: 一、创建产品  二、设置云产品流转  三、测试  参考: 之间使用MQTT协议主要用于设备与云平台的通信,最近涉及到了两个ESP32之间的通信,所以了解到了阿里云的云产品流转。 而我们想要达到的目的是:   创建 产品 ,在此产品下创建 两个设备  设置产品名

    2024年01月16日
    浏览(66)
  • 利用阿里云物联网平台(IoT)实现WEB数据可视化

    一年前在阿里物联网平台测试过一个项目,后来就搁置了,昨天有事需要用,发现出错了。 调整完后写一下使用思路,以便未来之需。 阿里云物联网(IoT)主页:https://iot.aliyun.com/ 阿里云物联网(IoT)市场:https://linkmarket.aliyun.com/ 阿里云物联网(IoT)平台管理:https://iot.

    2024年02月12日
    浏览(71)
  • ESP8266 -- STM32与阿里云物联网平台建立通信(四)

    目录 链接快速定位 前沿 1 准备工作 2 硬件环境介绍 3 软件环境介绍 3.1 串口初始化及配置 3.2 编写AT MQTT指令代码 3.2.1 ESP8266_Cmd函数介绍 3.2.2 wifi连接函数介绍 3.2.3 云端连接语句介绍 3.2.4 环回消息测试语句介绍 3.2.5 属性上报语句介绍 3.2.6 设置属性语句介绍 4 实验现象 4.1 代码

    2024年02月04日
    浏览(63)
  • RS485设备通过DTU上传数据到阿里云物联网平台

    在开始之前,首先需要搞明白以下几个概念,RS485, Modbus协议和DTU。 RS485,基础概念自行度娘,这里如果简单理解的话就是一种串行通信标准。非硬件工程师其实记住RS485有4条线,A,B,VIM和GND。 可简单理解为A,B作为数据传输,VIM和GND作为电源的正负。在设备接入上一般是

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包