085、STM32项目分享开源:智能饮水机控制系统
目录一、项目成品图片二、项目功能简介1.主要器件组成2.功能详解介绍三、项目原理图设计四、项目PCB硬件设计项目PCB图五、项目程序设计六、项目实验效果 ​编辑七、项目包含内容一、项目成品图片哔哩哔哩视频链接https://www.bilibili.com/video/BV15Zjy6FE3x/?spm_id_from333.1387.upload.video_card.click资料分享看文章末尾二、项目功能简介1.主要器件组成本设计由STM32F103C8T6单片机WIFI模块ESP8266-01S电路OLED屏幕电路DS18B20温度传感器电路TDS电导率传感器电路水位传感器电路加热电路继电器模块电路蜂鸣器电路按键电路电源电路。2.功能详解1、环境采集DS18B20温度传感器采集饮水机温度、TDS电导率传感器电路检测饮水机TDS电导率是否正常、水位传感器检测饮水机水位等。2、屏幕显示OLED显示模块用于在设备本地实时、直观地呈现饮水机的全部运行状态与关键参数能够显示当前水温、设定温度、水位状态、TDS数值、系统工作模式如加热/保温等信息。清晰的界面帮助用户直接了解设备状况并进行本地设置。3、阈值设置通过按键和app设置加热、保温、缺水、水满和TDS阈值4、TDS报警TDS用于评估水质纯净度并在数值超标时声光报警5、恒温控制保温模式下当检测到温度低于设置的保温阈值时自动加热到保温值进行恒温6、加热控制加热模式下自动加热到指定温度7、缺水报警当检测到水位过低时声光报警提醒水位过低8、水满提示当检测到水位过高时声光报警提醒水满9、干烧断电实现缺水自动停止加热10、远程控制通过WIFI连接手机APPAPP可以查看当前环境信息数据可调节阈值范围三、项目原理图设计四、项目PCB硬件设计五、项目程序设计#include stm32f10x.h #include usart.h #include USART2/usart2.h #include DS18B20/ds18b20.h #include timer.h #include adc.h #include menu.h #include key.h #include modules.h #include hzd.h #include beep.h #include tds.h #include relay.h #include ph.h #include water.h #include oled.h #include pid.h /****************破晓电子工作室******************* *** 破晓单片机 *** 项目:STM32饮水机控制系统 *** BILIBILI:破晓单片机 *** 小红书:破晓单片机 *** 授权IP:破晓单片机 *** 淘宝:破晓单片机 *** 淘宝:破晓电子 *** 版本:V01.01 *** MCU:STM32F103C8T6 ******************破晓单片机***********************/ //显示界面 CaiDanJieGouTi KeyTab[SIZE_CAIDAN] { {0 ,0 ,0 ,0 ,0 ,Main_Menu0}, {1 ,1 ,1 ,1 ,1 ,Main_Menu1}, {2 ,2 ,2 ,2 ,2 ,Main_Menu2}, {3 ,3 ,3 ,3 ,3 ,Main_Menu3}, {4 ,4 ,4 ,4 ,4 ,Main_Menu4}, {5 ,5 ,5 ,5 ,5 ,Main_Menu5}, {6 ,6 ,6 ,6 ,6 ,Main_Menu6}, {7 ,7 ,7 ,7 ,7 ,Main_Menu7}, {8 ,8 ,8 ,8 ,8 ,Main_Menu8}, } ; //传感器变量声明 typedef struct { uint16_t tempds;// uint16_t tds;// uint16_t water; }SensorModulesValue; typedef struct { uint8_t tempdsbw; uint8_t tempdsjr; uint16_t waterTV; uint16_t watermax; uint16_t tdsTV; }SensorThresholdValue; typedef struct { uint8_t modeFlag; uint8_t RELAYFlag; uint8_t BEEPFlag; uint8_t BJ1Flag; uint8_t BJ2Flag; }DriveFlag; int main(void) { delay_init(); TIM3_Int_Init(9,7199);//定时器初始化 OLEDGUI_Config(); //OLED OLEDGUI_DispString(30,16,Init...,16,1); key_Init();//按键初始化 Adc_Init();//Adc初始化 beep_Init();//beep初始化 WATER_Init();//WATER初始化 tds_Init();//tds初始化 DS18B20_Init();//DS18B20初始化 relay_Init();//relay初始化 SensorThresholdSet();//阈值初始化 uart1_init(9600); delay_ms(100); uart2_init(9600); delay_ms(100); memset((uint8_t *)currentDataPoint, 0, sizeof(dataPoint_t)); gizwitsInit(); OLEDGUI_Clear(); //OLED清屏 while(1) { //获取按键值 key_scan(); //进入菜单界面显示处理数据 GetKeylnput(Keystatus); //获取传感器数据 SensorDataGet(); //数据上传 currentDataPoint.valuetempdsSensorData.tempds/10; currentDataPoint.valuewaterSensorData.water; currentDataPoint.valuetdsSensorData.tds; currentDataPoint.valuemodeFlag!DriveFlagData.modeFlag; currentDataPoint.valuemodeFlag1DriveFlagData.modeFlag; gizwitsHandle((dataPoint_t *)currentDataPoint); //数据下发 Sensorthreshold.tempdsbwcurrentDataPoint.valuetempdsbw; Sensorthreshold.tempdsjrcurrentDataPoint.valuetempdsjr; Sensorthreshold.waterTVcurrentDataPoint.valuewaterTV; Sensorthreshold.watermaxcurrentDataPoint.valuewatermax; Sensorthreshold.tdsTVcurrentDataPoint.valuetdsTV; delay_ms(100); } }六、项目实验效果 ​​​七、项目包含内容​​​

