嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文)

这篇具有很好参考价值的文章主要介绍了嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 stm32智能鱼缸监控投喂系统(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 项目分享:见文末!文章来源地址https://www.toymoban.com/news/detail-840715.html

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

实物演示效果

毕业设计 stm32智能鱼缸监控投喂系统 - 单片机 嵌入式 物联网

1 主要功能

题设计的目的为实现鱼缸换水、投食、远程监控,实时数据显示、远程操控的一体化和智能化。该设计具有科研和实用两重价值。

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

  • 1 自动加水,当水位过低时自动启动水泵,向鱼缸内自动加水

  • 2 自动放水,当水位过低时启动放水阀(用继电器模拟),当水位达到标准时停止防水

  • 3 换水启动,当监测到水质过于浑浊,自动开始防水,并触发自动加水逻辑

  • 4 自动投食,每日固定时间投食(用继电器模拟)

  • 5 状态显示,传感器数据实时显示于OLED屏上

  • 6 远程交互,传感器数据通过wifi模块远程上传到上位机客户端上

  • 7 远程控制,上位机可通过wifi模块,向单片机发送远程指令,控制其换水,投食

2 硬件设计(原理图)

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

3 核心软件设计

对于本次智能鱼缸的系统设计,如果需要实现其理想的功能,需要对温度采集模块、OLED显示模块、继电器控制模块、按键控制模块、WIFI模块等进行模块化编程,最后通过主程序的系统结合,实现智能鱼缸的主要功能需求。其主程序控制流程如下图

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

上位机部加粗样式分设计

上位机界面通过Python程序语言进行开发,通过无线传输数据的方式即可实现无线监控。当用户输入正确的IP地址以及指定端口登录后,后台系统开始运行。

应用界面设计主要由Python应用程序完成,以连接STM32和ESP8266模块,使用适合的GUI框架,例如Tkinter,PyQt等。再设计主窗口的大小、标题、背景颜色等基本属性,并使用Tkinter提供的组件,诸如Frame、Label、Entry、Button等组件来构建界面,同时为相应的组件设置属性。在这个应用程序中,Label组件可以用于添加提示语句,Entry组件可以接受用户输入的串口号、波特率等参数,Button组件在设计时应该能够实现连接和断开操作等。

在代码中,需要使用pySerial模块实现串口通信,来连接STM32和ESP8266模块。首先,需要导入pySerial模块,并通过串口的设定创建Serial对象,设置好相关参数,然后使用open()方法打开串口。构建和设置基本属性,通过pySerial模块实现串口通信的过程,连接STM32和ESP8266模块,并保证良好的用户交互和异常处理机制。连接通讯流程图如图

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

篇幅有限,不过多复述详细设计细节,详细的设计分享在论文中。。。

关键代码

#include"stm32.h"
uchar PageNum=0; //0显示温湿度 1显示温度和报警数值2显示湿度和报警数值
float Temp_Data=0;
uchar AlarmTemp[]={32,20}; //高低温度
unsigned char FeedTime[3]={0}; //喂食时间
unsigned char O2Time[3]={0};  //充氧气时间
unsigned char LoopTime[3]={0}; //水循环时间
sbit RELAY1 = P2^2; //加水继电器
sbit RELAY2 = P2^1; //加热继电器
sbit RELAY3 = P2^0; //放水继电器
sbit ENA=P3^2;
sbit ENB=P3^3;
void TimerInit(void);
void GetTemp(void);
void PageInit(void);
void PageDisplay(void);
void DataLoad(void); //数据加载
void TempInit(void); //
void HeatControl(void); //加热自动控制
void Timer1_Init(void);  //50毫秒@11.0592MHz
void IncO2Control(void);
void FeedControl(void);
void LoopControl(void);
unsigned char FeedSecond=0;
unsigned char O2Second=0;
unsigned int LoopSecond=0;
unsigned char CountTime[3]={0}; //水循环时间计时
void main(void)
{
Delay_1ms(100);
LCD_Init();
TimerInit();
PageInit();
DataLoad();
TempInit();
Timer1_Init();
while(1)
{
 GetTemp();
 DS1302_Read();
 FeedControl();
HeatControl();
 IncO2Control();
PageDisplay();
 LoopControl();
 Delay_1ms(50);
} 
}
void Timer0_Serve(void) interrupt 1
{ 
TH0 = (65535-20000)/256; //20MS定时
TL0 = (65535-20000)%256;
LCD_Refresh(); //LCD刷新
KEY_Scan();
}
void Timer1_Serve(void) interrupt 3 //50ms定时
{ 
 static unsigned char T50MS=0;
 TL1 = 0x00;  //设置定时初值
 TH1 = 0x4C;   //设置定时初值
 T50MS++;
 if(T50MS>=20)
 {
 T50MS=0;
 CountTime[2]++;
if(CountTime[2]>=60)
 {
 CountTime[2]=0;
  CountTime[1]++;
  if(CountTime[1]>=60)
  {
  CountTime[1]=0;
  CountTime[0]++;
if(CountTime[0]>23)
  CountTime[0]=0;
 }
} 
 if(FeedSecond>0)
 FeedSecond--;
 if(O2Second>0)
 O2Second--;
  if(LoopSecond>0)
  {
  LoopSecond--;
 }
 }
}
void HeatControl(void) //加热控制
{
/*------------------低于下限开始加热---------------------*/
 if(Temp_Data<AlarmTemp[1])
 {
RELAY1=0;
 }
/*------------------高于上限停止加热---------------------*/
if(Temp_Data>AlarmTemp[0])
 {
 RELAY1=1;
 }
}
void TimerInit(void)
{
 TMOD &= 0xF0;
 TMOD |= 0X01; //T1工作在定时模式, T0 工作在8位自动重载计数
 TL0 = (65535-20000) % 256; //T0工作在定时模式 50ms定时
TH0 = (65535-20000)  / 256;
 ET0 = 1;
 TR0 = 1;
 EA = 1;
}
void PageDisplay(void)
{
/*---------------------------------------------------------*/
if(KeyVal=='E')
{
KeyVal=0;
 PageNum++;
 if(PageNum>4)
{
 PageNum=0;
 }
 PageInit();
}
/*-------------------------------------------------------*/
switch(PageNum)
{
/*-------------------------------------------------------*/
case 0: //显示和设置实时时间
{
  LCD_DisplayDate(0,Date);
  LCD_DisplayTime(16,Time);
  if(KeyVal=='S')
  {
  KeyVal = 0;
  SetRTC();
 }
}break;
/*-------------------------------------------------------*/
case 1: //显示实时温度和上下限值
 {
TempDisplay(5,Temp_Data);
DisplayU8(18,AlarmTemp[0]);  //
DisplayU8(26,AlarmTemp[1]);  //
if(KeyVal=='S')
{
KeyVal=0;
SetTempHigLow(AlarmTemp);
WrToROM(AlarmTemp,5,2); //温度存储地址0
}
 }break;
/*-------------------------------------------------------*/
 case 2:
 {
 LCD_DisplayTime(16,FeedTime);
  if(KeyVal=='S')
  {
  KeyVal=0;
  SetClockTime(FeedTime);
 WrToROM(FeedTime,20,3);
  } 
 }break;
/*-------------------------------------------------------*/
case 3:
{
 LCD_DisplayTime(16,O2Time);
  if(KeyVal=='S')
  {
  KeyVal=0;
  SetClockTime(O2Time);
 WrToROM(O2Time,25,3);
  } 
}break;
/*-------------------------------------------------------*/
case 4:
{
 LCD_DisplayTime(16,LoopTime);
  if(KeyVal=='S')
{
  KeyVal=0;
  SetClockTime(LoopTime);
  WrToROM(LoopTime,30,3);
  }
}break;
default: { PageNum=0; PageInit(); }break;
}
/*-------------------------------------------------------*/
}
void IncO2Control(void)
{
 if(1==CompareClock(O2Time,Time))
 {
 O2Second=60;
 }
 if(O2Second>0)
 RELAY2=0;
 else
 RELAY2=1;
}
void FeedControl(void)
{
 if(1==CompareClock(FeedTime,Time))
 {
FeedSecond=10;
 }
 if(FeedSecond>0)
 {
 ENA=0;
 ENB=1;
 }
 else
 {
 ENA=1;
 ENB=1; 
 }
}
void LoopControl(void)
{
 if(1==CompareClock(LoopTime,CountTime))
 {
 CountTime[0]=CountTime[1]=CountTime[2]=0;
 LoopSecond=60;
 }
 if(LoopSecond>0)
 {
 RELAY3=0;
 }
 else
{
 RELAY3=1;
 }
}



4 实现效果

下位机
嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

上位机实现效果
嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

实物演示效果

毕业设计 stm32智能鱼缸监控投喂系统 - 单片机 嵌入式 物联网

5 最后

包含内容

嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机
配套详细设计论文
嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文),单片机

