0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OneNET Studio云平台STM32物联网开发(1)- MQTT协议设备接入数据上报测试

杨荣国 来源:杨荣国 作者:杨荣国 2022-09-25 01:01 次阅读

效果实现视频(点击可以观看)

如图1手上有一个STM32F103CBT6的单片机控制板以及一个4G的DTU模块(合宙Cat1 4G模块Air724UG),

pYYBAGMvNFuAbpTDAB07mLWls-U346.png

图1

如图2免费注册了OneNET Studio平台,如何将我们需要的数据上发上去展示呢?本系列文档将从以下2个方面进行讲解分析:
OneNET Studio云平台STM32物联网开发(1)- MQTT协议设备接入数据上报测试
(文章在CSND网站的发表地址:
https://blog.csdn.net/weixin_44862509/article/details/127015383)
OneNET Studio云平台STM32物联网开发(2)- STM32+Air724UG(4G模组)数据采集显示上报
(文章在CSND网站的发表地址:
https://blog.csdn.net/weixin_44862509/article/details/127023743)

pYYBAGMvNk-AawNMAAOqWtRuOYE038.png

图2

本文主要讲解第一部分MQTT协议设备接入数据上报测试,主要讲解如何通过MQTTX软件将需要上报的数据上发到平台展示其中分为以下八个步骤,大家认真看完以下八个步骤结合图片以及文字介绍并且自己动手在OneNET免费平台上创建自己的OneNET Studio的产品和设备就可以快速体验数据上报及展示的功能。并且通过第二篇文档可以顺利的实现STM32单片机和Cat1 4G Air724UG ,通过MQTT协议将需要的数据轻松上发到OneNET Studio。

第一步 创建产品:先在OneNET Studio 建立一个产品,如图3的步骤1,2,3的位置顺序进入点击“创建产品”的页面,

poYBAGMvNl6AQKiIAAQxi6SiH3A149.png

图3

如图4根据自己需要创建的产品填写信息

poYBAGMvNmqADPGDAAHj97fU9WM410.png

图4

如图5,填写自己的相关信息(如果第一次创建没有把握一次成功,可以按照我的选项来填写信息,这样的话到最后一步,如果没有完成功能后可以更好的查找问题)并点击“确认”后,可以看到如图6产品创建成功的页面。

pYYBAGMvNnOAaFGtAAHbku8EpR0394.png

图5

poYBAGMvNnqAbQ1JAAQrsE3crw0160.png

图6

第二步 创建设备:在第一步创建的产品里,创建第一台设备,如图7的箭头1,2,3顺序的步骤点击“添加设备”页面。

pYYBAGMvNoGAJ6E4AAQ5Dm9URxE197.png

图7

填写信息如图8,点击“确认”,进入如图9。

poYBAGMvNomAJt1AAANTx9eMvwU233.png

图8

pYYBAGMvNpKAS8UZAAQtETwzwkc680.png

图9

点击图9的1位置“详情”可以进入如图10。如图10的几个箭头的位置的信息非常关键,以上信息是实现OneNET云平台与硬件设备连接的关键信息,一定要记录,同时以上信息也要保密。

pYYBAGMvNrKANFTPAARad2XjY_Y026.png

图10

第三步 MQTTX基本设置:用MQTT X 客户端软件与平台连接并上发数据,这一步非常关键,这一步能否走通直接决定终端硬件是否能将数据上报到平台,其实单片机编程难度不大,但是如果不能确保服务器是否可以上报数据那是非常糟糕的,所以我们采用MQTT X 客户端软件(免费下载)在电脑端运行并填写联网信息测试数据是否可以上报来提高最终硬件终端的开发效率。如图11为MQTTx 的界面,按照图11的步骤填写联网信息。如图11的1,2,3,4,5,6位置全部正确填写后点击位置7可以实现MQTTX与OneNET链接。

poYBAGMvNryAcHUNAAGKZkWTBAI305.png

图11

第四步 填写服务器连接信息:如何填写信息呢,这是本文的关键,也是所有后续开发的关键。
Client ID:设备名称(如图10的1号箭头位置)
Host:服务器地址 studio-mqtt.heclouds.com (查看文档中心可以获得 https://open.iot.10086.cn/doc/v5/develop/detail/638)
Port:端口号 1883 (查看文档中心可以获得)
Username:所属产品ID (如图10的1号箭头位置)
Password:密码 (查看文档中心可以获得 https://open.iot.10086.cn/doc/v5/develop/detail/624)

第五步 计算服务器密码:如何获得链接密码,需要下载一个工具 Token生成工具,如图12,

pYYBAGMvNsiAWnBsAADWC0kwoBc517.png

图12

图12位置1为第四步所用到的“产品属所ID”,位置2为“设备名称”,位置4为图10的3号位置的“设备秘钥”,位置3为一个时间戳,这不是很好理解我简单用我自己理解的话术说下希望可以帮助大家理解(简单理解就是 将当前的日期和时间减去过去某一个日期和时间计算的秒数,我们这里需要填写设备账号到期的密码,所以需要将以后的某个时间比如当前是2022年9月23日,我想设备账号有效期为一年那么就是将2023年9月23日 15点30分,减掉过去的一个时间点(即时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 )。只有这样计算出来的时间戳放进去计算出来的密码才可以使用一年),具体的时间戳换算公式可以使用在线工具。如图13的步骤可以计算出有效期为1年的时间戳“1695452640”,

poYBAGMvNtGASHbgAAFNkBElOrU707.png

图13


这个需要根据具体的使用时间填写,不过这个时间戳非常关键,因为在后面上发数据的时候要求带时间戳,在程序里带的时间戳一定不能超过这个时间点。

pYYBAGMvNtqAeWRqAADlo9fjCD4270.png

图14


点击如图14的1号位置的“Generate”可以获得密码,如图14的2号位置为计算出来的密码,填写到MQTTX 的密码位置。

第五步 连接服务器:如图15 填写好MQTTX 链接平台的基本账号信息,图15位置1选择3.1.1,点击图15位置2 链接服务器,

poYBAGMvNG6AYq4AAAFBLy6-PTs785.png

图15


服务器链接成功后如图16,如图出现英文提示说明没有链接成功,则是密码计算有问题或者是相关信息没有填写正确(登入信息一定要用自己创建产品和设备产生的信息,不能直接用我图片的信息,要不然你们的数据就发到我的平台上来了)。

poYBAGMvNu6ActeEAAFY86FYTCk280.png

图16


MQTTX与云平台服务器链接成功后,如图17,在平台上的设备管理页面可以看到图17位置2显示设备状态为“在线”,这里也非常关键一定要出现和图16一样的页面才算前面的准备工作是做成功的,如果有一点不一样那就要回到前面的步骤继续检查,细心发现问题。或者请教他人,如果需要请教作者本人则一定要告知你是在哪一步骤的哪个图片上出差错。

pYYBAGMvNviAY4LKAAQtQXsqgCg781.png

图17

第六步 上报数据格式整理:发自己的数据到自己创建的设备平台展示需要填写发布属性上报topic,上报topic就理解为是你需要发布数据的位置,这里需要设置和你的产品或设备相关的信息,这个根据文档中心(https://open.iot.10086.cn/doc/v5/develop/detail/639)可以获得格式为:$sys/{pid}/{device-name}/thing/property/post,只需要将{pid}修改为你自己的“所属产品ID ”,{device-name}修为为你自己的“设备名称”以及按平台要求的数据格式整理数据:
{
"id": "0001",
"version": "1.0",
"params": {
"LightLux": {
"value": 5.23,
"time": 1663918830000
},
"CurrentTemperature": {
"value": 23.6,
"time": 1663918830000
}
}
}
上发数据的属性名称在如图18可以查看,如图18的1号位置和2号位置进入详情页面可以选择需要的属性的标识符,也可以创建自己的属性及相关的标识符。

poYBAGMvNwGAMI9bAARHKagfQio218.png

图18

如图19位属性标识符的获取,如图19的1位置和2位置查看光照值和温度的属性标识符并填写到自己的数据格式里。以上数据time字段后的时间戳一定要在生成密码的时间戳之前,在换算的时候选择ms为单位,我以上的时间是2022-09-23 15:40:30的时间。

pYYBAGMvNwyAUKRTAAIKwirfpp8024.png

图19

第七步 上报数据到平台:上发数据以及数据展示,如图20 将自己整理的上报topic和数据格式填写在图20的 1和2位置,并且点击图20的位置3发送数据,

poYBAGMvNxSAJA6lAAGO6hN7cIw089.png

图20

可以看到OneNET云平台Studio上有你上报的数据,在相应的属性里,如图21的1和2位置有我们上发的数据。

pYYBAGMvNxyAfHODAAON_S9WVPw816.png

图21

第八步 读取数据上报状态:订阅属性上报结果通知topic,就是获取设备上报数据后服务器返回的数据,这一步和第六步一样将 $sys/{pid}/{device-name}/thing/property/post/reply 按自己的设备名称及产品ID,如图22,从图22的1位置点击进入,在图22的2位置填写信息,点击点击图22的3号位置,

poYBAGMvNyOAOe02AAFXZ2UXoLc185.png

图22


再次发送数据时可以看到图23的3号位置有数据上报成功后服务器回复的信息,大家也可以通过这个回复来判断数据是否发送成功。

poYBAGMvNyyAB55SAAG7GXEN5L8757.png

图23

第九步 回顾总结:结合如图23的4个位置我们再进行回顾下,1位置为与服务链接成功的标志,2位置为服务器回复发送状态的topic的位置,3位置为服务器回复的数据,4位置为我们上发的数据,5位置为我们上发的topic。
需要用到的工具及网址:
OneNET 云平台地址:https://open.iot.10086.cn/
时间戳在线计算网址:https://tool.lu/timestamp/
MQTTX 客户端软件
token计算软件
需要用到的账号参数
所属产品ID:i7ybqx3ZNk
设备密钥:KJ/ll/7hfOpjsUlz------9a1SyjvH40/X3kVRF8UU=
设备名称 P0001
属性标识符 LightLux CurrentTemperature

希望我的文章能帮到大家,文章里涉及到的软件工具,电路图资料,程序源代码等大家可以 搜索 WX公众号 “和我学单片机”回复“OneNET01”回复带密码的百度网盘下载链接,大家可以自行下载。如果资料不够或学习中遇到问题可以在公众号留言。更新: 2022年9月24日 杨荣国 个人WX : tong1366

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6039

    文章

    44575

    浏览量

    636387
  • 物联网
    +关注

    关注

    2909

    文章

    44736

    浏览量

    374485
  • STM32
    +关注

    关注

    2270

    文章

    10906

    浏览量

    356560
  • MQTT
    +关注

    关注

    5

    文章

    651

    浏览量

    22558
收藏 人收藏

    评论

    相关推荐

    OneNET StudioSTM32联网开发(2)- STM32+Air724UG(4G模组)数据采集显示上报

    OneNET StudioSTM32联网开发(2
    的头像 发表于 09-25 00:52 1707次阅读
    <b class='flag-5'>OneNET</b> <b class='flag-5'>Studio</b><b class='flag-5'>云</b><b class='flag-5'>STM32</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>开发</b>(2)- <b class='flag-5'>STM32</b>+Air724UG(4G模组)<b class='flag-5'>数据</b>采集显示<b class='flag-5'>上报</b>

    WIZnet W5500系列培训活动之“MQTT协议讲解和实践(接入OneNET)”

    设备连接。在本期培训中,我们将以STM32+W5500为硬件平台,一步步剖析MQTT协议原理及其在On
    发表于 01-12 13:19

    [MicroPython]TPYBoard v202 MQTT协议2:上传数据点到OneNET平台

    参考上面前言中的教程,先进行产品和设备的添加。 在数据上报之前,我们需要在OneNET平台
    发表于 09-14 10:48

    在鸿蒙开发板上使用MQTT协议OneNET实现第一个联网项目

    `通常来说,一个联网产品应当包括设备平台、手机APP。我将在鸿蒙系统上移植MQTT
    发表于 10-25 21:57

    【HarmonyOS】在鸿蒙开发板上使用MQTT协议OneNET实现第一个联网项目

    产品应当包括设备平台、手机APP。我将在鸿蒙系统上移植MQTT协议OneNET
    发表于 10-26 16:59

    鸿蒙开发板上使用MQTT协议OneNET实现第一个联网项目资料

    通常来说,一个联网产品应当包括设备平台、手机APP。我将在鸿蒙系统上移植MQTT
    发表于 10-26 17:22

    基于鸿蒙Hi3861V100 MQTT协议 对接阿里联网平台

    更新啦!!!!!!!!!!基于鸿蒙HarmonyOS Hi3861V100 开发板通过MQTT协议 对接阿里IOT
    发表于 01-25 08:31

    在鸿蒙开发板上使用MQTT协议OneNET实现第一个联网项目 精选资料分享

    通常来说,一个联网产品应当包括设备平台、手机APP。我将在鸿蒙系统上移植MQTT
    发表于 07-13 07:13

    NodeMCU通过MQTT协议接入OneNET语言

    本章主要讲解NodeMCU通过MQTT协议接入OneNET语言:LUA;软件:ESPlorer一. 首先让我们来了解一下OneNET
    发表于 11-01 06:19

    STM32+ESP8266+MQTT协议如何连接OneNet联网平台

    STM32+ESP8266+MQTT协议如何连接OneNet联网平台
    发表于 12-02 06:52

    OpenHarmony轻量系统开发【12】OneNET接入

    局域网的)访问开发数据,并控制开发板的功能。理论上来说,任何以MQTT协议为基础的
    发表于 01-26 14:19

    基于RT-Thread+RA6M4上传onenet平台的设计资料分享

    1、基于RT-Thread+RA6M4上传onenet平台的设计硬件接线默认控制台接UART7;ESP8266接UART1;登录
    发表于 07-25 12:39

    基于RT-Thread+RA6M4上传onenet平台的设计实现

    1、基于RT-Thread+RA6M4上传onenet平台  硬件接线  默认控制台接UART7;ESP8266接UART1;  登录
    发表于 09-23 15:38

    鸿蒙开发板上使用MQTT协议OneNET实现第一个联网项目

    通常来说,一个联网产品应当包括设备平台、手机APP。我将在鸿蒙系统上移植MQTT
    发表于 10-26 17:27 0次下载
    鸿蒙<b class='flag-5'>开发</b>板上使用<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>、<b class='flag-5'>OneNET</b>实现第一个<b class='flag-5'>物</b><b class='flag-5'>联网</b>项目

    如何使用OneNET平台MQTT功能?

    ;设备进行模拟实际使用情况。推荐阅读《设备如何使用华为接入MQTT上报数据》《
    的头像 发表于 10-20 08:21 1227次阅读
    如何使用<b class='flag-5'>OneNET</b><b class='flag-5'>平台</b>的<b class='flag-5'>MQTT</b>功能?