当前位置: 首页 > news >正文

【物联网毕设】基于Arduino与树莓派的智能鱼缸系统设计与实现

1. 项目背景与整体设计

养鱼爱好者都知道,维持鱼缸环境稳定是个技术活。水温忽高忽低、水中含氧量不足、水位不稳定等问题,都可能让心爱的观赏鱼遭殃。传统的人工监测方式不仅费时费力,还容易因疏忽造成损失。这正是我选择智能鱼缸系统作为毕业设计的原因——用物联网技术解决实际问题。

整个系统的设计思路很明确:用Arduino作为"感官系统",负责采集鱼缸环境数据;用树莓派作为"大脑",处理数据并做出决策;最后通过微信小程序让用户随时查看鱼缸状态。这种分层设计既保证了系统响应速度,又实现了远程监控功能。

硬件配置上,我选择了性价比最高的方案:

  • Arduino UNO开发板(克隆版,价格只有原版的1/3)
  • DS18B20防水温度传感器
  • 低成本水位传感器
  • 电位器模拟溶解氧传感器(真品要3000+,学生党伤不起)
  • 树莓派3B作为主控制器
  • 四个继电器模块控制各类水泵

2. 硬件搭建与传感器连接

2.1 温度监测模块

DS18B20防水温度传感器是我的首选,它有三个突出优点:

  1. 防水性能好,可以直接浸入水中
  2. 测量精度达±0.5℃
  3. 采用单总线协议,节省IO口资源

接线时有个坑要注意:DS18B20需要上拉电阻。我直接买了配套模块省事,否则得自己接个4.7kΩ电阻。接线方式很简单:

  • VCC接5V
  • GND接地
  • DATA接数字引脚2(需在代码中定义)

实际测试时发现个有趣现象:加热棒工作时会干扰传感器读数。解决方法是在加热棒和传感器之间加个隔板,减少热传导影响。代码中设置了25℃的阈值,低于这个值就启动加热棒。

2.2 水位控制模块

水位传感器我选了最便宜的型号(学生预算有限),但使用时发现两个问题:

  1. 长期通电会导致探针腐蚀
  2. 读数波动较大(±50的误差)

我的解决方案很巧妙:

  • 通过数字引脚7控制传感器供电,只在读数时通电
  • 在代码中加入滤波算法,取10次读数的平均值
  • 设置550-640的阈值区间防止继电器频繁动作

水位控制逻辑分为三档:

  1. 低于550(水位过低):启动注水泵
  2. 550-640(正常范围):水泵全停
  3. 高于640(水位过高):启动抽水泵

2.3 溶解氧模拟模块

真正的溶解氧传感器贵得离谱(3000+),和导师商量后决定用电位器模拟。虽然不够精确,但作为毕业设计演示完全够用。关键是要做好标定:

  • 电位器旋钮最小位置对应0mg/L
  • 最大位置对应10mg/L
  • 5mg/L作为阈值控制充氧泵

接线时注意:

  • 电位器中间引脚接模拟输入A1
  • 两侧引脚分别接5V和GND
  • 使用map()函数将模拟值映射到氧浓度值

3. 树莓派数据处理中心

3.1 硬件连接与通信

Arduino和树莓派通过USB连接是最简单的方案,但要注意供电问题:

  1. 树莓派单独使用5V/2.5A电源
  2. Arduino外接独立电源(树莓派USB供电不足)
  3. 所有执行机构(水泵/加热棒)单独供电

通信协议选择Serial,波特率设为9600。我在代码中添加了特殊标识符来区分不同传感器数据:

  • "T"开头表示温度
  • "W"开头表示水位
  • "O"开头表示氧浓度

3.2 数据库设计与Web服务

选用MySQL存储历史数据,表结构设计如下:

字段名类型说明
idINT自增主键
timestampDATETIME记录时间
tempFLOAT水温(℃)
water_levelINT水位值
oxygenINT氧浓度(mg/L)

用Django搭建Web服务提供两个API接口:

  1. POST接口:接收Arduino上传的数据
  2. GET接口:为小程序提供最新数据

关键代码片段:

# views.py from django.http import JsonResponse from .models import SensorData def post_data(request): if request.method == 'POST': temp = request.POST.get('temp') level = request.POST.get('level') oxygen = request.POST.get('oxygen') new_data = SensorData.objects.create( temp=temp, water_level=level, oxygen=oxygen ) return JsonResponse({'status':'success'}) def get_data(request): latest = SensorData.objects.last() return JsonResponse({ 'temp': latest.temp, 'level': latest.water_level, 'oxygen': latest.oxygen })

4. 微信小程序开发

小程序界面设计遵循KISS原则(Keep It Simple, Stupid):

  • 顶部显示当前水温、水位、氧浓度
  • 中间区域用仪表盘展示数据趋势
  • 底部预留手动控制按钮(后续扩展)

