首页 > 其他分享 >ESP8266连接物联网平台

ESP8266连接物联网平台

时间:2023-03-22 21:05:56浏览次数:48  
标签:stat ESP8266 Init 联网 MQTT ID 设备 连接 define

1.物联网平台简介

     物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。

   物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。

说到物联网平台,就不得不说一下MQTT协议了,什么是MQTT协议呢?

2.MQTT协议

    MQTT(消息队列遥测传输)是 ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息
协议。 它工作在 TCP/IP 协议族上, 是为硬件性能低下的远程设备以及网络状况糟糕的情况
下而设计的发布/订阅型消息协议, 为此, 它需要一个消息中间件 。

      MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。由 IBM 在 1 999 年发布。MQTT
协议是轻量、 简单、 开放和易于实现的, 这些特点使它适用范围非常广泛。 在很多情况下,
包括受限的环境中, 作为一种低开销、 低带宽占用的即时通讯协议, 使其在物联网、 小型设
备、 移动应用等方面有较广泛的应用。 如: 机器与机器( M2M) 通信和物联网( IoT) 。 其
在通过卫星链路通信传感器、 偶尔拨号的医疗设备、 智能家居、 及一些小型化设备中已广泛
使用。

     MQTT 最大优点在于, 用极少的代码和有限的带宽, 为连接远程设备提供实时可靠的消
息服务。

ESP8266连接物联网平台_腾讯云

3.物联网平台接入

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

ESP8266连接物联网平台_腾讯云_02

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

ESP8266连接物联网平台_物联网_03

2.创建项目

  1. 进入物联网控制台

ESP8266连接物联网平台_腾讯云_04

  2. 创建项目

ESP8266连接物联网平台_腾讯云_05

 3. 创建产品

ESP8266连接物联网平台_物联网_06

ESP8266连接物联网平台_腾讯云_07

3.创建产品功能

ESP8266连接物联网平台_腾讯云_08

ESP8266连接物联网平台_腾讯云_09

ESP8266连接物联网平台_MQTT_10

ESP8266连接物联网平台_物联网_11

ESP8266连接物联网平台_物联网_12

4.设备调试

ESP8266连接物联网平台_腾讯云_13

ESP8266连接物联网平台_物联网_14

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

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

ESP8266连接物联网平台_物联网_15

ESP8266连接物联网平台_腾讯云_16

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

6.主题订阅

ESP8266连接物联网平台_MQTT_17

ESP8266连接物联网平台_MQTT_18

//订阅主题:$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辅助串口接收数据,20ms
TIMx_Init(TIM4,72,20000);//通过定时器2辅助串口接收数据,20ms
DS18B20_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\":{\"time\":%d,\"temp\":%.2f}}",time,temp);//温度
MQTT_PublishData(POST_TOPIC,mqtt_message,0);
}
}
}

8.设备上报数据格式

ESP8266连接物联网平台_腾讯云_19

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

9.执行效果

  设备上报数据到平台

ESP8266连接物联网平台_物联网_20

平台下发数据到设备

ESP8266连接物联网平台_腾讯云_21

移动端界面:

ESP8266连接物联网平台_腾讯云_22

ESP8266连接物联网平台_腾讯云_23

标签:stat,ESP8266,Init,联网,MQTT,ID,设备,连接,define
From: https://blog.51cto.com/u_15688123/6139280

相关文章