基于stm32的温湿度数据采集,然后通过MQTT协议 上传到云平台上,程序如下,自取
单片机源程序如下:
- #include "main.h"
- u8 temp=0;
- u8 humi=0;
- //硬件初始化
- void Hardware_Init(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
-
- delay_init(); //延时函数初始化
-
- Usart1_Init(115200); //串口1初始化为115200
- Usart2_Init(115200); //串口2,驱动ESP8266用
- LED_Init(); //LED初始化
- }
- void Net_Init()
- {
- ESP8266_Init(); //初始化ESP8266
-
- while(OneNet_DevLink()) //接入OneNET
- delay_ms(500);
- LED = LED_ON; //入网成功
- }
- int main(void)
- {
- unsigned char *dataPtr = NULL;
- unsigned short timeCount = 300; //发送间隔变量
-
- Hardware_Init(); //初始化外围硬件
- Net_Init(); //网络初始化
- while(DHT11_Init()) //DTH11初始化
- {
- printf("wait DHT11_Init");
- }
- while(1)
- {
- DHT11_Read_Data(&temp,&humi); //读取DTH11的温湿度值
- delay_ms(10);
- timeCount ++;
-
- if(timeCount >= 300) //发送间隔
- {
- OneNet_SendData(); //发送数据
-
- timeCount = 0;
- ESP8266_Clear();
- }
-
- dataPtr = ESP8266_GetIPD(0);
- if(dataPtr != NULL)
- {
- OneNet_RevPro(dataPtr);
- }
- }
- }
复制代码
所有代码51hei提供下载:
STM32接入OneNET22.7z
(197.95 KB, 下载次数: 88)
|