失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ESP8266连接腾讯云物联网平台

ESP8266连接腾讯云物联网平台

时间:2020-01-15 05:09:54

相关推荐

ESP8266连接腾讯云物联网平台

ESP8266连接腾讯云物联网平台

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,MQTT在物联网、小型设备、移动应用等方面有广泛的应用。MQTT属于应用层协议。最新版本为MQTT v5.0标准。本次连接腾讯云物联网平台主要以MQTT标准协议3.1版本为主。

 1.注册腾讯云账号,登陆云平台

1. 搜索物联网平台,登录物联网平台。

 2.创建项目

1. 进入物联网控制台

2. 创建项目

3. 创建产品

 3.创建产品功能

 4.设备调试

//设备名,产品ID,设备秘钥修改为自己所创建产品参数#define DeviceName "Smart_123"//设备名#define ProductID "LA57WL612"//产品ID#define DeviceSceret "9JHiCQ5668uZlVDuQ2ZnQ=="//设备秘钥

 5.创建工程,连接腾讯物联网平台

//服务器IP:{PRODUCT_ID}. ---PRODUCT_ID对应产品ID#define SERVER_IP "LA57WL612."//服务器IP#define SERVER_PORT 1883 //端口号//客户端ID:{产品ID}{设备名}#define ClientID "LA57WL612Smart_123"//用户名和密码可使用密码生成工具完成#define Username "LA57WL612Smart_123;1126;R05S3;1621619622"#define Password "9ebe0d0069ac4dd1e9e98664abc9f726c13b5a150190afdfa7b3c12240ff1e73;hmacsha256"//密文 //订阅主题:$thing/down/property/{ProductID}/{DeviceName} ---{ProductID}产品ID,{DeviceName}设备名#define SET_TOPIC "$thing/down/property/LA57WL612/Smart_123"//订阅

 6.主题订阅

//订阅主题:$thing/down/property/{ProductID}/{DeviceName} ---{ProductID}产品ID,{DeviceName}设备名#define SET_TOPIC "$thing/down/property/LA57WL612/Smart_123"//订阅//发布主题:$thing/up/property/{ProductID}/{DeviceName}#define POST_TOPIC "$thing/up/property/LA57WL612/Smart_123"//发布

  7.初始化ESP8266模块,配置WIFI模式为TCP+STA模式

#define WIFI_NAME "wbyq"//WIFI名#define WIFI_PASSWORD "asdfghjkl23"//wifi密码char mqtt_message[200];//上报数据缓存区int main(){int i=0;u8 stat=0;u32 time=0;u16 cnt=0;float temp;Beep_Init();//蜂鸣器初始化Led_Init();//LED初始化Key_Init();//按键初始化Usartx_Init(USART1,115200,72);Usartx_Init(USART3,115200,36);TIMx_Init(TIM2,72,20000);//通过定时器2辅助串口接收数据,20msTIMx_Init(TIM4,72,20000);//通过定时器2辅助串口接收数据,20msDS18B20_Init();//RTC_Init();//RTC初始化printf("初始化完成\r\n");while(1){stat=Esp8266_STA_TCPclinet_Init((u8 *)WIFI_NAME,(u8 *)WIFI_PASSWORD,(u8 *)SERVER_IP,SERVER_PORT);if(stat==0)break;Delay_Ms(500);printf("stat=%d\r\n",stat);}printf("服务器连接成功\r\n");while(1){MQTT_Init();stat=MQTT_Connect(ClientID,Username,Password);if(stat==0)break;Delay_Ms(500);printf("正在连接....\r\n");}printf("连接成功\r\n");stat=MQTT_SubscribeTopic(SET_TOPIC,0,1);if(stat)printf("订阅失败\r\n");else printf("订阅成功\r\n");while(1){if(usart3_flag){for(i=0;i<usart3_cnt;i++){printf("%c",usart3_rx_buff[i]);}usart3_cnt=0;usart3_flag=0;}Delay_Ms(1);time++;cnt++;if(time>=5000){time=0;MQTT_SentHeart();//发送心跳包}if(cnt>=1000){cnt=0;temp=DS18B20_GetTemp()*0.0625;sprintf(mqtt_message,"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"LED1\":1,\"temp\":%.2f,\"L\":356}}",temp);//温度MQTT_PublishData(POST_TOPIC,mqtt_message,0);}}}

 8.设备上报数据格式

{"method":"report",//上报设备属性"clientToken":"123",//消息配对标识"timestamp":1212121221, //可不填,默认为系统时间"params":{"power_switch":1, //设备属性power_switch"color":1, //设备属性color"brightness":32 //设备属性brightness}}

 9.执行效果

设备上报数据到平台

平台下发数据到设备

移动端界面:

总结

MQTT 是一个客户端服务端架构的发布/订阅模式的消息传输协议。 它的设计思想是轻巧、 开放、简单、 规范, 因此易于实现。 消耗资源少,在MQTT3.1标准协议中仅有14个报文。每个报文都分为固定报头、可变报头和有效载荷3部分。

14个报文如下:

示例工程:/download/weixin_44453694/18726172

如果觉得《ESP8266连接腾讯云物联网平台》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。