8266与onenet平台进行数据交互(基于MQTT协议)(附源码)

(时间有限,我就不解释代码的各个函数了,直接上手怎么操作,使用代码,代码在文末)

运行环境:AiThinker_IDE(Eclipse c/c++)

串口助手:AiThinker Serial Tool V1.2.3

烧录工具:ESPFlashDownloadTool_v3.6.3

一、设计目标

        1.esp8266通过mqtt协议接入onenet平台

        2.对传感器数据进行上传并在平台显示

        3.对接收的命令进行分析

二、平台创建产品和设备

 1.打开onenet官方网站OneNET - 中国移动物联网开放平台 (10086.cn)登陆注册

  2.打开控制台选择多协议接入

  3.点击添加产品,协议选择MQTT,其他任意

  4.点击添加设备,鉴权信息自行设置

 

 三、硬件代码

        1.根据自己的实际开发板准备相关硬件(TTL转USB等)

        2. 使用官方的SDK:ESP8266_NONOS_SDK-2.2.1

        3.官方SDK中有mqtt例程代码,将其复制到根目录下

 

        4.打开sep_mqtt_proj/include/mqtt_config.h修改以下参数

#define MQTT_HOST			"183.230.40.39" // MQTT服务端域名,无需更改	
#define MQTT_PORT       	6002    		// 网络连接端口号,无需更改		
#define MQTT_CLIENT_ID   	"904206359"	// 更改为自己设备的"Device_ID"		
#define MQTT_USER        	"491119" 			// 更改为设备ID				
#define MQTT_PASS        	"******" 	// 更改为你自己设置的设备鉴权信息			

#define STA_SSID 			"Redmi"    	// WIFI名称					
#define STA_PASS 			"11111111" 	// WIFI密码					

        5.*注意

        user_main中函数mqttConnectedCb 为mqtt连接成功时  订阅一个主题,发布一个数据点,根据自己的实际需求进行修改

void mqttConnectedCb(uint32_t *args)
{
    MQTT_Client* client = (MQTT_Client*)args;	// 获取mqttClient指针
    INFO("MQTT: Connected\r\n");
    MQTT_Subscribe(client, "thingspanel.telemetry4444", 0);	// 订阅主题"thingspanel.telemetry",QoS=0

	Humi_pubMQTTmsg(16,client);//上传数据点

}

         6.*上传数据节点格式

        这一部分是最应该注意的,一定要去文档查看onenet的官方对mqtt协议的报文格式设定,代码里我已经写好的处理的函数

 下面是对数据格式处理的函数

void pubMQTTmsg(uint32_t data,MQTT_Client* client){
   os_sprintf(tmp,"{\"data\":%d}",data);
   uint16_t streamLen= strlen(tmp);

   d[0]='\x03';
   d[1] = (streamLen >> 8);
   d[2] = (streamLen & 0xFF);
   os_sprintf(msg,"%c%c%c%s",d[0],d[1],d[2],tmp);

   MQTT_Publish(client, "$dp", (uint8_t*)msg, streamLen+3, 0, 0);

}

四、编译烧录

        1.打开烧录软件,选择8266,选择生成的bin文件,分别烧录到对应地址

 

         2.复位开发板查看结果

打开onenet控制台,点击设备详情中的数据流可以看到数据点已经上传成功 !

使用平台进行命令的下发

 

查看串口调试助手中的输出日志,可以看到命令接收成功!

 五、项目源码

 源代码已经上传到百度网盘,如有错误欢迎各位指出,如果有问题也欢迎各位留言。

链接:https://pan.baidu.com/s/1PJgNgn2LG7cupx3-YucWDg 
提取码:p2vu 
 

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值