请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

嵌入式天空

 找回密码
 我要注册

扫一扫,访问微社区

查看: 1569|回复: 0

ES-LINK服务器支持MQTT协议二

[复制链接]

344

主题

468

帖子

3963

积分

管理员

我是一个程序员

Rank: 9Rank: 9Rank: 9

积分
3963
发表于 2018-9-19 13:56:22 | 显示全部楼层 |阅读模式
1.用户可以使用MQTT协议来发布各种类型传感器的数据
使用MQTT协议发布数据到eslink平台


2.发布的主题格式:
eslink/<user_id>/<device_id>/<sensor_id>
假如你的user_id为20,如果要订阅device_id为30,sensor_id为50的开关传感器的数据的话,那么你要发布的主题应该是eslink/20/30/50

3.每一个mqtt-client必须有唯一的client_id
点击eslink页面的《客户端》按钮,按照需求生成client_id

4.基于Linux系统下C语言的mqtt客户端案例
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "MQTTClient.h"

  5. #define ADDRESS     "tcp://119.29.98.16:1883"
  6. #define CLIENTID    "xxxxxx"  <font color="Red"> //此处填写在eslink生成的唯一的client_id</font>
  7. #define TOPIC       "eslink/330/297/431"<font color="Red"> //此处填写要订阅的主题</font>
  8. #define QOS         2
  9. #define TIMEOUT     10000L
  10. #define USERNAME    "xxxxx" <font color="Red"> //此处填写您在eslink的帐号</font>
  11. #define PASSWORD    "yyyy"   <font color="Red">//此处填写您在eslink帐号的密码</font>


  12. int main(int argc, char* argv[])
  13. {
  14.     MQTTClient client;
  15.     MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
  16.     MQTTClient_message pubmsg = MQTTClient_message_initializer;
  17.     MQTTClient_deliveryToken token;
  18.     float temp = 20.5;
  19.     char buf[32];
  20.     int rc;

  21.     MQTTClient_create(&client, ADDRESS, CLIENTID,
  22.         MQTTCLIENT_PERSISTENCE_NONE, NULL);
  23.     conn_opts.keepAliveInterval = 20;
  24.     conn_opts.cleansession = 1;
  25.     conn_opts.username = USERNAME;
  26.     conn_opts.password = PASSWORD;

  27.     if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
  28.     {
  29.         printf("Failed to connect, return code %d\n", rc);
  30.         exit(EXIT_FAILURE);
  31.     }

  32.     while (1) {
  33.         temp += 1.3;
  34.         sprintf(buf, "%f", temp);
  35.         pubmsg.payload = buf;
  36.         pubmsg.payloadlen = (int)strlen(buf);
  37.         pubmsg.qos = QOS;
  38.         pubmsg.retained = 0;
  39.         MQTTClient_publishMessage(client, TOPIC, &pubmsg, &token);
  40.         printf("Waiting for up to %d seconds for publication of %s\n"
  41.                 "on topic %s for client with ClientID: %s\n",
  42.                 (int)(TIMEOUT/1000), "22.5", TOPIC, CLIENTID);
  43.         rc = MQTTClient_waitForCompletion(client, token, TIMEOUT);
  44.         printf("Message with delivery token %d delivered\n", token);
  45.         sleep(10);
  46.     }
  47.     MQTTClient_disconnect(client, 10000);
  48.     MQTTClient_destroy(&client);
  49.     return rc;
  50. }
复制代码




最近很忙
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EBMSKY Inc. ( 冀ICP备17022971号-1  

GMT+8, 2019-11-18 13:37 , Processed in 0.084500 second(s), 34 queries .

Powered by Discuz! X3.2

© 2014-2018 Comsenz Inc. 【嵌入式天空】设计

快速回复 返回顶部 返回列表