【毕业设计】往届案例分享 智能鱼缸监测控制系统

系列文章目录



0 前言

🔥近几年随着人工智能等新技术的不断火热,带动了嵌入式等的传统行业的进一步发展。最近带过的几届同学反馈:以往的毕设题目缺乏创新性和亮点,不能满足学校的答辩要求。为了方便毕业生们顺利、省心、高效的通过毕设,这里分享一些优质的低投入高产出毕业设计。

今天给大家分享一个比较实用且有一定创新力的题目

🚩智能鱼缸监测控制系统

🥇首先对这道题目给出一个量化的评价(每项满分5⭐):

  • 难度:⭐⭐⭐
  • 工作量:⭐⭐⭐
  • 创新性:⭐⭐⭐

1 题目

在这里插入图片描述

2 方案设计

2.1 方案框图

分析题目功能点,结合开发经验,构思整体方案,形成整体方案框图

2.2 器件选型

主控:采用 STM32F103 系列嵌入式芯片,具体型号/规格暂定 STM32F103C8T6 最小系统板,系统主频 72 MHz;
水浑浊度传感器:检测水中的泥沙、有机物、微生物等悬浮物质造成的浑浊程度,模拟量输出,型号暂定 TS-300B;
人体红外热释电传感器:检测是否有人靠近水族缸,避免无人靠近时控制系统发出无意义、会干扰用户的提示,通过IO与主控连接,市面常见款,无特定型号;
语音播放模块:CN-TTS 中文串口语音合成模块,通过串口与主控通信;
时钟芯片:获取实时时间,与主控通过芯片自定义协议通信,型号 DS1302;
水位传感器:检测水族缸内的水位,模拟量输出,无特定型号;
水温度传感器:检测水的温度,通过单总线协议通信,型号 DS18B20;
液晶显示屏:显示控制系统的必要信息,通过I2C协议通信,型号 OLED 液晶屏;
系统采用5V供电。

2.3 小结-设计要点、难点解析

1、各类传感器的原理、使用方法与通信协议;
2、传感器数据的解析、去噪和拟合;
3、系统软件应具备高效的传感器数据采集顺序和逻辑,提升传感器响应速度;
4、语音合成模组的原理、使用方法和通信协议;
5、液晶显示屏的驱动原理、通信协议;
6、时钟芯片中的数据格式、读写原理和通信协议;
7、具备良好的人机工程学,能有效提示用户,又能避免对用户产生干扰;
8、系统软件总体流程设计,能够准确快速的响应用户操作;
9、系统需具备高鲁棒性,提升设备可靠性。

3 硬件设计——原理图及PCB

使用 Altium Designer 软件进行硬件原理图和PCB绘制

请添加图片描述
请添加图片描述

4 软件设计——软件模块划分及主程序源码

使用 Keil-MDK ARM建立工程

工程文件树
请添加图片描述

主程序部分源码展示:

/************************************************************
 * @file main.c
 * Description:	
 * $Revision: #1 $
 * $Date: 2021/1101 $
 * $Author:
 * $Change: $
 * $Warning: This file must save and open as encoding 'ANSI' or 'GBK' which is only support by TTS-module
 * 主控MCU STM32F103C8T6 外部晶振8MHz RCC函数设置主频72MHz
 *
 *
 ***********************************************************/




#include "sys.h"
#include <stdio.h>
#include "basic_type_redef.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "oled0561.h"
#include "digital_io_device.h"
#include "adc.h"
#include "ds1302.h"
#include "ds18b20.h"


#if 0
#define MSG_MSG(fmt, ...)   USART1_printf("[MSG] -I-:" fmt, ##__VA_ARGS__)
#define MSG_INF(fmt, ...)   USART1_printf("[MSG] -I-:" fmt, ##__VA_ARGS__)
#define MSG_DBG(fmt, ...)   USART1_printf("[MSG] -D-:" fmt, ##__VA_ARGS__)
#define MSG_WRN(fmt, ...)   USART1_printf("[MSG] -W-:" fmt, ##__VA_ARGS__)

