我是靠谱客的博主 精明鲜花,最近开发中收集的这篇文章主要介绍ESP8266基础应用之使用ESP8266模块接入阿里云物联网平台1 在阿里云物联网平台添加ESP8266设备2 ESP8266接入阿里云物联网平台,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1 在阿里云物联网平台添加ESP8266设备
- 2 ESP8266接入阿里云物联网平台
- ESP8266发布消息到阿里云物联网平台
- 阿里云物联网平台发布消息到ESP8266
1 在阿里云物联网平台添加ESP8266设备
在阿里云物联网平台创建dev-esp8266设备(本测试是在ESP8266-TEST产品下创建)
具体操作请参考ESP8266基础应用之阿里云物联网平台创建产品与设备
2 ESP8266接入阿里云物联网平台
- 在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;//心跳包时间
- 在user_aliyun.h中定义主题
#define AliyunSubscribeTopic_user_get "/ProductKey/DeviceName/user/get"
#define AliyunPublishTopic_user_update "/ProductKey/DeviceName/user/update"
- 烧录程序,并查看串口,ESP8266与阿里云连接成功,并订阅
ESP8266发布消息到阿里云物联网平台
- 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");
}
}
}
}
- 在阿里云物联网平台查看发布的消息
阿里云物联网平台发布消息到ESP8266
-
阿里云物联网平台发布消息
-
ESP8266收到消息,并通过串口打印
-
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接入阿里云物联网平台所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复