血糖高不能吃什么食物| 微量元素是什么| 女人为什么会得霉菌| 腿浮肿是什么原因引起的| 手指甲出现竖纹是什么原因| 动漫ova是什么意思| 为什么总是莫名其妙的想哭| 下巴肿大是什么原因| 为什么不娶养猫的女人| 舌苔黄腻厚是什么原因| 急性尿路感染吃什么药| 浅笑安然是什么意思| 女人脚腿肿是什么原因| 胃溃疡是什么| 南无阿弥陀佛是什么意思| 盐糖水有什么功效作用| 为什么月经会推迟| 射不出来是什么原因| 一座什么| 狐臭手术挂什么科| 有时头晕是什么原因| gm墨镜是什么牌子| 小腿浮肿吃什么药| 耳道湿疹用什么药| 南瓜有什么功效| 狗吃什么会死| 当驾校教练需要什么条件| 炖鸽子汤放什么调料| 什么颜色代表友谊| 人体的三道防线是什么| 买二手苹果手机要注意什么| 什么态度| 龙跟什么生肖配对最好| 拉肚子拉稀是什么原因| 仔字五行属什么| 血小板计数高是什么原因| 省内流量是什么意思| 吃什么都是苦的是怎么回事| 什么东西晚上才生出尾巴| 菠菜是什么季节的菜| 有点想吐是什么原因| 经常感冒发烧是什么原因| 贫血吃什么药效果好| pms是什么| 海参和辽参有什么区别| 食铁兽是什么动物| fvc是什么意思| rhe阴性是什么意思| 血压的低压高是什么原因| 王维被称为什么| 户口本丢了有什么危害| 鲁肃的性格特点是什么| 梦到被蛇咬是什么意思| 日干是什么| 狗狗尾巴下垂代表什么| 上午8点是什么时辰| 节哀顺便是什么意思| 太平果是什么水果| 小肠气是什么病| 夏天是什么样的| 蝶窦囊肿是什么病| 京东自营店什么意思| 肌筋膜炎吃什么药| 作死是什么意思| 麝香保心丸治什么病| 湿热吃什么食物好得快| 法令纹上的痣代表什么| 脂肪酸是什么| 肋骨骨折吃什么食物好得快| 黄历中的入宅是什么意思| 肺气肿是什么病严重吗| 脸一边大一边小是什么原因| 冉是什么意思| rh是什么单位| 剧透是什么意思| 正军级是什么级别| 扁桃体2度是什么意思| 无痛人流和普通人流有什么区别| 冬瓜不能和什么一起吃| 蛋白尿是什么原因引起的| 吃什么推迟月经| 援交是什么意思| mri是什么| 腋下皮肤发黑是什么原因引起的| 岍是什么意思| 意犹未尽什么意思| 锦是什么意思| 焦点是什么| 总胆固醇偏低是什么意思| 麻腮风是什么| 伏羲女娲是什么关系| 藏风聚气是什么意思| 浓鼻涕吃什么药| 夏天容易出汗是什么原因| 什么叫脂肪肝| 官印是什么意思| 31岁属什么生肖| 什么原因导致子宫内膜息肉| 头麻是什么原因| 小鸡喜欢吃什么食物| 什么情况会染上鼠疫| 开光什么意思| 糖筛和糖耐有什么区别| 口气重吃什么药效果好| 肩周炎挂什么科| 四面楚歌是什么生肖| 盖碗适合泡什么茶| 宫颈纳氏腺囊肿是什么意思| 嘴唇肿了是什么原因| 丝状疣用什么药| 兰州人为什么要戴头巾| 儿童低烧吃什么药| 比肩什么意思| 双侧基底节区腔隙灶是什么意思| 噗什么意思| 支气管炎吃什么药效果最好| 女猴配什么属相最好| 结售汇是什么意思| 囊腺瘤是什么| 扑热息痛又叫什么名| 晚上12点是什么时辰| 痛风急性发作期吃什么药| 吃什么食物补钙最快| 什么颜色的头发显白| 什么叫环比什么叫同比| 代谢慢是什么原因| 玉是什么结构的字| 不以为然什么意思| 为什么会过敏| 申时是什么时候| 晚上2点是什么时辰| 怀孕初期不能吃什么| 淋巴结肿大看什么科| 睾丸瘙痒是什么原因| 做梦梦到鸡是什么意思| 贞操是什么意思| 死鬼是什么意思| 为什么早上起来血压高| 苗侨伟为什么叫三哥| 龙骨是什么骨头| pt是什么时间| 牙龈萎缩是什么原因造成的| 牛蛙不能和什么一起吃| 开网店卖什么好| 读军校需要什么条件| 胎盘宫底后壁是什么意思| 腌羊肉串放什么调料| 1月8日是什么星座| 尿素高是什么原因| 下巴脱臼是什么感觉| 阴道发热是什么原因| 雀舌属于什么茶| 神经电生理检查是什么| 怀孕会出现什么状况| 心脏彩超fs是什么意思| mrcp检查是什么意思| 吃什么东西可以除湿气| 月经黑色是什么原因| 中国是什么人种| vg是什么意思| 1111是什么意思| 西席是什么意思| 宫颈筛查是什么| 动物园里有什么动物| 小月子能吃什么菜| semir是什么牌子| 灰指甲应该挂什么科室| 运动前吃什么| 377是什么| bopv是什么疫苗| 小老弟是什么意思| 尿液有隐血是什么情况| 堪忧是什么意思| 四方草地是什么生肖| 貌不惊人是什么意思| 笑气是什么气体| 春风得意是什么生肖| 理想型是什么意思| 吾矛之利的利什么意思| 前是什么偏旁| 闻鸡起舞是什么意思| 心悸是什么原因引起的| 胀气是什么症状| 72年鼠是什么命| 愚是什么意思| 老虎下山下一句是什么| 白兰地兑什么饮料好喝| 净高是什么意思| 祸从天降是什么生肖| 背疼是什么原因引起的女人| 敕令是什么意思| 愚痴是什么意思| 肌肉拉伤有什么症状| 破涕为笑是什么意思| 一天当中什么时候血压最高| bm是什么牌子| 孩子过敏性咳嗽吃什么药好| 立秋什么意思| 颈部淋巴结肿大是什么原因| 硬刚是什么意思| 泡椒是什么辣椒| 吃避孕药会有什么副作用| fob价格是什么意思| 肚脐下面是什么部位| 画像是什么意思| 猫喜欢什么样的人| CHANDO是什么牌子的化妆品| 血糖高应该吃什么水果| 牙齿涂氟是什么意思| 8月24号是什么星座| 办护照有什么要求| happy halloween是什么意思| 00属什么| 什么是宫颈纳囊| 什么是软组织损伤| 北京有什么特产| 六块钱的麻辣烫是什么意思| 为什么心里老是想着死| 喝红花有什么作用与功效| 人体7大营养素是什么| 口若悬河是什么意思| 18年是什么婚| 什么生肖晚上不睡觉| 为什么眼睛会有红血丝| 海明威为什么自杀| 1959年属猪的是什么命| 康复治疗学主要学什么| 胃寒喝什么茶暖胃养胃| 桃子可以做什么美食| 呆萌是什么意思| ca什么意思| 一什么红枣| 黄辣丁吃什么| 什么是纤维化| 北京晚上有什么好玩的景点| 味粉是什么调料| 大臣是什么意思| 幽门螺旋杆菌做什么检查| 中国最长的河流是什么河| 知觉是什么意思| 久坐脚肿是什么原因| 女人手心热吃什么药好| 海鲜有什么| 颜字五行属什么| 麻梨疙瘩是什么树| 梦见煤是什么意思| 肩胛骨痛是什么原因| 做肠镜检查需要提前做什么准备| 下眼皮肿是什么原因| 怕吹空调是什么原因| 美白吃什么| 多吃什么可以长头发| 咳嗽吃什么药好| 肠胃痉挛什么症状| 贤淑是什么意思| 为的笔顺是什么| 耘字五行属什么| 朋友生日送什么礼物好| 甲状腺毒症是什么意思| 几月初几是叫什么历| 户口所在地是什么意思| 嘴巴右下角有痣代表什么| 万象更新是什么意思| 手掌发热是什么原因| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? STM32 ? 【原创】STM32使用ESP8266上MQTT服务器--from壮