#define UART_LOG(_level, _mod, _fmt, ...)  USART1_printf(_fmt, ##__VA_ARGS__)

#define LOG_MSG(fmt, ...)   UART_LOG(INFO,  mod, fmt, ##__VA_ARGS__)
#endif

/* 全局变量声明 */

#define WATER_LINE_LOW      3400    // 水位下限ADC值
#define WATER_REPLENISH_THR 1800    // 加水上限ADC值
#define WATER_TURBID_THR    3800    // 水浑浊度ADC阈值
#define MIN_SPEAK_TIME      30      // 最小播放时间间隔 单位:分钟
#define SPK_TIME            6000    // 语音播放时长 6000ms
#define HUMAN_DETECT_CNT    200     // 人体检测重复次数

#define HUMAN_DETECT_THR    30      // 此值为实测推算,每HUMAN_DETECT_CNT次有HUMAN_DETECT_THR次检测到人体,则认定有人体
#define WATER_CHANGE_TIME   30      // 换水时长 30天

/* 系统状态 */
uint8_t SYS_STATE;          // 系统主状态标志位,不可直接修改,修改务必调用接口
uint8_t LAMP_LIGHT_TIME;    // 路灯点亮的时长
uint8_t LAMP_LIGHT_CNT;     // 路灯点亮的次数
uint8_t LAST_TIME_STAMP[2]; // 上一次感应到人体并播放的时间戳数组 时、分
uint8_t CUR_TIME_STAMP[2];  // 当前时间戳
uint8_t WATER_CHANGE_STAMP[2];// 上次换水时间戳 月日
uint8_t HUMAN_CONBINE_TIME; // 人体检测及时钟标志位


//uint8_t uart_rx_data;   // 串口接收到的数据

extern vu16 ADC_DMA_IN[2]; //声明外部变量
extern DS18B20_MEASURE DS18B20_Measure;

/* 系统工作状态 */
typedef enum
{
    SYS_STATE_NONE = 0,
    SYS_STATE_READY,
    SYS_STATE_RESPONSE,
    SYS_STATE_WATER_REPLENISH,
    SYS_STATE_CNT
}SYSTEM_STATE_E;


typedef struct
{
    uint16_t enum_idx;
    uint8_t* str;
}enum_str_t;


enum_str_t const sys_state_str[SYS_STATE_CNT] = 
{
    {SYS_STATE_NONE,            (uint8_t *)"NONE"},
    {SYS_STATE_READY,           (uint8_t *)"REDY"},
    {SYS_STATE_RESPONSE,        (uint8_t *)"RSPS"},
    {SYS_STATE_WATER_REPLENISH, (uint8_t *)"RPLS"},
};





uint8_t *sys_state2str(SYSTEM_STATE_E const state);
uint16_t mean_filter(uint16_t value);
uint16_t mean_filter4water_turbidity(uint16_t value);


