写点什么

MQTT 协议连接阿里云物联网服务器​

作者:DS小龙哥
  • 2022 年 5 月 24 日
  • 本文字数:2513 字

    阅读完需:约 8 分钟

一、阿里云账号注册​

https://www.aliyun.com/?utm_content=se_1000301881​​















二、阿里云 IOT 物联网平台介绍​





https://edu.aliyun.com/course/explore/aliyun_iot?spm=a2c56.193971.0.0.705425c8wNdCII​​



三、新建物联网产品与设备​

https://edu.aliyun.com/course/explore/aliyun_iot?spm=a2c56.193971.0.0.7d2625c88z4kXP



https://www.aliyun.com/product/iot-deviceconnect?spm=5176.10731491.1280361.402.w5ke4R​​

















https://iot.console.aliyun.com/studio​​


















移动 APP 界面设计:​

https://linkdevelop.aliyun.com/p/a124WWbI6TkfIqkO/project/detail?spm=a2c9d.12524660.0.0.62d9c409ng6qLN​​







我这里选择构建 Android 应用​












https://linkdevelop.aliyun.com/p/a124WWbI6TkfIqkO/device/productaccess/#/product/productDetail/a1liX1d3E0j​​




https://linkdevelop.aliyun.com/p/a124WWbI6TkfIqkO/device/productaccess/#/product/productDetail/a1liX1d3E0j​​



四、采用 Linux 系统模拟硬件接入云端​

https://dev.iot.aliyun.com/sale?spm=a2c56.12366940.article-detail.6.57795206aNjxCj&source=deveco_online_shequ​​





https://iot.console.aliyun.com/devices​​



https://help.aliyun.com/document_detail/73708.html?spm=a2c4g.11186623.4.1.48f94c07KJBxYv​​


阿里云物联网平台提供设备端 SDK,设备使用 SDK 与平台建立通信。在这一步里,我们使用平台提供的样例程序 linkkit-example-solo 模拟设备开发,实现设备与物联网平台的通信。​

  • 背景信息本文使用 Linux 下的 C 语言 SDK,该 SDK 的编译环境推荐使用 64 位的 Ubuntu16.04。


    SDK 的开发编译环境会用到以下软件:make-4.1,git-2.7.4,gcc-5.4.0,gcov-5.4.0,lcov-1.12,bash-4.3.48,tar-1.28,mingw-5.3.1


    可以使用如下命令行安装:

  • 操作步骤

  1. 登录 Linux 虚拟机。​

  2. 下载 2.3.0 版本 C 语言 SDK。

  1. 使用 unzip 命令解压压缩包。​

打开样例程序 linkkit_example_solo.c。​

将设备证书信息修改为前一步中创建的设备证书,完成后保存退出。​

如下所示,在此处填入 ProductKey、DeviceName 和 DeviceSecret,将创建设备时生成的证书进行身份认证并连接物联网平台。​


在 SDK 顶层目录,执行 make 命令,完成样例程序的编译。​

生成的样例程序 linkkit-example-solo 存放在 output/release/bin 目录下。​

运行样例程序。在控制台观察到设备上线。此时,设备与物联网平台成功连接。​

设备上线成功后,会自动向物联网平台上报消息。你可以通过查看日志,获取具体内容。​






详细教程: ​https://help.aliyun.com/document_detail/96624.html​​







五、什么是 Topic ?​

  • 什么是 Topic?​物联网平台中,服务端和设备端通过 Topic 来实现消息通信。Topic 是针对设备的概念,Topic 类是针对产品的概念。产品的 Topic 类会自动映射到产品下的所有设备中,生成用于消息通信的具体设备 Topic。​


  • 什么是 Topic 类?为了方便海量设备基于海量 Topic 进行通信,简化授权操作,物联网平台增加了产品 Topic 类的概念。Topic 类是一类 Topic 的集合。例如,高级版产品的自定义 Topic 类/${YourProductKey}/${YourDeviceName}/user/update 是具体 Topic/${YourProductKey}/device1/user/update 和/${YourProductKey}/device2/user/update 的集合。


    你创建产品后,物联网平台会为该产品创建系统 Topic 类。你还可以根据业务需求,自定义 Topic 类。基础版产品和高级版产品均支持自定义 Topic 类。


    在产品的 Topic 类列表页,创建自定义 Topic 类。


    其他功能用到的 Topic 类,如固件升级等,请参考具体功能文档中的 Topic 相关章节进行创建。


    你可以在产品详情页的 Topic 类列表页,查看该产品的所有 Topic 类。


    在你创建设备后,产品 Topic 类会自动映射到设备上。你无需单独为每个设备授权 Topic。