🧿 项目分享:见文末!

到了这里,关于嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式毕设分享 stm32 RFID智能仓库管理系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(74)
  • 嵌入式毕设分享 stm32与GSM的远程无线智能报警系统(项目开源)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(87)
  • stm32毕设分享 Stm32 WIFI智能家居温湿度和烟雾检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月02日
    浏览(134)
  • 【毕业设计】基于单片机的智能鱼缸系统设计与实现 - 嵌入式 物联网 stm32 51单片机 智能鱼缸

    Hi,大家好,今天向大家介绍一个 单片机项目, 大家可用于 课程设计 或 毕业设计 基于单片机的智能鱼缸系统设计与实现 🔥 项目分享与指导: https://gitee.com/sinonfin/sharing 近年以来,随着我国综合实力飞速飙升,人们对物质和精神生活质量的要求也不断提升,各式各样的智能

    2024年02月04日
    浏览(90)
  • 嵌入式毕设分享 stm32 wifi远程温控风扇系统

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(77)
  • stm32毕设分享 stm32实现车牌识别系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(62)
  • stm32毕设分享 Stm32酒驾检查系统 - 单片机 嵌入式 物联网

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月23日
    浏览(75)
  • 嵌入式毕设分享 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(68)
  • 嵌入式毕设分享 stm32与openmv的目标跟踪系统

    文章目录 0 前言 课题简介 设计框架 3 硬件设计 4 软件设计 判断被测物体所在区域 5 最后 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师

    2024年02月13日
    浏览(48)
  • 嵌入式毕设分享 stm32人脸识别快递柜系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年04月10日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包