关键实现步骤:

  1. 注册微信开发者账号
  2. 使用wx.request调用树莓派API
  3. 每30秒自动刷新数据
  4. 使用ECharts-for-WeChat实现数据可视化

遇到的最大坑是HTTPS问题:微信要求所有网络请求必须使用HTTPS。我的解决方案是在树莓派上配置Nginx反向代理,并使用Let's Encrypt免费证书。

5. 系统优化与问题排查

实际运行中发现几个典型问题:

供电不足问题

  • 现象:多个水泵同时工作时系统重启
  • 原因:Arduino的5V引脚输出电流有限
  • 解决:为每个执行机构单独配置5V电源

数据丢包问题

  • 现象:树莓派偶尔收不到Arduino数据
  • 原因:USB接触不良
  • 解决:更换高质量USB线并加固接口

继电器误动作

  • 现象:水泵无故启动
  • 原因:电磁干扰导致
  • 解决:在继电器线圈两端并联续流二极管

6. 项目扩展与改进方向

虽然基本功能已经实现,但还有很大优化空间:

  1. 增加摄像头监控

    • 使用树莓派官方摄像头模块
    • 定时拍摄鱼缸照片
    • 通过小程序查看实时画面
  2. 改进溶解氧检测

    • 使用光学法传感器(价格适中)
    • 加入温度补偿算法
    • 定期自动校准
  3. 添加喂食功能

    • 舵机控制的自动喂食器
    • 定时投喂或远程手动控制
    • 记录喂食日志

这个项目让我深刻体会到物联网开发的乐趣——从硬件选型到代码编写,从通信协议到界面设计,每个环节都充满挑战。最开心的时刻莫过于看到系统稳定运行,所有传感器数据准确显示在小程序上。如果你也在做类似项目,建议先从核心功能入手,再逐步扩展,这样更容易获得成就感。

http://www.jsqmd.com/news/501548/

相关文章:

  • 2026年陕西建材采购风向:这家本土企业在UHPC及装饰线条领域为何备受关注? - 深度智识库
  • 四大推理框架实战评测:SGLang、Ollama、vLLM与LLaMA.cpp的性能对决与场景适配指南
  • 树莓派4B+PCA9685模块控制机械臂:从硬件连接到Python代码调试全流程
  • 礼品卡换现金无忧!分期乐礼品卡回收就选团团收 - 团团收购物卡回收
  • 美团购物卡套装在哪里回收划算便捷? - 抖抖收
  • FLUX小红书极致真实V2图像生成工具Dify平台集成指南
  • 联想服务器RAID5阵列配置全流程:从BIOS设置到硬盘选择避坑指南
  • RTMP高清推流直播/视频转码EasyDSS如何凭借3大核心能力领跑无人机RTMP直播赛道
  • 阿里安全审核模型Qwen3Guard实测:多语言内容安全检测快速上手
  • 蓝桥杯软件类竞赛:从零基础到获奖的算法通关攻略
  • 03-C#.Net-特性-面试题
  • 构建千万级用户的高并发抽奖系统架构
  • 美团面试:为什么要用分布式缓存?本地缓存呢?多级缓存一致性如何保证?
  • 深入解析POE交换机:AF与AT标准的技术差异与应用场景
  • 2026七氟丙烷选购攻略:口碑厂商不容错过!,氧气乙炔/氮气/二氧化碳/氩气/混合气/标准气,七氟丙烷生产厂家怎么选择 - 品牌推荐师
  • 基于POI的Luckysheet数据导出优化:解决空指针与格式自动转换问题
  • 揭秘分期乐礼品卡回收流程,团团收全攻略! - 团团收购物卡回收
  • QMCDecode:破解QQ音乐加密格式实现音频自由的高效工具
  • 蓉城筑家,匠心致远——里林设计,解锁成都装修省心新方式 - 推荐官
  • 从伏秒平衡到占空比:BUCK/BOOST电路工作原理图解指南
  • 供水设备多少钱,上海海澄水务产品价格贵吗? - 工业推荐榜
  • TypeScript的override关键字(v4.3+):显式标记方法重写
  • 如何解放双手?OnmyojiAutoScript自动化工具让游戏效率提升300%
  • 【实战指南】STM32F411CEU6 板载 LED 呼吸灯效果实现 —— 从入门到进阶
  • 2026年全国控制柜来样定制厂家排名,这些企业不容错过 - myqiye
  • CVX工具箱安装避坑指南:从下载到运行测试代码的全流程
  • 优化SFTP性能:深入理解MaxSessions与MaxStartups配置
  • 2026 年 3 月 GEO 优化公司榜单:AI 赋能企业增长首选名单 - 速递信息
  • 2026年全国口碑好的小铁自助台球加盟推荐,详细介绍与开店指导揭秘 - mypinpai
  • ATK-IMU601上位机软件数据不更新?可能是排针接反了!详细焊接与接线避坑指南