共1条 1/1 1 跳转至

【原创】STM32使用ESP8266上MQTT服务器--from壮

工程师
2025-08-05 10:12:03     打赏
百度 因此,除强调继续增购F-35隐身战斗机和新型舰艇等老话题外,也需要太空部队这种引人注目的新倡议来吸引关注和资源。

本文将使用STM32单片机以及 wifi模块实现实现单片机上云端数据传输的效果。本文主要采用STM32F103c8t6芯片、ESP8266-01S wifi模块以及DHT11模块实现上述功能。

一、DHT11初始化以及数据采集


DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。DHT11 采用单总线协议与单片机通信,单片机发送一次复位信号后,DHT11 从低功耗模式转换到高速模式,等待主机复位结束后,DHT11 发送响应信号,并拉高总线准备传输数据。

初始化需对DHT11GPIO口进行初始化,如下所示:

  GPIO_InitTypeDef GPIO_InitStructure;

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

   GPIO_Init(GPIOA, &GPIO_InitStructure);

 

数据传输时定义了一个数据结构DHT11_Data_TypeDef;

 

typedef struct

{

uint8_t  humi_int;      //湿度的整数部分

uint8_t  humi_deci;   //湿度的小数部分

uint8_t  temp_int;       //温度的整数部分

uint8_t  temp_deci;   //温度的小数部分

uint8_t  check_sum;   //校验和

} DHT11_Data_TypeDef;

 

