0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32项目分享:智能鱼缸/水族箱/水产养殖系统

机智云 ? 2025-07-03 18:24 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

项目成品图片:


de16abfa-57f7-11f0-9cf1-92fbcf53809c.jpg


01

项目简介


1.功能详解


STM32智能鱼缸/水族箱/水产养殖系统

功能如下:


可检测温度,水位,以及TDS水质,同时将数据显示到OLED屏幕上

当温度过高时,继电器1吸合散热,温度过低时继电器2吸合加热。异常下蜂鸣器触发报警

当水位过低时,继电器3工作,模拟进水操作。当水位过高时继电器4工作放水。

当TDS水质过高时,继电器3和4相继工作模拟换水。

可计时喂食时间,倒计时结束后,舵机转动模拟喂食操作。

阈值可通过按键调节

连接手机APP,远程查看数据信息,控制LED开关,阈值调节等



2.材料清单

STM32F103C8T6单片机

OLED 屏幕

DS18B20温度传感器

ESP8266-01S WiFi模块

TDS电导率传感器

超声波传感器

继电器

舵机

大功率LED灯模块

有源蜂鸣器



02


原理图设计


de3314f2-57f7-11f0-9cf1-92fbcf53809c.png


03


PCB硬件设计


PCB图

de575b50-57f7-11f0-9cf1-92fbcf53809c.pngde683ec0-57f7-11f0-9cf1-92fbcf53809c.png


04

程序设计


#include"stm32f10x.h"
#include"sys.h"#include"led.h"#include"bmp.h"#include"oled.h"#include"adc.h"#include"ds18b20.h"#include"timer.h"#include"delay.h"#include"usart.h"#include"usart2.h"#include"cJSON.h"#include"sr04.h"
intLED_STATUS =0;intFAN_STATUS =0;
charWIFIName[] ="ESP8266-WIFI";charWIFIpwd[] ="12345678";
inttemp_up =35,temp_down =15; // 温度上下限inttds_up =90,tds_down =0; // 水质上下限intlevel_up =5,level_down =60; // 水位上下限
intmaxHighLevel =5; // 换水最高水位
intfeedTime =30; // 喂食时间intcacheFeedTime =30; // 缓存喂食时间 intsendDataTime =3; // 数据发送时间intcacheSendTime =3; // 缓存数据发送时间

#defineLED PAout(2) // LED#defineBUZZ PAout(4) // 蜂鸣器
#defineJD1PAout(8) // 继电器1-抽水#defineJD2 PAout(5)// 继电器2-放水#defineJD3 PAout(6)// 继电器3-加热#defineJD4 PAout(7) // 继电器4-降温
#defineKEY_EDIT PBin(13) // 设置按钮#defineKEY_NEXT PBin(14) // 切换按钮#defineKEY_SWIT PBin(15) // 下一页按钮#defineKEY_ADD PAin(11) // 加一按钮#defineKEY_DEC PBin(12) // 减一按钮
#defineTEST PCout(13)
#defineSG90_CLOSE 175 // 舵机关闭#defineSG90_OPEN 185 // 舵机打开
// 上位机数据处理intconnectFlag =0; // 连接成功标志位inthandleFlag =0; // 判断上位机发送的数据需要处理哪一个intsendFlag =0; // 定时器时间到了该位置一表示发送数据intinitFlag =0; // ESP8266初始化成功标志位intparamFlag =1; // 是否开启参数检查intchangeWaterFlag =0; // 换水标志位
intfeedFlag =0; // 是否喂食intfeedEndFlag =0; // 喂食结束

unsignedchartemp =0,level =0;// 温度,湿度
voidparamCheck(void); // 检查参数是否超过voidhandleData(void); // 上位机数据处理voidco2Process(void); // CO2数据处理voidDisplayUI(void); // 固定页面UI渲染voidparamEdit(void); // 阈值参数设置voideditUiDisplay(intpageIndex );// 设置页面UI初始化voidrunAlter(intcursor,intcount);// 执行参数修改
externchar*USARTx_RX_BUF; // 串口数据缓存externfloatTDS_value;
intmain(void){inttime;delay_init();LED_Init(); OLED_Init();Adc_Init();DS18B20_Init(); // 温度初始化HC_SR04Config(); // 超声波初始化 uart_init(115200); timeInit(4999,7199); // 72M 0.1ms 500ms 串口数据初始化、timeSendInit(9999,7199); // 72m 0.1ms 1s 发送数据定时 timePwmInit(199,7199); // PWM-> CH3->PA2 CH4->PA3 (调脉宽)TIM_SetCompare4(TIM2,100);TIM_SetCompare4(TIM2,SG90_CLOSE);// 关闭喂食OLED_ShowChLength(38,16,47,3); // 显示启动中ESP8266Init(WIFIName,WIFIpwd);OLED_Clear();while(1){DisplayUI();if( time++ >5){time =0;temp = getTemperture(); // 获取温度delay_ms(1000);delay_ms(1000);temp = getTemperture(); // 获取温度TDS_Value_Conversion(); // 获取TDS水质值}level = Getlength(); // 获取水位OLED_ShowNum(45,0,temp,2,16,1);OLED_ShowNum(45,16,level,3,16,1);OLED_ShowNum(45,32,TDS_value,3,16,1);OLED_ShowNum(76,48,cacheFeedTime,3,16,1);OLED_Refresh();
// 开始喂食 if( feedFlag ){TIM_SetCompare4(TIM2,SG90_OPEN);// 等待喂食结束if( feedEndFlag ){feedFlag =0;feedEndFlag =0; feedTime = cacheFeedTime;TIM_SetCompare4(TIM2,SG90_CLOSE);}}
// 进入设置页面if( !KEY_EDIT ){ while( !KEY_EDIT );// 防抖paramEdit(); // 进入参数设置// 刷新参数提示按钮(每次进入设置以后出来这个按钮没有,需要更新一下)if( !paramFlag )OLED_ShowChLength(105,2,62,1);elseOLED_ShowString(105,2," ",16,1);}
// 切换参数提醒设置if( !KEY_NEXT ){ while( !KEY_NEXT );paramFlag = !paramFlag; if( !paramFlag ){ // 关闭提示JD2 =0;JD3 =0;JD4 =0;JD1 =0;BUZZ =0;OLED_ShowChLength(105,2,62,1);}else{OLED_ShowString(105,2," ",16,1);} OLED_Refresh();}
// 上位机更改数据if( handleFlag )handleData();
// 3s上传一次数据if( sendFlag &&1){ ESP8266Pub(temp,level,TDS_value);sendFlag =0; // 重置标志位sendDataTime = cacheSendTime;// 刷新发送时间}// 检查参数是否超出范围(开启了参数检查)if( paramFlag )paramCheck();
delay_ms(100);}}


