STM3项目开源:智能饮水机/热水器系统(代码+原理图+仿真)
·
一、前言
实物项目成品
仿真项目成品:
哔哩哔哩开源视频链接(复制浏览器打开):
https://www.bilibili.com/video/BV1ZTbX6JEHt/?
(资料分享见文末)
二、项目功能简介
STM32单片机智能饮水机/智能热水器(代码+原理图+仿真)
功能介绍:
(1)使用STM32F103C8T6最小系统板作为主控单元
(2)自动模式下,防水式DS18B20监测水温,温度小于设置最小值,进行自动加热,直到加热到最大值时停止;
(3)自动模式下,液位传感器检测水位,如果水位低于最低的,则启动水泵加水,直到加到高水位触发水泵关闭
(4)按键设置温度上下阈值
(5)在手动模式下,按键可以手动开启或关闭水泵,加热
(6)OLED显示屏显示测量值,当前模式
(7)手机APP,通过蓝牙接收温度数据以及手动控制加热和加水操作
三、PCB硬件设计

四、原理图设计

五、程序设计
部分代码如下:
#include "sys.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "delay.h"
#include "gpio.h"
#include "key.h"
#include "oled.h"
#include "usart.h"
#include "ds18b20.h"
/**********************************
变量定义
**********************************/
uint8_t key_num = 0; //按键扫描标志位
uint8_t flag_display = 0; //显示界面标志位
uint32_t time_num = 0; //10ms计时
short temp_value = 0; //温度值
u16 temp_max = 40; //温度最大值
u16 temp_min = 25; //温度最小值
extern uint8_t usart1_buf[256]; //串口1接收数组
char display_buf[32]; //显示缓存区
u8 flag_mode = 0; //模式标志位
/**********************************
函数声明
**********************************/
void Key_function(void); //按键函数
void Monitor_function(void); //监测函数
void Display_function(void); //显示函数
void Manage_function(void); //处理函数
/****
******* 主函数
*****/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置中断优先分组
Delay_Init(); //延时初始化
Gpio_Init(); //IO初始化
Key_Init(); //按键初始化
Oled_Init(); //OLED初始化
Oled_Clear_All(); //清屏
Usart1_Init(9600); //串口1初始化
while(1)
{
Key_function(); //按键函数
Monitor_function(); //监测函数
Display_function(); //显示函数
Manage_function(); //处理函数
time_num++; //计时变量+1
Delay_ms(10);
if(time_num %10 == 0)
LED_SYS = ~LED_SYS;
if(time_num >= 5000)
{
time_num = 0;
}
}
}
六、包含内容

七、资料分享
资料获取:请查看主页介绍
更多推荐



所有评论(0)