然后编写DHT11_Read_TempAndHumidity(数据采集函数)

 

uint8_t DHT11_Read_TempAndHumidity(DHT11_Data_TypeDef *DHT11_Data)

{  

/*输出模式*/

DHT11_Mode_Out_PP();

/*主机拉低*/

DHT11_Dout_0;

/*延时18ms*/

DHT11_DELAY_MS(18);

/*总线拉高 主机延时30us*/

DHT11_Dout_1;

DHT11_DELAY_US(30);   //延时30us

/*主机设为输入 判断从机响应信号*/

DHT11_Mode_IPU();

/*判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行*/   

if(DHT11_Dout_IN()==Bit_RESET)     

{

/*轮询直到从机发出 的80us 低电平 响应信号结束*/  

while(DHT11_Dout_IN()==Bit_RESET);

/*轮询直到从机发出的 80us 高电平 标置信号结束*/

while(DHT11_Dout_IN()==Bit_SET);

/*开始接收数据*/   

DHT11_Data->humi_int= DHT11_ReadByte();

DHT11_Data->humi_deci= DHT11_ReadByte();

DHT11_Data->temp_int= DHT11_ReadByte();

DHT11_Data->temp_deci= DHT11_ReadByte();

DHT11_Data->check_sum= DHT11_ReadByte();

/*读取结束,引脚改为输出模式*/

DHT11_Mode_Out_PP();

/*主机拉高*/

DHT11_Dout_1;

/*检查读取的数据是否正确*/

if(DHT11_Data->check_sum == DHT11_Data->humi_int + DHT11_Data->humi_deci + DHT11_Data->temp_int+ DHT11_Data->temp_deci)

return SUCCESS;

else

return ERROR;

}

else

return ERROR;

}

 

数据传输时只需要将定义好的DHT11_Data_TypeDef传输给此函数就能采集到要采集的温湿度数据。

一、ESP8266初始化以及数据采集

ESP8266是一款嵌入式系统级芯片,它集成了Wi-Fi功能和微控制器能力于一身,常用于物联网(IoT)项目中。这款芯片支持TCP/IP协议栈,能够连接到WiFi网络,并通过AT命令或者更高级的API与主控设备进行通信。它的低功耗特性使得它可以长时间运行在电池供电下,广泛应用于智能家居、智能门锁、无线传感器网络等应用中。

烧录基础AT指令,连接WIFI,以及连接云台

#define ESP8266_WIFI_INFO  "AT+CWJAP=\"wifi name\",\"password\"\r\n"

 

#define ESP8266_ONENET_INFO  "AT+CIPSTART=\"TCP\",\"broker.emqx.io\",1883\r\n" //域名以及端口号

 

void ESP8266_Init(void)

{


GPIO_InitTypeDef GPIO_Initure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

//ESP8266复位引脚

GPIO_Initure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Initure.GPIO_Pin = GPIO_Pin_14;     //GPIOC14-复位

GPIO_Initure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIO_Initure);

GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_RESET);

delay_ms(250);

GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_SET);

delay_ms(500);