/* 状态转换 */
void state_update(uint8_t current_state)
{
    if (current_state != SYS_STATE)
    {
        //OLED_DISPLAY_CLEAR();

        if (SYS_STATE_READY == current_state)
        {
            OLED_DISPLAY_CLEAR();
            MSG_DBG("STATE from [ %s ] to [ %s ] \r", sys_state2str(SYS_STATE), sys_state2str(current_state));
            OLED_DISPLAY_8x16_BUFFER(0, "------REDY------"); // 显示字符串
            OLED_DISPLAY_8x16_BUFFER(2, "TBDT:     ");
            OLED_DISPLAY_8x16_BUFFER(4, "LINE:     ");
        }
        #if 10
        else if (SYS_STATE_RESPONSE == current_state)
        {
            MSG_DBG("STATE from [ %s ] to [ %s ] \r", sys_state2str(SYS_STATE), sys_state2str(current_state));
            OLED_DISPLAY_8x16_BUFFER(0, "------RSPS------");
            //OLED_DISPLAY_8x16_BUFFER(2, "LUMI:");
            //OLED_DISPLAY_8x16_BUFFER(4, "TIME:   CNT:");
        }
        else if (SYS_STATE_WATER_REPLENISH == current_state)
        {
            OLED_DISPLAY_CLEAR();
            MSG_DBG("STATE from [ %s ] to [ %s ] \r", sys_state2str(SYS_STATE), sys_state2str(current_state));
            OLED_DISPLAY_8x16_BUFFER(0, "------RPLS------");
            //OLED_DISPLAY_8x16_BUFFER(2, "LUMI:");
        }
        #endif
        else if (SYS_STATE_NONE == current_state || SYS_STATE_CNT == current_state)
        {
            MSG_DBG("STATE from [ %s ] to [ %s ] \r", sys_state2str(SYS_STATE), sys_state2str(current_state));
            OLED_DISPLAY_8x16_BUFFER(0, "!!!FATALERROR!!!");
        }
            
        SYS_STATE = current_state;
    }
}


5 成果——实现效果展示

在这里插入图片描述

在这里插入图片描述

6 最后总结——项目资料获取

想获取设计方案、器件资料、原理图、PCB、程序源码获取、其他毕设题目解答,欢迎私信。
或关注微信公众号“电子设计万事屋”,敬请关注

