物联网 温湿度上传onenet
串口调试助手的结果图如下
onenet上连接结果如下
main.c 函数核心代码如下
步骤
①先初始化mqtt ②connect mqtt ③publish
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "uart1.h"
#include "dht11.h"
#include "esp8266.h"
#include "onenet.h"int main(void)
{HAL_Init(); /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();uart1_init(115200);esp8266_init(115200);printf("hello world!\r\n");printf("MQTT初始化...\r\n");mqtt_init();printf("MQTT连接...\r\n");mqtt_connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord); //第一个参数为客户端标识符(设备名) 第二个参数为用户名(产品名) 第三个参数为密码(token)uint8_t data_send[512] = {0};uint8_t dht11_data[4] = {0};while(1){ memset(dht11_data,0,4);dht11_read(dht11_data);sprintf((char *)data_send,"{\"id\":\"1386772172\",\"version\":\"1.0\",\"params\":{\"CurrentTemperature\":{\"value\":%d.%d},\"CurrentHumidity\":{\"value\":%d.%d}}}",dht11_data[2],dht11_data[3],dht11_data[0],dht11_data[1]);mqtt_publish_data(POST_TOPIC,(char *)data_send,0);delay_ms(3000);printf("\r\n ^^^^^^^^^^^^^^^^^^^^发送心跳包^^^^^^^^^^^^^^^^^^^^\r\n");mqtt_send_heart();printf("\r\n ^^^^^^^^^^^^^^^^^^^^发送心跳包结束^^^^^^^^^^^^^^^^^^^^\r\n");}
}
主要更改的代码部分时宏函数
①onenet.h 的宏函数更改
②esp8266.h宏函数定义