ESP8266_Clear();

UsartPrintf(USART_DEBUG, "0. AT\r\n");

while(ESP8266_SendCmd("AT\r\n", "OK"))   //发送命令

delay_ms(500);

/*----------------------------------------------------------------------------*/

UsartPrintf(USART_DEBUG, "1. RST\r\n");

while(ESP8266_SendCmd("AT+RST\r\n", ""))

delay_ms(500);

while(ESP8266_SendCmd("AT+CIPCLOSE\r\n", ""))

delay_ms(500);

UsartPrintf(USART_DEBUG, "2. CWMODE\r\n");

while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))

delay_ms(500);

UsartPrintf(USART_DEBUG, "3. AT+CWDHCP\r\n");

while(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK"))

delay_ms(500);

UsartPrintf(USART_DEBUG, "4. CWJAP\r\n");

while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP"))

delay_ms(500);

UsartPrintf(USART_DEBUG, "5. AT+CIPMUX\r\n");

while(ESP8266_SendCmd("AT+CIPMUX=0\r\n", "OK"))

delay_ms(500);

UsartPrintf(USART_DEBUG, "6. CIPSTART\r\n");

while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))

delay_ms(500);

UsartPrintf(USART_DEBUG, "7. ESP8266 Init OK\r\n");

}

程序烧录成功之后会串口提示如下代表烧录成功

图片1.png

三、cJSON语句

JSON 全称 JavaScript Object Notation,即 JS对象简谱,是一种轻量级的数据格式。

它采用完全独立于编程语言的文本格式来存储和表示数据,语法简洁、层次结构清晰,易于人阅读和编写,同时也易于机器解析和生成,有效的提升了网络传输效率。

本文只使用其最简单的格式,如下所示:

{

    "name": "mculover666",

    "age": 22,

    "weight": 55.5,

}

cJSON语句的本文主要使用其对将要发送给MQTT服务器的数据进行统一打包,以便将数据的名称和值进行绑定,相互连接。

四、MQTT服务器

MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议。 

是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,我们知道TCP协议本身就具有高可靠性的特点,因此基于其上的MQTT协议同样也是具有高可靠、低开销的特点,之所以低开销,是以为MQTT协议传输的最小的报文也只有两个字节。

图片2.png

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)

payload,可以理解为消息的内容,是指订阅者具体要使用的内容

 

想要连接云平台首先需要mqtt协议文件(mqttkit.c,mqttkit.h)导入工程文件。并且需要编写根据不同协议文件来封装协议相关的内容即相关发布文件以及接收文件

//=======================================================

// 函数名称: OneNet_Publish

// 函数功能: 发布消息

//

// 入口参数: topic:发布的主题

// msg:消息内容

// 返回参数: SEND_TYPE_OK-成功 SEND_TYPE_PUBLISH-需要重送

// 说明:

//=======================================================

void OneNet_Publish(const char *topic, const char *msg)

{

MQTT_PACKET_STRUCTURE mqttPacket = {NULL, 0, 0, 0};       //协议包

UsartPrintf(USART_DEBUG, "Publish Topic: %s, Msg: %s\r\n", topic, msg);

if(MQTT_PacketPublish(MQTT_PUBLISH_ID, topic, msg, strlen(msg), MQTT_QOS_LEVEL0, 0, 1, &mqttPacket) == 0)

{

ESP8266_SendData(mqttPacket._data, mqttPacket._len);     //向平台发送订阅请求

MQTT_DeleteBuffer(&mqttPacket);           //删包

}

 

}

 

 

 

//=======================================================

// 函数名称: OneNet_RevPro

// 函数功能: 平台返回数据检测

// 入口参数: dataPtr:平台返回的数据

// 返回参数:

// 说明:

//=======================================================void OneNet_RevPro(unsigned char *cmd)

