一.系统概述
智能温控与香蒸灯管理系统,具有以下功能:
1. 核心控制器:使用STM32单片机作为系统的核心控制器,负责温度采集和各个组件的控制。
2. 温度采集与显示:控制温度传感器以实时采集温度数据,通过OLED显示屏显示当前温度值。
3. RGB灯控制:控制RGB灯显示三种不同的颜色。
4. 温度设定与风扇控制:通过按键设定温度阈值,当温度超过设定阈值时,自动启动风扇。
5. 香蒸灯控制:通过按键设置香蒸灯的启动和关闭时间,实现自动开关。使用3个按键控制香蒸灯的三种颜色。通过3个继电器模拟三种不同的香蒸强度。
6. 无线控制:通过无线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(); //显示控制函数
}
}