相关新闻

English-Level-Up-Tips:54k Star背后的英语学习方法论革命

English-Level-Up-Tips:54k Star背后的英语学习方法论革命

一份不一样的英语学习指南在GitHub上获得54k Star的English-Level-Up-Tips,并非一个软件工具,而是一份全面的英语学习进阶指南。它的火爆揭示了一个现象:在技术社区中,对“如何高效学习”的方法论需求同样巨大。这份指南综合了作者…

2026/6/24 3:12:52阅读更多 →
008、SE 通道注意力插入 Neck 上采样后(位置三):代码修改与 mAP 消融

008、SE 通道注意力插入 Neck 上采样后(位置三):代码修改与 mAP 消融

008、SE 通道注意力插入 Neck 上采样后(位置三):代码修改与 mAP 消融从一次诡异的 mAP 波动说起 上周调 YOLOv11 的改进方案,在 Neck 部分塞了个 SE 模块,结果发现 mAP 在验证集上忽高忽低,有时候甚至比 ba…

2026/6/24 3:12:51阅读更多 →
第 13 篇:可观测性 —— 日志、指标、追踪

第 13 篇:可观测性 —— 日志、指标、追踪

本篇是《MCP 开发实战教程》专栏的第 13 篇,也是第四部分"设计模式"的收官篇。前三篇我们搞定了资源管理、流量控制和错误处理,但这些都属于"防御"——出了问题怎么应对。本篇讲的是"主动感知"——在问题发生前发现征兆,在问题发生后快速定位…

2026/6/24 3:07:51阅读更多 →
安捷伦GC-MS经典分析套件:含谱库匹配、峰面积定量与合规报告模板的完整部署包

安捷伦GC-MS经典分析套件:含谱库匹配、峰面积定量与合规报告模板的完整部署包

本文还有配套的精品资源,点击获取 简介:一套开箱即用的安捷伦MSD ChemStation经典版(G1701FA)安装资源,专为气相色谱-质谱联用数据处理设计。支持NIST等标准谱库快速检索,通过QEdit、DOSCAN、DOLIST和Ea…

2026/6/24 4:32:57阅读更多 →
Windows下IOCP服务器压测工具:支持短/长连接模拟、十六进制通信监控与完整C++源码

Windows下IOCP服务器压测工具:支持短/长连接模拟、十六进制通信监控与完整C++源码

本文还有配套的精品资源,点击获取 简介:专为Windows平台IOCP服务端设计的压力测试工具包,包含图形界面主程序(main.exe)和命令行压测模块(ioc_pressure_test.exe),可分别模拟短连…

2026/6/24 4:32:55阅读更多 →
Android UI自动化测试中uiautomatorviewer反射异常与UI层级获取失败的深度解决方案

Android UI自动化测试中uiautomatorviewer反射异常与UI层级获取失败的深度解决方案

1. 项目概述:当UI自动化测试的“眼睛”突然失明搞Android UI自动化测试的朋友,对uiautomatorviewer这个工具一定不陌生。它就像测试工程师的“眼睛”和“探测器”,能直观地抓取手机屏幕上的UI控件树,让我们轻松定位元素、编写脚本…

2026/6/24 4:32:55阅读更多 →
Java实现WPA2密码强度测试:从暴力枚举原理到并发优化实践

Java实现WPA2密码强度测试:从暴力枚举原理到并发优化实践

1. 项目概述:一次关于无线网络安全与防御的深度探讨最近在整理一些旧项目时,翻到了一个多年前出于纯粹技术研究目的编写的Java版Wifi密码测试工具。今天把它拿出来,并非为了教大家如何“破解”邻居的Wifi,而是想从一个开发者兼网络…

2026/6/24 4:32:55阅读更多 →
应急响应实战:Webshell查杀工具链与深度排查指南

应急响应实战:Webshell查杀工具链与深度排查指南

1. 项目概述:当告警响起,我们如何快速定位并清除Webshell?深夜,安全告警平台的蜂鸣声突然响起,屏幕上弹出一条高风险的“Webshell文件上传”告警。作为应急响应工程师,你的肾上腺素瞬间飙升。这不是演习&am…

2026/6/24 4:32:55阅读更多 →
Windows和Linux下Gitlab以及Github多账号(3个及以上)SSH配置

Windows和Linux下Gitlab以及Github多账号(3个及以上)SSH配置

多 Git 账号管理(SSH 模式)—— Win 篇 动机: 我在使用多个 Git 账号时经常遇到麻烦:每次切换账号都要重新登录,尤其是浏览器身份验证时。我默认浏览器使用 Edge,但 GitHub 的登录信息保存在 Chrome 中,跳转验证让人头…

2026/6/24 4:27:55阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/23 7:04:52阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/24 2:12:09阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/23 5:55:37阅读更多 →
TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#…

2026/6/24 0:02:41阅读更多 →
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为…

2026/6/24 0:02:41阅读更多 →
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,…

2026/6/24 0:02:41阅读更多 →