{


MQTT_PACKET_STRUCTURE mqttPacket = {NULL, 0, 0, 0};        //协议包


char *req_payload = NULL;

char *cmdid_topic = NULL;


unsigned short topic_len = 0;

unsigned short req_len = 0;


unsigned char type = 0;

unsigned char qos = 0;

static unsigned short pkt_id = 0;


short result = 0;

 

char *dataPtr = NULL;

char numBuf[10];

int num = 0;

cJSON *json , *json_Value;

type = MQTT_UnPacketRecv(cmd);

switch(type)

{

case MQTT_PKT_CMD:               //命令下发


result = MQTT_UnPacketCmd(cmd, &cmdid_topic, &req_payload, &req_len); //解出topic和消息体

if(result == 0)

{

UsartPrintf(USART_DEBUG, "cmdid: %s, req: %s, req_len: %d\r\n", cmdid_topic, req_payload, req_len);

 





/*-------------------------------------------------不需要回复----------------------------------------------------------*/    

//    if(MQTT_PacketCmdResp(cmdid_topic, req_payload, &mqttPacket) == 0) //命令回复组包           

//    {

UsartPrintf(USART_DEBUG, "Tips: Send CmdResp\r\n");


//     ESP8266_SendData(mqttPacket._data, mqttPacket._len);   //回复命令

MQTT_DeleteBuffer(&mqttPacket);         //删包

//    }

}

break;


case MQTT_PKT_PUBLISH:              //接收的Publish消息


result = MQTT_UnPacketPublish(cmd, &cmdid_topic, &topic_len, &req_payload, &req_len, &qos, &pkt_id);

if(result == 0)

{

UsartPrintf(USART_DEBUG, "topic: %s, topic_len: %d, payload: %s, payload_len: %d\r\n",

cmdid_topic, topic_len, req_payload, req_len);


/*--------------------------------------------------------------------------------------------------------------------------------------*/    

//对数据包进行JSON格式解析

//    UsartPrintf(USART_DEBUG,"req_payload: %s\n",req_payload);  //测试用    

json = cJSON_Parse(req_payload);

//    UsartPrintf(USART_DEBUG,"json: %d\n",json);                  //测试用

if(!json)UsartPrintf(USART_DEBUG,"Error before: [%s]\n",cJSON_GetErrorPtr());

else

{

json_Value = cJSON_GetObjectItem(json,"LED_SW");

UsartPrintf(USART_DEBUG,"json_Value: %d\n",json_Value);


if(json_Value->valueint) //json_Value>0 且为整形

{

LED2_ON;     //开灯

UsartPrintf(USART_DEBUG,"json_Value: %s:%d\n",json_Value->string,json_Value->valueint);

UsartPrintf(USART_DEBUG,"LED2已打开\n");

}

else

{

LED2_OFF;     //关灯

}

}

cJSON_Delete(json);

MQTT_DeleteBuffer(&mqttPacket);   //删包

}

break;

case MQTT_PKT_PUBACK://发送Publish消息,平台回复的Ack


if(MQTT_UnPacketPublishAck(cmd) == 0)

UsartPrintf(USART_DEBUG, "Tips: MQTT Publish Send OK\r\n");

break;

case MQTT_PKT_PUBREC:  //发送Publish消息,平台回复的Rec,设备需回复Rel消息

if(MQTT_UnPacketPublishRec(cmd) == 0)

{

UsartPrintf(USART_DEBUG, "Tips: Rev PublishRec\r\n");

if(MQTT_PacketPublishRel(MQTT_PUBLISH_ID, &mqttPacket) == 0)

{

UsartPrintf(USART_DEBUG, "Tips: Send PublishRel\r\n");

ESP8266_SendData(mqttPacket._data, mqttPacket._len);

MQTT_DeleteBuffer(&mqttPacket);

}

}


break;


case MQTT_PKT_PUBREL:              //收到Publish消息,设备回复Rec后,平台回复的Rel,设备需再回复Comp


if(MQTT_UnPacketPublishRel(cmd, pkt_id) == 0)

{

UsartPrintf(USART_DEBUG, "Tips: Rev PublishRel\r\n");

if(MQTT_PacketPublishComp(MQTT_PUBLISH_ID, &mqttPacket) == 0)

{

UsartPrintf(USART_DEBUG, "Tips: Send PublishComp\r\n");

ESP8266_SendData(mqttPacket._data, mqttPacket._len);

MQTT_DeleteBuffer(&mqttPacket);

}

}


break;


case MQTT_PKT_PUBCOMP:              //发送Publish消息,平台返回Rec,设备回复Rel,平台再返回的Comp


if(MQTT_UnPacketPublishComp(cmd) == 0)

{

UsartPrintf(USART_DEBUG, "Tips: Rev PublishComp\r\n");

}

break;


case MQTT_PKT_SUBACK:              //发送Subscribe消息的Ack


if(MQTT_UnPacketSubscribe(cmd) == 0)

UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe OK\r\n");

else

UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe Err\r\n");

break;

case MQTT_PKT_UNSUBACK:              //发送UnSubscribe消息的Ack

if(MQTT_UnPacketUnSubscribe(cmd) == 0)

UsartPrintf(USART_DEBUG, "Tips: MQTT UnSubscribe OK\r\n");

else

UsartPrintf(USART_DEBUG, "Tips: MQTT UnSubscribe Err\r\n");


break;

default:

result = -1;

break;

}


ESP8266_Clear();         //清空缓存


if(result == -1)

return;


dataPtr = strchr(req_payload, '}');   //搜索'}'

 

if(dataPtr != NULL && result != -1)   //如果找到了

{

dataPtr++;


while(*dataPtr >= '0' && *dataPtr <= '9')  //判断是否是下发的命令控制数据

{

numBuf[num++] = *dataPtr++;

}


num = atoi((const char *)numBuf);  //转为数值形式

}

 

if(type == MQTT_PKT_CMD || type == MQTT_PKT_PUBLISH)

{

MQTT_FreeBuffer(cmdid_topic);

MQTT_FreeBuffer(req_payload);

}

 

}

