基于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
热门推荐
直播带货营销策略全解析:从目标受众到品牌建设
创新药变局将至;百济神州市值首超恒瑞医药背后 | 氨基一周
一文读懂美国LEED绿色建筑认证
飞机上可以使用蓝牙耳机吗?哪些航空公司的机上娱乐支持蓝牙连线?
肿瘤介入治疗:科技之光,照亮癌症患者的康复之路
液晶显示器图像偏移怎么调整?右移问题如何解决?
孕早期吃什么最好?这些营养食物助力胎儿健康发育
34种常见厨房调料用法大全,今天一次性告诉你!
重庆和深圳哪个发达?
数字化气象服务助力新疆粮食产量跃居全国第一
风寒感冒的三个阶段及应对方法
2025年日本祝日安排:3连休减少,大型连休可期
一份意面等于几碗米饭?减肥者要看看!
家庭教育的情感智慧:如何管理情绪,促进家庭和谐
如何培养会感恩的孩子?4步帮他养成好习惯
如何维修不加热的破壁豆浆机(解决破壁豆浆机不加热问题的方法及技巧)
合伙饭店合同的法律实务与风险控制
如何处理车辆漏油问题?漏油对车辆安全有何潜在风险?
环境检测员是干什么的
蓝牙大音箱连接方式详解:设备兼容性检查与注意事项
更年期失眠点亮睡眠之光的实用指南
智慧体育屏如何通过高清播放技术改善观赛质量
我国最美的6个溶洞,不仅漂亮,还都是5A级景区,你去过几个呢?
高血压标准值及症状:九成患者原因不明,定期体检很重要
创新大气网站设计方案提升用户体验与视觉冲击力的探索与实践
肝阳上亢吃什么食物好
SSH连接虚拟机乱码问题的多种解决方案
三亚旅行结婚花费详解:一场浪漫婚礼需要多少预算?
保養品過期可否繼續使用?揭密你不知道的秘密!
骨松治疗 5 连问:初始抗骨松药怎么选?联合、序贯怎么做?