六、发布产品​

https://iot.console.aliyun.com/product/productDetail/a1liX1d3E0j​​









七、自定义设备功能​






https://iot.console.aliyun.com/product/productDetail/a1liX1d3E0j​​





https://linkdevelop.aliyun.com/studioweb-doc?spm=a2c9d.12524660.0.0.62d9c409vmdzpk#component-device-switch.html​​







配置好了之后保存,发布。​



然后跳转到以下页面,预览界面。​

https://linkdevelop.aliyun.com/studio/web/a124WWbI6TkfIqkO/list?spm=a2c9d.12474297.0.0.39c01b57WgwhXk​​



下面是预览的界面效果图:​



同时在新建一个窗口,开启在线调试功能:验证开关按钮是否生效。​

https://linkdevelop.aliyun.com/p/a124WWbI6TkfIqkO/device/productaccess/?spm=a2c9d.12524660.0.0.62d9c409vmdzpk#/product/productDetail/a1liX1d3E0j/virtual/ds18b20​​





  • 调试界面检测到云端下发的数据:​



云端下发的数据里包含了开关的状态值:​





八、修改 SDK 模拟动态温度



运行程序,上线设备 ------要保证 Linux 系统可以正常上网。​




九、SDK 的移植

https://help.aliyun.com/document_detail/97557.html?spm=a2c4g.11186623.6.552.5c7539adCky6ro​​





十、MCU 上集成 SDK

https://help.aliyun.com/document_detail/97921.html?spm=a2c4g.11186623.4.4.69432c22rWIem6​​





https://help.aliyun.com/document_detail/96623.html?spm=a2c4g.11186623.4.3.34953b10La7MGL​​



‍基于 STM32 的阿里云连接方案开发包,已经集成了 Ali 物联网套件 SDK。​

EWARM IAR 开发环境。​

串口工具 Tera Term。串口调试工具,显示程序运行信息,以及供用户配置 WiFi 用户名和密码。​

‍​

基于 STM32 的阿里云物联网套件方案开发包已经集成了 Ali 物联网套件 SDK2.03 。​

https://github.com/aliyun/iotkit-embedded/releases/tag/RELEASED_V2.03​​

在集成过程中,整个 SDK 目录文件结构保持不变,方便用户在将来自行替换更高版本的 Ali 物联网套件,如下图:​


STM32 NUCLEO-L476RG​

从 www.st.com 搜索关键字 NUCLEO-L476RG 可以得到此开发板的详细介绍。​

板载 STM32 超低功耗芯片 STM32L476RG,拥有 1M 字节的 Flash 和 128K 字节的 SRAM。​

板载 Arduino™ UnoV3 接口的扩展插座。我们通过该插座给 WiFi 模组供电。​

板载 ST morpho 接口的扩展插座,可由此访问全部 STM32 管脚。我们将通过该插座连接 WiFi 模组的收、发 I/O。​


发布于: 2022 年 05 月 24 日阅读数: 4
用户头像

DS小龙哥

关注

之所以觉得累,是因为说的比做的多。 2022.01.06 加入

熟悉C/C++、51单片机、STM32、Linux应用开发、Linux驱动开发、音视频开发、QT开发. 目前已经完成的项目涉及音视频、物联网、智能家居、工业控制领域

评论

发布
暂无评论
MQTT协议连接阿里云物联网服务器​_5月月更_DS小龙哥_InfoQ写作社区