五、MQTT服务器主(MAIN)程序编写

主程序主要是将想要发送的数据打包成相应格式然后将其上传至MQTT服务器,然后将MQTT服务器上的数据进行读取判断。

/*MAIN函数*/

int main(void)

{

unsigned short timeCount = 0; //发送间隔变量

unsigned char *dataPtr = NULL;

System_Init();

while(1)

{

OLED_Refresh();

Show_OLED_USART();

 

if(++timeCount >= 80)    {

UsartPrintf(USART_DEBUG, "OneNet_Publish\r\n");

sprintf(Pub_Buf,"{\"Temp\":%d.%d,\"Hum\":%d.%d}",DHT11_Data.temp_int ,DHT11_Data.temp_deci ,DHT11_Data.humi_int ,DHT11_Data.humi_deci);

OneNet_Publish(devPubTopic, Pub_Buf);

timeCount = 0;

ESP8266_Clear();

}

 

 

dataPtr = ESP8266_GetIPD(3);

if(dataPtr != NULL)

OneNet_RevPro(dataPtr);   

delay_ms(10);

}

}

程序运行成功如下图所示。

图片3.png








共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
梦见亲嘴是什么意思 扁桃体长什么样子 脑膜炎是什么病严重吗 梦见拖地是什么意思 大腿骨叫什么骨
巧克力囊肿有什么症状表现 娃娃鱼属于什么类动物 文武双全是什么意思 左边后背疼是什么原因 男生下面疼是什么原因
户名是什么意思 什么狗不会咬人 磨牙吃什么药能治好 溢于言表是什么意思 大腿抽筋是什么原因引起的
伽利略是什么学家 IC什么意思 孕妇吃什么鱼最好 雪白雪白的什么 郁结是什么意思
牙神经拔了对牙齿有什么影响hcv8jop8ns7r.cn 白蛇是什么蛇hcv9jop3ns2r.cn 聿字五行属什么hcv9jop0ns2r.cn 奶酪和芝士有什么区别bfb118.com 洛阳有什么好玩的hcv8jop1ns7r.cn
女性腰酸是什么妇科病naasee.com 心五行属什么wuhaiwuya.com 看守所和拘留所有什么区别hcv9jop0ns8r.cn 人的心脏在什么位置hcv8jop3ns1r.cn 增强免疫力的针叫什么hcv9jop0ns2r.cn
瘴气是什么hcv8jop2ns7r.cn 眼压是什么意思hcv9jop4ns6r.cn 腰椎间盘突出压迫神经吃什么药hcv9jop8ns1r.cn 一等功有什么待遇hcv8jop7ns2r.cn 薄荷音是什么意思hcv9jop4ns1r.cn
虎落平阳被犬欺是什么生肖hcv8jop9ns8r.cn 做酸菜鱼用什么鱼hcv8jop9ns5r.cn 今年什么时间进伏zsyouku.com etf什么意思hcv7jop6ns0r.cn 肛裂是什么原因引起的youbangsi.com
百度