基于单片机智能鱼缸设计与实现毕业设计 目 录 摘 要 I Abstract II 1 绪论 1 1.1课题背景 1 1.2国内外研究现状 1 1.3研究目的 2 2 开发技术与原理简介 4 2.1嵌入式技术 4 2.2传感器技术 4 2.3 Android技术 4 2.3.1 Android智能手机平台概述 4 2.3.2 Android手机平台的特点 5 2.3.3 Android系统软件架构 5 3 需求分析 6 3.1功能需求 6 3.1.1系统的特点及功能描述 6 3.1.2系统流程分析 6 3.2用例分析 7 3.3 开发工具 11 3.3.1 底层硬件电路开发工具 11 3.3.2底层系统开发工具 12 3.3.3 Android客户端开发工具 12 4 概要设计 13 4.1系统总体方案与功能 13 4.1.1系统功能组成 13 4.1.2系统控制参数 14 4.2系统的硬件结构 14 4.3系统的软件设计 15 5 详细设计 17 5.1单片机系统设计 17 5.1.1单片机选型 17 5.1.2单片机最小系统设计 18 5.1.3详细说明 21 5.2温度传感器模块设计 22 5.2.1温度传感器选型 22 5.2.2温度传感器电路设计 23 5.3蓝牙串口模块设计 23 5.3.1串口技术 23 5.3.2蓝牙串口电路设计 25 5.3.3系统通讯协议设计 25 5.3.4系统通讯详细说明 26 5.4时钟模块设计 27 5.4.1时钟芯片选型 27 5.4.2时钟模块电路设计 27 5.5 Android客户端设计 28 5.5.1 Android蓝牙通信设计 28 5.5.2 Android界面设计 29 6 系统实现 31 6.1 底层设备软件实现 31 6.1.1系统软件流程图 31 6.1.2底层系统算法设计 32 6.2手机端软件实现 35 6.2.1手机端软件流程图 35 6.2.2底手机端软件算法设计 36 6.3软硬件设备实物图 38 6.3.1硬件设备实物图 38 6.3.2手机端软件截图 40 7 系统测试 41 7.1LED灯光变换测试 41 7.2检测温度测试 42 7.3水循环控制系统测试 42 7.4充氧模块测试 43 结束语 44 致 谢 45 参 考 文 献 46 摘 要 近年来嵌入式发展迅速,智能家居也进入了人们的生活。智能鱼缸却没有快速发展。我 根据市场上相关设备现状的分析和研究,从系统集成角度进行设计和开发,提出了一套 多功能的智能观赏鱼缸控制系统设计方案。 该控制系统以STC12C5A60S2单片机为控制核心,结合传感器技术,集多种控制功能于一 体,包括检测温度、自动充氧、自动换水、灯光变换和自动喂食等,同时在系统中设计 一个蓝牙通信模块,可实现对鱼缸的远程控制和管理。整个系统分为两个部分:第一部 分是以STC12C5A60S2为核心的控制部分,实现对各种控制参数的设置、存储、和处理。 第二部分是手机安卓部分,通过手机端APP可以对鱼缸进行实时控制、参数设置等,实现 人机交互。两个部分之间采用蓝牙通讯技术,将数据信息在上位机与下位机之间交互传 输。 该系统根据当前市场上的需求进行设计和开发,形成了一套自动充氧、自动换水、灯光 变换和自动喂食等功能为一体的集成控制系统。同时该系统设计灵活、成本低廉,便于 量产,可广泛用于家庭和宾馆等安装观赏鱼缸的场所。 关键词:鱼缸,自动控制,单片机,蓝牙通讯,APP Abstract In recent years, with the development of embedded, intelligent household also entered people's lives. The intelligent aquarium is not development. I according to the current market analysis and research status quo of related equipment, system integration from the perspective of design and development, a set of multi-functional intelligent fish tank control system design. The control system STC12C5A60S2 microcontroller core. Combined with sensor technology. Set a variety of control functions. Including temperature detection, a
一个简单的项目,实现灯,过滤和换气的时钟控制,以及通过MQTT的远程覆盖。 硬件组件: ESP8266 ESP-12E × 1 电容1000μF× 1 OpenBuilds线缆 - 脚× 1 LM317 DC-DC线性转换器模块× 1 电阻10k欧姆× 7 电阻221欧姆× 4 电阻1k欧姆× 1 4n35光电隔离器× 2 IRF520 Mosfet× 2 AQH3213 SolidState继电器× 1 PCB螺钉端子× 1 插座× 1 13A插头× 1 3Amp保险丝× 1 0.33A表面贴装型自恢复保险丝,240V ac / dc× 1 母头8位1排(0.1“)× 1 原型PCB板4厘米x 6厘米双面× 1 软件应用程序和在线服务: MQTT MQTT Dash Android应用程序 Arduino IDE 手动工具和制造机器: 烙铁(通用) 旋转式多功能工具 万用表 我们的鱼缸放在我们的电视旁边,所以我们可以看到鱼并观看它们,有一个基本的控制灯,顶部有一个触摸开关,换气没有任何开关,所以这需要拔掉,如果我们想要一些平静和安静,或者想以合理的音量观看电视。这意味着换气器偶尔会无意中停留数天或数小时,这对鱼的健康状况来说并不理想。当时我已经使用了arduino入门套件,想要在发现ESP8266系列设备与Arduino IDE一起使用并购买了一些后,想要为家庭建造一些东西。 我的第一个想法是在时间程序旁边远程打开/关闭换气器。此外,当我开始研究鱼缸控制时,我发现了一些现成的灯光定时器,但这不允许遥控,而阅读灯光定时器一些互联网评论谈到鱼缸建议的最短灯光时间,所以这是理想的包含在我的项目中。最后我想我也可以包括过滤器,以便在执行维护时可以轻松关闭。 项目要求: 控制器/开关必须封闭且安全 远程控制。 有时间程序控制以及远程更改程序的能力。 当我不在家时,让我的妻子有能力控制它。 自动化换气器,使其至少在整个晚上运行 注意,灯和滤波器都配有12vdc,这是一个非常安全的电压工作,但是换气器有自己的预先形成的插件电源,所以我不得不采用电源电压固态继电器和英国插座插座。我考虑了这些方面并设有保险丝以防止额定值下的过电流,确保供电电缆等不会过载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值