標(biāo)題:
STM32單片機(jī)DS18B20+ESP8266+OneNet+pwm溫控風(fēng)扇代碼
[打印本頁]
作者:
六六六兮
時(shí)間:
2023-4-17 09:45
標(biāo)題:
STM32單片機(jī)DS18B20+ESP8266+OneNet+pwm溫控風(fēng)扇代碼
#include "stm32f10x.h"
#include "bsp_SysTick.h"
#include "bsp_usart1.h"
#include "bsp_usart3.h"
#include "TIM3.h"
#include "temper.h"
#include "power.h"
#include "infra_red.h"
#include "stm32f10x_it.h"
//C庫
#include <string.h>
//WIFI
#include "esp8266.h"
#include "onenet.h"
unsigned char order = 0;
__IO float temper= 0;
unsigned char pwm = 0;
/***************************************************************************************************************************************/
/*-------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------主函數(shù)--------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------------------------------------------------------*/
/***************************************************************************************************************************************/
int main(void)
{
unsigned short timeCount = 0; //發(fā)送間隔變量
unsigned char *dataPtr = NULL;
char power = 0;
u8 t=0;
/******************各模塊功能初始化********************/
//設(shè)置中斷組為2
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
SysTick_Init();
POWER_GPIO_Config();
USART_Config();
TIM3_Init();
RED_GPIO_Config();
USART3_Config();
DS18B20_GPIO_Config();
ESP8266_Init();
/**********************************************************************************************************************************************/
/**********************************************************************************************************************************************/
/**********************************************************************************************************************************************/
SysTick_Delay_Ms(500);
while(OneNet_DevLink()) //接入OneNET
SysTick_Delay_Ms(500);
while(1)
{
if(t%10==0) //每100ms讀取一次
{
temper = DS18B20_Get_Temp();
}
if(t%100==0) //每1s串口1發(fā)送一次
{
printf("溫度:%.2f\r\n",temper);
}
/******************************************************************************/
switch (order)
{
/******************************************************************************/
//正常運(yùn)行模式 order 0
case 0:
if(RED == 1)
{
power = 1;
}else
{
power = 0;
POWER_OFF
pwm = 0;
}
if(power)
{
if(temper>35)
{
POWER_ON
pwm = 100;
}else if(temper>25&temper<35)
{
POWER_ON
pwm = ((((int)(temper*100))-2500)/10);
}else
{
POWER_OFF
pwm = 0;
}
TIM_SetCompare2(TIM3,pwm); //設(shè)置占空比改變電機(jī)轉(zhuǎn)速
}
break;
/****************************************************************************/
case 1:
POWER_ON
TIM_SetCompare2(TIM3,25);
pwm = 25;
break;
case 2:
POWER_ON
TIM_SetCompare2(TIM3,50);
pwm = 50;
break;
case 3:
POWER_ON
TIM_SetCompare2(TIM3,75);
pwm = 75;
break;
case 4:
POWER_ON
TIM_SetCompare2(TIM3,100);
pwm = 100;
break;
case 5:
POWER_OFF
pwm = 0;
break;
}
SysTick_Delay_Ms(10);
t++;
if(++timeCount >= 500) //發(fā)送間隔5s
{
printf("OneNet_SendData\r\n");
OneNet_SendData(); //發(fā)送數(shù)據(jù)
timeCount = 0;
ESP8266_Clear();
}
dataPtr = ESP8266_GetIPD(0);
if(dataPtr != NULL)
OneNet_RevPro(dataPtr);
}
}
復(fù)制代碼
Keil代碼下載(只有代碼,不含其他資料):
程序.7z
(197.39 KB, 下載次數(shù): 65)
2023-4-17 15:48 上傳
點(diǎn)擊文件名下載附件
stm32
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1