05

实验效果


de7ffe5c-57f7-11f0-9cf1-92fbcf53809c.jpgde959ec4-57f7-11f0-9cf1-92fbcf53809c.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    120

    文章

    6290

    浏览量

    228455
  • STM32
    +关注

    关注

    2295

    文章

    11034

    浏览量

    365922
  • 养殖业
    +关注

    关注

    0

    文章

    90

    浏览量

    1923
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于STM32智能水产养殖系统电路+代码+论文实例打包下载

    基于STM32智能水产养殖系统电路+代码+论文实例打包,推荐下载!
    发表于 05-29 21:40

    基于单片机的智能水族箱控制系统设计

    今年的毕业设计题目就是《基于单片机的智能水族箱控制系统设计》,目前只会单片机开发板上自带的时钟显示和温度芯片如何与单片机相连去控制温度,其他的一点头绪都没有,比如继电器如何如氧气泵和加热棒相连,又如何用单片机去控制,这些都没整明
    发表于 05-04 13:27

    【云智易申请】基于stm32智能水族箱

    项目中,谢谢!项目描述:基于stm32智能水族箱设有两种模式:1、自动模式2、人工模式。两种模式可以通过按键或者手机终端切换。全自动模式
    发表于 07-22 13:30

    智能鱼缸解决方案

    解决方案/智能鱼缸设计开发/智能鱼缸设计方案/智能鱼缸定制方案/
    发表于 06-02 15:12

    UVC-LED在水族箱中的应用

    ``UVC-LED广泛应用生活家电领域中,特别是在水处理领域上表现的比较抢眼。我们为了验证抑菌这个功能,做了一套实验。准备物:2个水族箱,一个有UVC-LED功能的过流模组,一个无LED功能的过流
    发表于 02-11 13:43

    基于ARM的智能水产养殖系统设计

    题目: 智能水产养殖系统关键词:STM32智能控制;数据采集;无线通信摘要在
    发表于 07-26 06:41

    DIY水族箱控制器

    描述水族箱控制器水族馆控制器。4 个受控照明通道和两个继电器通道。通过互联网管理,以及绘画 - 罗斯维特,日落。
    发表于 08-03 07:35

    KW41Z如何简化水族箱系统控制

    KW41Z帮助简化水族箱系统控制
    发表于 12-14 06:56

    它凭什么号称“世界上最先进的智能水族箱照明系统”?

    颜色,似乎看起来缺少了一些智能性。 而这款在Kickstarter上开始众筹的Flat One智能水族箱照明设备,就号称是世界上最先进的智能水族箱
    的头像 发表于 04-03 15:55 ?7086次阅读

    自制简易的水族箱温控器

    水族箱温控器主要用于夏天水族箱散热风扇和电子制冷温控,控温的范围设计为23~29℃,实测温精度小于正负0.5℃,很适合DIY水族散热风扇和电子冷水机的朋友制作参考。由于电路很简单,相信稍为有电子制作经验的朋友都能按图顺利制作。
    的头像 发表于 02-14 17:47 ?1.2w次阅读
    自制简易的<b class='flag-5'>水族箱</b>温控器

    水族箱控制器开源项目

    电子发烧友网站提供《水族箱控制器开源项目.zip》资料免费下载
    发表于 07-20 17:01 ?1次下载
    <b class='flag-5'>水族箱</b>控制器开源<b class='flag-5'>项目</b>

    基于Atlas Scientific的水族箱蒸发补水系统

    。在这个项目中,我们将制作这样一个系统。优点有助于维持稳定的水化学性质,例如 pH 值和盐度。设置完成后,除非需要维护,否则无需人工干预。节省时间。第 1 步:评估水族箱的蒸发率水族箱
    发表于 12-16 15:37 ?0次下载

    智能水产养殖系统价格

    现代水产养殖业的发展向着规模化、高度集约化、高效生态安全的方向发展,传统的养殖模式已无法满足现代水产养殖业的发展要求。如今已经有不少
    的头像 发表于 03-15 15:30 ?1292次阅读

    水族箱中的TDS测量开源分享

    电子发烧友网站提供《水族箱中的TDS测量开源分享.zip》资料免费下载
    发表于 06-15 10:53 ?0次下载
    <b class='flag-5'>水族箱</b>中的TDS测量开源分享

    STM32项目分享:智能家居(机智云)系统

    STM32项目分享:智能家居(机智云)系统
    的头像 发表于 07-28 08:10 ?3441次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b>家居(机智云)<b class='flag-5'>系统</b>