我是靠谱客的博主 精明鲜花,最近开发中收集的这篇文章主要介绍ESP8266基础应用之使用ESP8266模块接入阿里云物联网平台1 在阿里云物联网平台添加ESP8266设备2 ESP8266接入阿里云物联网平台,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 1 在阿里云物联网平台添加ESP8266设备
  • 2 ESP8266接入阿里云物联网平台
    • ESP8266发布消息到阿里云物联网平台
    • 阿里云物联网平台发布消息到ESP8266

1 在阿里云物联网平台添加ESP8266设备

在阿里云物联网平台创建dev-esp8266设备(本测试是在ESP8266-TEST产品下创建)
具体操作请参考ESP8266基础应用之阿里云物联网平台创建产品与设备
在这里插入图片描述

2 ESP8266接入阿里云物联网平台

  1. 在user_aliyun.c中修改ESP8266工程相应的参数
//修改在云平台获取的设备信息
char ProductKey[16]="xxx";//替换自己的 ProductKey
char DeviceName[16]="xxx";//替换自己的 DeviceName
char DeviceSecret[40]="xxx";//替换自己的 DeviceSecret
char Region[24]="xxx";//地区,根据自己的修改
char ClientID[16]="xxx";//修改自己设置的

//连接MQTT(此处不需要填写,程序中会自动添加)
unsigned char Aliyun_IP[100]="";//IP地址/域名
unsigned int  Aliyun_Port = 1883;//端口号
unsigned char Aliyun_MQTTid[100] = "";//ClientID
unsigned char Aliyun_MQTTUserName[100] = "";//用户名
unsigned char Aliyun_MQTTPassWord[100] = "";//密码
unsigned char Aliyun_MQTTkeepAlive = 30;//心跳包时间
  1. 在user_aliyun.h中定义主题
#define AliyunSubscribeTopic_user_get     "/ProductKey/DeviceName/user/get"
#define AliyunPublishTopic_user_update    "/ProductKey/DeviceName/user/update"
  1. 烧录程序,并查看串口,ESP8266与阿里云连接成功,并订阅
    在这里插入图片描述

ESP8266发布消息到阿里云物联网平台

  1. ESP8266周期性发布消息到阿里云平台
    在这里插入图片描述
    发布的消息为如下内容
char mqtt_publish_buf[50] = "this is a test ,i am esp8266---";
/******************************************************************************
 * FunctionName :
 * Description  :
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void ICACHE_FLASH_ATTR
hw_timer_cb(void)
{
	static uint8_t hw_timer_cnt;

	if (wifi_getState == STATION_GOT_IP)
	{
		if((hw_timer_cnt++) >= 30)
		{
			hw_timer_cnt = 0;
			os_printf("---hw timer inter n");
			if(client != NULL)
			{
				MQTT_Publish(client, AliyunPublishTopic_user_update,mqtt_publish_buf, os_strlen(mqtt_publish_buf), 0, 0);//发布消息
			}
			else
			{
				os_printf("---client is null n");
			}
		}
	}
}
  1. 在阿里云物联网平台查看发布的消息
    在这里插入图片描述

阿里云物联网平台发布消息到ESP8266

  1. 阿里云物联网平台发布消息
    在这里插入图片描述

  2. ESP8266收到消息,并通过串口打印
    在这里插入图片描述

  3. ESP8266工程的接收函数

/******************************************************************************
 * FunctionName :
 * Description  :
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
LOCAL void ICACHE_FLASH_ATTR
mqtt_receive_data_cb(uint32_t *args, const char* topic, uint32_t topic_len, const char *data, uint32_t data_len)
{
	char *topicBuf = (char*)os_zalloc(topic_len+1);
	char *dataBuf  = (char*)os_zalloc(data_len+1);//用来缓存主题和消息

	MQTT_Client* client = (MQTT_Client*)args;
	os_memcpy(topicBuf, topic, topic_len);
	topicBuf[topic_len] = 0;
	os_memcpy(dataBuf, data, data_len);
	dataBuf[data_len] = 0;

	os_printf("---Receive topic:n %s rn", topicBuf);//打印接收的消息
	os_printf("---Receive data:n  %s rn", dataBuf);//打印接收的消息
	os_free(topicBuf);
	os_free(dataBuf);
}

最后

以上就是精明鲜花为你收集整理的ESP8266基础应用之使用ESP8266模块接入阿里云物联网平台1 在阿里云物联网平台添加ESP8266设备2 ESP8266接入阿里云物联网平台的全部内容,希望文章能够帮你解决ESP8266基础应用之使用ESP8266模块接入阿里云物联网平台1 在阿里云物联网平台添加ESP8266设备2 ESP8266接入阿里云物联网平台所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部