基于STM32单片机的智能鱼缸系统设计
创作时间:
作者:
@小白创作中心
基于STM32单片机的智能鱼缸系统设计
引用
CSDN
1.
https://m.blog.csdn.net/2301_79003431/article/details/143055228
本文介绍了一种基于STM32单片机的智能鱼缸系统设计方案,该系统集成了温度监控、浑浊度监控、液位监控、定时喂食等多项功能。文章详细描述了系统的电路设计和程序实现,为硬件设计和嵌入式开发爱好者提供了一个实用的参考案例。
一.系统概述
智能鱼缸系统主要实现以下功能:
- 温度监控:
- 使用温度传感器实时监测鱼缸内的温度,数据通过OLED显示屏进行呈现;
- 当温度低于设定值时,系统会自动开启加热功能。
- 浑浊度监控:
- 通过透光率浑浊度传感器检测鱼缸水质的清澈程度,数据在OLED显示屏上显示;
- 当浑浊度超过设定阈值时,系统会启动换水装置进行清洁。
- 液位监控:
- 运用电阻式水位传感器检测鱼缸的水位高度;
- 当水位低于设定值时,系统自动启动加水功能。
- 定时喂食:
- 使用DS1302时钟芯片进行定时控制,并在OLED显示屏上显示当前时间;
- 到达预设时间后,系统自动进行喂食操作。
- WIFI远程控制:
- 使用ESP8266模块实现WIFI连接,将温度、液位、浑浊度数据上传至APP端;
- 用户可通过手机APP远程控制加热、加水和喂食操作。
- 按键设置与控制:
- 通过按键设定温度、液位、浑浊度的阈值;
- 按键也可用于手动控制加热、加水和喂食功能。
二.电路设计
电路设计采用Altium Designer进行绘制:
- 温度检测:
- 使用DS18B20温度传感器,并通过单总线与单片机通信。
- 数据显示:
- 采用0.96寸OLED12864显示屏,通过IIC总线与单片机连接。
- 时钟定时:
- 使用DS1302时钟芯片,通过SDA、SCK、DAT三个引脚与单片机连接。
- 按键控制:
- 独立按键用于设定阈值和控制系统功能,按键一端接地,另一端接单片机的GPIO口。
- 继电器控制:
- 通过继电器实现加热、加水和喂食功能,继电器的输出端与单片机的GPIO口连接。
- WIFI通信:
- 使用ESP8266-01S模块,将数据通过UART串口上传至服务器。
- 水位检测:
- 使用铜制水位感应板作为电阻式水位传感器,传感器的模拟输出端与单片机的模拟输入端连接。
- 浑浊度检测:
- 红外透光浑浊度传感器用于检测水质,通过模拟输出脚与单片机的模拟输入脚连接。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Beep_Led_Relay.h"
#include "Control_Report_To_Police.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Beep_init(); //PC15
Beep=0;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
TIM4_Init(300,7200);
KEY_Init(); //PA11 PA12 PA15
OLED_Init(); //OLED初始化
Relay_init(); //PB8
Adc_Init1(); //PB0 水位检测
Adc_Init3(); //PA5 浑浊度检测
while(DHT11_Init()){} //PA12
DS1302_GPIO_Init_Write_Time(); //PA0 CLK PA1 DATA PA4 RST
OLED_CLS(); //OLED清屏
OLED_ShowCN(32,2,0); //小常硬件
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
delay_ms(500);
OLED_CLS();
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
// /*******显示汉字**********/
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,12);
OLED_ShowCN(0+16,2,13);
OLED_ShowCN(64,0,14);
OLED_ShowCN(64+16,0,15);
OLED_ShowCN(64,2,18);
OLED_ShowCN(64+16,2,19);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-10
热门推荐
中国资管新规与理财产品法律框架的全面解析
揭秘指甲油的成分,它是由什么制成的?
雷军财富短暂超4100亿引中国首富之争
奇妙身体里的“糖”果陷阱:儿童糖尿病如何科学管理?
【科普】小元素,大健康—微量元素对人体有多重要?
三国领袖的管理智慧:曹操、刘备、孙权的用人之道
如何有效锻炼眼部肌肉以改善视力和缓解疲劳?
机械硬盘读写速度详解:一般多少?如何提升?
如何分工创业团队
提升免疫力的科学方法
北京⇌天津海教园通勤定制快巴即将开通,单程票价60元起
雅思7分是什么水平的备考规划
放屁多是什么原因呢 放屁多怎么改善
如何提高专注力:实用方法与策略全攻略
租车被刮蹭怎么办?如何有效处理租车刮蹭问题?
合成酵母基因组“拼图”完成
2024留学3+2毕业是什么学历 国家承认吗
升班马用错中超新全称,云南玉昆和大连英博官方社媒现乌龙
如何在评估房地产市场时做出准确分析?这种分析会受到哪些干扰?
包头购车补贴政策详解:多档优惠助力汽车消费
藿香正气液不能乱吃吗
楚考烈王九大历史贡献:从迁都寿春到邯郸之战
汽车如何正确更换雨刷器?这种更换方式有哪些需要注意的细节?
云南玉昆与大连英博:两年跃升中超,这是一段奇迹之旅
USB Type-C 如何决定充电方向
肿瘤病人化疗后吃什么恢复好
骑士vs开拓者战况:利拉德50分难阻开拓者败给骑士
非线性效应仿真实战:MATLAB与Simulink在光纤通信中的应用
作文中的口语化表达是什么意思?如何体现在书面写作中?
数码宝贝:雪人兽等了20多年 终于有了自己专属的完全体和究极体