文章目录
- 一、前言
- 二、OneNet替换腾讯云IOT
- 三、修改说明:STM32代码
- 3.1 替换MQTT三元组(常规操作)
- 3.2 修改上传的数据格式。
- 四、修改说明:服务器配置
一、前言
从2024年06月20日起, 新注册腾讯云物联网开发平台的用户需购买公共实例激活码才可使用公共实例,在此时间之前注册的用户并已开通公共实例的用户则不受影响。
下面是官网的公告。
现在登录腾讯云物联网开发平台
已经没有免费的公共实例可以使用,需要购买激活码才可继续使用。
二、OneNet替换腾讯云IOT
之前做的很多项目是基于腾讯云物联网开发平台
设计的,如果购买的基于腾讯云物联网开发平台
设计的项目源码,因为腾讯云物联网开发平台
更新的问题无法再继续使用免费的公共实例,需要购买才可以使用;如果不想花钱购买腾讯云的物联网平台,可以采用中国移动的OneNet物联网开发平台
替换。
目前中国移动的OneNet物联网开发平台
还是可以继续免费使用。
关于中国移动的OneNet物联网开发平台
的使用可以看视频教程:https://www.bilibili.com/video/BV12m421u7A5
也可以看文档(如果订阅了CSDN的物联网专栏 或者 微信公众号里的物联网项目合集),分享的项目里有很多采用OneNet做的项目,也可以通过这些项目文章了解中国移动的OneNet物联网开发平台
的使用办法。
那么很多同学可能会问: 我现在的项目是采用腾讯云物联网开发平台
做的,如果我换成中国移动的OneNet物联网开发平台
,整个项目改动的地方多吗? 如果没有基础第一次复刻开发项目能不能自己替换修改?
答案: 修改的地方不多,可以自己替换完成修改。
为什么说,修改的地方不多?
比: 我们做的物联网项目可能是:基于STM32+XXX物联网平台设计的XXX项目。
这些项目里面的STM32硬件端
与XXX物联网平台
通信都是采用的MQTT协议。(可能很多同学暂时还不懂什么是MQTT协议,但是这不重要)
我们使用的腾讯云IOT物联网平台
、中国移动OneNet物联网平台
、华为云物联网平台
、阿里云物联网平台
等等,这些物联网平台都是一个服务器,准确说是MQTT物联网服务器,都是支持MQTT协议接入。
我们的项目可以接入腾讯云物联网平台,也是采用的MQTT协议接入。 如果想替换成其他的云,代码改动的地方多吗? 并不多的,因为其他平台也是支持MQTT协议接入。 这就是标准协议的好处。 替换物联网平台,代码改动的地方很少(下面会单独说明)。
三、修改说明:STM32代码
3.1 替换MQTT三元组(常规操作)
需要修改的地方: MQTT三元组。 (这个是替换你自己物联网服务器的MQTT信息)
在你的项目代码里,main.c最前面可以看到关于物联网服务器的信息定义,具体看下图。 将此处的信息替换成你自己MQTT服务器的信息就可以了。
3.2 修改上传的数据格式。
每个项目里在main.c文件里main函数中的while(1)循环里面都可以看到下面截图类似的代码。 这个就是组合将要上传的数据,准备下一步上传到物联网开发平台。
每个物联网开发平台的数据格式都不一样,OneNet有自己格式,腾讯云也有自己的格式,大同小异。
注意: 上面截图里的代码,只是一个很普通的字符串拼接,大家不要看的太神秘,很高级。 只要你懂得C语言的字符串,慢慢看一下就知道这份代码的含义。
我举个例子:
这是腾讯云IOT需要的数据格式。
sprintf(tmp_buff,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"HeartRate\":%d,\"DHT11_T\":%d,\"DHT11_H\":%d,\"MLX90614\":%.1f,\"MQ7\":%d,\"People\":%d,\"Fall\":%d,\"RespiratoryRate\":%d}}",
HeartRate,DHT11_T,DHT11_H,MLX90614,MQ7,People,Fall,RespiratoryRate);
这是OneNet需要的数据格式。
sprintf(tmp_buff,"{\"id\":123,\"dp\":{\"HeartRate\":[{\"v\":%d}],\"DHT11_T\":[{\"v\":%d}],\"DHT11_H\":[{\"v\":%d}],\"MLX90614\":[{\"v\":%.1f}],\"MQ7\":[{\"v\":%d}],\"People\":[{\"v\":%d}],\"Fall\":[{\"v\":%d}],\"RespiratoryRate\":[{\"v\":%d}]}} ",HeartRate,DHT11_T,DHT11_H,MLX90614,MQ7,People,Fall,RespiratoryRate);
其他的平台就按自己平台规定的格式上传数据即可。
不要被一大串数据迷惑了,这就是一个字符串拼接
,里面的\
这种是转义符。
STM32代码端,只需要改这2个地方,其他依旧如原本项目一样使用即可,具体使用可以看原本项目对应的视频。
四、修改说明:服务器配置
如果你的项目原本是腾讯云IOT平台,现在想替换成OneNet平台,那么应该如何去创建实现?
基本上这些物联网平台使用都有5个步骤:
(1)创建产品
(2)创建数据流(有些平台叫创建属性、或者 物模型 这些都只是一个名字)
(3)创建设备
(4)得到MQTT三元组
(5)得到订阅主题格式、发布主题格式,发布的数据组合格式
主要关注的是 (2)创建数据流物模型
的名字。
如果你的项目是腾讯云IOT平台,你在你项目文档里可以看到原本项目开发的时候创建了物模型
也就是填写了每个物模型的名字。
如果你现在采用onenet替换实现原本的项目,你在onenet创建的时候也会有一个步骤是创建数据流
,你只需要照着原来文档里的腾讯云创建物模型的名字挨个去创建你onenet的数据流就行了。创建完就完成。
其他的步骤,具体可以直接看 OneNet的视频: https://www.bilibili.com/video/BV12m421u7A5
也可以看一下具体的项目文章。https://blog.csdn.net/xiaolong1126626497/category_10192120.html