【单片机毕业设计选题24046】-基于单片机的智能鱼缸设计

系统功能:

检测水温,水温过低开启PTC加热。检测水位,水位过低开启水泵抽水。检测湿度,湿度过高则开启风扇通风。

检测PH值和浑浊度,TTS语音播报功能,OLED显示系统信息,蓝牙模块连接手机APP。

系统上电后显示“欢迎使用智能鱼缸系统请稍后”两秒后进入正常显示页面。

第一页面第一行显示“系统状态信息”,第二行显示温湿度和水位信息,第三行显示

浑浊度信息,第四行显示PH值信息。

第一页面下的按键操作:

短按B4按键可切换到第二页面。

短按B7按键语音播报温湿度水位浑浊度PH值。

第二页面第一行显示“温度阈值设定”,第二行显示获取到的温度值,第三行

显示设置的温度值,第四行显示PTC开关状态。

第二页面下的按键操作:

短按B4按键可切换到第三页面。

短按B5按键增加温度设定阈值。

短按B6按键减小温度设定阈值。

短按B7按键播报加热器状态。

第三页面第一行显示“湿度阈值设定”,第二行显示获取到的湿度值,第三行

显示设置的湿度值,第四行显示风扇开关状态。

第三页面下的按键操作:

短按B4按键可切换到第四页面。

短按B5按键增加湿度设定阈值。

短按B6按键减小湿度设定阈值。

短按B7按键播报风扇状态。

第四页面第一行显示“水位阈值设定”,第二行显示获取到的水位值,第三行

显示设置的水位值,第四行显示水泵开关状态。

第四页面下的按键操作:

短按B4按键可切换到第一页面。

短按B5按键增加水位设定阈值。

短按B6按键减小水位设定阈值。

短按B7按键播报水泵状态。

手机APP连接到蓝牙模块可以收到系统上报的传感器数据。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器输出电路:

资料获取地址

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_ADC1_Init();MX_USART2_UART_Init();/* USER CODE BEGIN 2 *///在HAL库初始化串口1后调用HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);InitOled();InitOledDisp();ResetDHT11();/*if(InitDS18B20()==0){//        printf("%s", "DS18B20初始化成功");//DS18B20在上电第一次读取时显示温度为85℃,这是正常的。//85℃是DS18B20在上电复位后在温度寄存器内的对应数字量,//这里DS18B20初始化成功后读一次值,避免出现85℃DS18B20GetTemp_SkipRom();}*/

系统控制代码;
 

//系统信息更新void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++;   if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;//        ds18b20Temp = DS18B20GetTemp_SkipRom();if(DHT11ReadData()==0)  //DHT11温湿度读取OK{;}UpdateBleData();}ReadSensorVal();}

蓝牙模块上报系统数据:

//更新BLE数据void UpdateBleData(void){printf("Temp:%02d Humi:%02d\r\n", getTempVal, getHumiVal);     printf("Water:%04d\r\n", getWaterVal);printf("PH:%3.1f\r\n", getPhVal);printf("Thick:%04d\r\n", getThickVal);      }

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

各功能模块资料:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT专业入门,高考假期预习指南—初识产品经理BRD、MRD 和 PRD

七月来临,各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束,而是新旅程的开始。对于有志于踏入IT领域的高考少年们,这个假期是开启探索IT世界的绝佳时机。作为该领域的前行者和经验前辈,你是否愿意为准新生们提供一份全…

AI 芯片之战:开启智能新时代的关键角逐

在科技发展的浪潮中,一场围绕 AI 芯片的激烈竞争正在全球范围内如火如荼地展开。多家巨头纷纷投身其中,使得这场混战已然进入白热化阶段。 AI 芯片,作为推动人工智能发展的核心硬件,其作用举足轻重。它能够高效地处理海量的数据&a…

生物分子生物学实验过程的自动化与智能监控系统设计

开题报告:生物分子生物学实验过程的自动化与智能监控系统设计 一、引言 随着生物科学技术的飞速发展,生物分子生物学实验在科研、医疗、农业等领域的应用日益广泛。然而,传统的生物分子生物学实验过程大多依赖于人工操作,存在操…

java web 部分

jsp作用域由大到小 过滤器有哪些作用? 过滤器的用法?(对客户端的请求统一编码和对客户端进行认证) JSP和Servlet中的请求转发分别如何实现? JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么…

PCB设计时,信号走线要先过ESD/TVS管,这是为什么?

目录 为什么有上面这个问题? 问题的原因——走线电感 走线电感的阻抗 电感的影响 小结 都说接口处的信号要先过ESD/TVS管,然后拉到被保护器件,为什么不这样做效果就不好?那如果受板子实际情况限制,必须这样layout…

