当前位置:   article > 正文

MQTT客户端(基于mosquitto)上报温度到腾讯云 ——DS18B20发布订阅温度(Linux C编程)_腾讯云mqtt发布订阅教程

腾讯云mqtt发布订阅教程

目录

一、创建产品

二、创建设备

三、获取MQTT连接信息

四、消息主体

五、连接腾讯云

六、完整代码


回顾记录

一、创建产品

1、进入腾讯云官网,登陆或注册账号后,点击进入“控制台”

 2、进入控制台后点击左上角的“云产品” ,找到“物联网通信”

3、点击公共实例中的“查看详情”(如果是第一次使用,可能页面会跟下面的不太一样)

4、点击“创建产品”

 5、这里只需填上产品名就行了,同时选择“密钥认证”

二、创建设备

 1、进入“管理”

 2、添加设备 

三、获取MQTT连接信息

将方框里的信息保存在txt文件中,方便后面操作

这里还缺“topic”、服务器地址、端口,继续往下走

 1、选择“topic”

 2、在右上角物联网通信帮助文档中有服务器地址选择,文档链接:

物联网通信 设备接入地域说明-开发者手册-文档中心-腾讯云

 3、在上面的文档中找到我们所需要的端口,密钥认证的选择“1883”

有了这些信息,我们的 MQTT 客户端已经可以连接上腾讯云,激活设备了,但要想腾讯云正确解析我们上报的消息还需要了解消息主体格式 

四、消息主体

先了解一下设备影子文件,帮助文档“设备影子详情”:https://cloud.tencent.com/document/product/634/11918。设备影子文档是服务器端为设备缓存的一份状态和配置数据。

如下图,左边部分就是我们可以配置的设备文档,可以向其中添加设备状态,desired 是期待的设备状态,reported 是设备上报的状态。现在预备向设备文档中添加 temperature 属性来记录设备上报的温度,每次上报都会更新该文档。

 根据帮助文档“设备影子数据流”:https://cloud.tencent.com/document/product/634/14072

消息的主题格式如下

  1. {
  2. "type": "update",
  3. "state": {
  4. "reported": {
  5. "temperature": 27.836
  6. }
  7. },
  8. "version": 0,
  9. "clientToken": "clientToken"
  10. }

version为0表示不验证设备消息的中version是否与设备中的version一致;clientToken是用来标识这个消息会话的id,可以由我们自己设为任意值。

五、连接腾讯云

  1. char *hostname = "xxxxx.iotcloud.tencentdevices.com";
  2. char *topic = "$shadow/operation/xxxxxx/TGT-DS18B20-1";
  3. char *clientId = "xxxxxxxx";
  4. char *username = "xxxxxxx1xxxxxx8";
  5. char *password = "2xxxxxx9522dbc05bxxxxxxxha2xxxxxxx";
  6. int port = 1883;
  7. char *payload = "{\"type\": \"update\",\"state\": {\"reported\": {\"temperature\": %.2f}},\"version\": 1,
  8. \"clientToken\": \"clientToken\"}";
  9. mosq = mosquitto_new(clientId, ture, NULL);
  10. mosquitto_username_pw_set(mosq, username, password);
  11. mosquitto_connect(mosq, serv_ip, port, 60);//serv_ip是经过hostname的DNS解析所得
  12. mosquitto_publish(mosq, NULL, topic, strlen(payload)+1, payload, 0, 0);
  13. //上面的xxxxx 用自己的MQTT参数替换上去

数据上报成功

六、完整代码

【下方请留言,私聊给】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/616650
推荐阅读
相关标签
  

闽ICP备14008679号