一.系统概述
智能温控与香蒸灯管理系统的功能如下:
- 核心控制:以STM32单片机为核心控制器,负责温度采集及各组件的控制。
- 温度监测与显示:通过温度传感器实时采集温度数据,并在OLED显示屏上显示当前温度。
- RGB灯调控:可控制RGB灯呈现三种不同颜色。
- 温度设定与风扇联动:通过按键设定温度阈值,当温度超出阈值时,风扇自动启动。
- 香蒸灯管理:借助按键设置香蒸灯的启停时间,实现自动开关;通过3个按键分别控制香蒸灯的三种颜色,并用3个继电器模拟三种不同的香蒸强度。
- 无线操控:支持通过无线APP远程控制香蒸灯的开关。
二.电路设计
电路图采用Altium Designer设计,具体如下:
- 以STM32F103C8T6单片机作为系统主控,其最小系统电路为整个电路的核心;
- 通过DS18B20实现温度检测,该传感器通过单总线与单片机完成数据通信;
- 借助DS1302实现时钟定时功能,其通过SDA、SCK、DAT三个引脚与单片机连接;
- 利用ESP8266-01S将采集到的数据上传至上位机,该模块通过UART串口与单片机进行通信;
- 继电器用于控制香薰灯,继电器的数据输出脚与单片机的GPIO脚相连;
- 风扇用于降温,风扇一端接入5V电源,另一端与单片机的GPIO口连接。
三.程序设计
#include “sys.h”
#include “delay.h”
#include “adc.h”
#include “math.h”
#include “key.h”
#include “OLED_I2C.h”
#include “Beep_Led_Relay.h”
#include “Control_Report_To_Police.h”
#include “ds18b20.h”
#include “ds1302.h”
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
TIM4_Init(300,7200);
KEY1_Init(); //PB12 PB13 PB14 PB15
Relay_init(); //PA0 PA1 PA4 PA10(风扇)
OLED_Init(); //PB6 PB7
RGBLED_init() ; //PB0 PB1 PB10
while(DS18B20_Init()); //PB8
DS1302_GPIO_Init_Write_Time(); //PA5-7
ALi_ESP8266_GPIO_Init(); //PA2 PA3 PA8
MQTT_Buff_Init();
AliIoT_Parameter_Init();
OLED_CLS();
OLED_ShowCN(0,0,0);OLED_ShowCN(0+16,0,1);//时间
OLED_ShowCN(0,2,2);OLED_ShowCN(0+16,2,3); OLED_ShowCN(0+64,2,4);OLED_ShowCN(0+80,2,5); //温度阈值
OLED_ShowCN(0,4,6);OLED_ShowCN(0+16,4,7);OLED_ShowCN(0+32,4,8);OLED_ShowCN(0+48,4,9);//香薰灯已
OLED_ShowCN(0,6,17);OLED_ShowCN(0+16,6,18);//OLED_ShowCN(0+16,6,9);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-141