Python - 单引号与双引号

Python 版本 3.11.4 字符串 单个文字符称为字符,多个文字符成为字符串。 字符串需要被(单引号)或者""(双引号)包括。 language "Python"language Python 以上写法都是合法的。 单引号与双…

Zabbix 配置MySQL数据库监控

Zabbix MySQL数据库监控简介 通过 Zabbix 监控 MySQL 数据库,可以获取有关数据库性能、运行状况和资源使用情况的详细信息,帮助及时发现和解决问题。 Zabbix官方提供了一个名为MySQL by Zabbix agent的监控模板,该模板专为 Zabbix 通过 Zabb…

探索Vim表达式寄存器:提升文本处理的高级技巧

探索Vim表达式寄存器:提升文本处理的高级技巧 Vim是一款功能强大的文本编辑器,它拥有丰富的寄存器系统,用于存储文本、命令等。表达式寄存器是Vim中一种特殊的寄存器,允许用户存储并操作表达式的结果。本文将详细介绍如何在Vim中…

使用Spring Boot和mkcert解决本地及局域网HTTPS访问

在现代Web开发中,HTTPS已经成为保障数据传输安全的标准。然而,在开发和测试阶段,配置HTTPS可能会带来一些额外的复杂性。尤其是在本地开发环境和局域网内网环境中,获得和配置证书通常是一个挑战。本文将介绍如何使用Spring Boot和…

关于在自己的生活里面,增加喝咖啡的这道手续

前言:我总在告诉我自己,我自己应该如何?我的未来应该如何?到那时实际上,自己没有办法能够理解的确实我的现在,我应该依靠咖啡度过我自己剩下的岁月,接下来,让自己用自己的方式来不断…

华为5288 V5服务器安装BCLinux8U4手记

本文记录了华为5288 V5服务器安装BCLinux8U4操作系统的过程。 一、系统环境 1、服务器 华为FusionServer Pro 5288 V5服务器 2、操作系统 BCLinux-R8-U4-Server-x86_64-220725.iso 官网下载地址 sha256sum:1d31d3b8e02279e89965bd3bea61f14c65b9d32ad2ab6d4eb…

DTP 抽取出错:data target is locked by process***

怎么会显示被几年前的一个process lock住了呢? 搞不明白。 不管怎样,去RSPM_MONITOR改,data target填上ADSO名,选时间,Process status选Y。 找到这条,双击,发现是active的状态。可能是因为前后…

springboot城市菜园共享系统-计算机毕业设计源码00524

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2 国内外研究现状和发展趋势 1.3论文结构与章节安排 2 城市菜园共享系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

Apache Kylin与Impala:深入比较与应用场景分析

Apache Kylin与Impala:深入比较与应用场景分析 在大数据处理领域,Apache Kylin和Impala都是Apache软件基金会下的项目,它们各自提供了独特的解决方案来处理大规模数据集。了解它们的不同之处对于选择合适的数据处理工具至关重要。本文将深入…

[Linux安全运维] rsyslog

rsyslog 1. 什么是 rsyslog rsyslog 是一个高性能的日志处理程序,能够接收、处理并转发日志消息。它被广泛应用于 UNIX 和 Linux 系统中,用于系统日志记录和管理。 2. rsyslog 的主要功能 高性能:能够处理大量日志消息,适用于…

C++那些事之小项目实战-进程间通信

小项目实战之进程间通信 进程间通信是一个非常重要的话题,特别是像一些大型项目都有它的影子,例如:PostgreSQL使用了管道完成copy的进程间通信,那么本节也将基于这个主题,使用C去搭建一个进程间通过管道通信的demo出来…

聚变反应堆设计的一些关键方面和最新进展

聚变反应堆设计是一个复杂且高度专业化的领域,旨在实现核聚变反应以产生清洁能源。以下是对聚变反应堆设计的一些关键方面和最新进展的概述: ### 一、聚变反应堆的基本原理 核聚变是两个较轻的原子核结合成一个较重的原子核,并在此过程中释…

消除笔怎么用?教你消除笔的正确用法

消除笔,也称为橡皮擦工具或克隆笔工具,是图像处理软件中的一种常用工具。它的主要作用是通过取样图像中的某一部分,然后覆盖掉不想要的图像内容,从而实现修复、去除瑕疵等效果。那么有哪些软件具有消除笔功能,又是怎么…

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展,体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上,一项革命性的技术——高精度定位,正悄然改变着比赛的每一个细节,为球迷们带来前所未有的观赛享受,同时也为运…