基于 Arduino 的鱼缸水质检测控制系统设计

一、系统总体设计

本系统通过多传感器实时采集鱼缸水质参数(pH 值、温度、溶解氧、浊度),经 Arduino 主控芯片处理后,驱动执行模块自动调节水质,并通过显示模块实时展示数据。系统具备阈值报警、自动换水、温度调节、增氧等功能,适用于家庭或小型水族箱的水质智能管理。

二、硬件设计

2.1 主控芯片选型

  • 芯片型号:Arduino Uno R3
  • 核心功能:提供 14 路数字引脚、6 路模拟引脚,支持串口通信及外接扩展模块,适合低成本物联网项目开发。

2.2 功能模块选型

模块类型 型号 / 参数 功能描述
pH 传感器 JY60 型 pH 模块(0-14pH) 检测水体酸碱度
温度传感器 DS18B20 温度模块 测量水温(-55℃~125℃)
溶解氧(DO)传感器 DO-B1 型溶解氧模块 检测溶解氧浓度(0-20mg/L)
浊度传感器 HC-SR04(搭配浊度杯) 通过红外对管检测水体浑浊度
显示模块 LCD1602(I2C 接口) 实时显示水质参数
执行模块 继电器模块(3 路) 控制水泵(换水)、加热器、增氧泵
电源模块 5V/2A 直流电源 为系统供电

2.3 接线示意图

Arduino Uno       传感器/模块          接线说明
---------------------------------------------------
5V               pH模块/VCC          供电
GND              pH模块/GND          接地
A0               pH模块/AO           模拟信号输出
2                DS18B20/DQ          单总线通信
A1               DO模块/AO           模拟信号输出
A2               浊度模块/AO         模拟信号输出
SDA              LCD1602/SDA         I2C数据引脚
SCL              LCD1602/SCL         I2C时钟引脚
3                继电器1/IN1         控制水泵
4                继电器2/IN2         控制加热器
5                继电器3/IN3         控制增氧泵

三、软件设计

3.1 软件流程图

基于 Arduino 的鱼缸水质检测控制系统设计_第1张图片

3.2 核心代码(Arduino)

#include 
#include 
#include 
#include 

// 定义传感器引脚
#define pH_PIN A0
#define do_PIN A1
#define turbidity_PIN A2
#define ONE_WIRE_BUS 2

// 初始化模块
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C地址0x27,16列2行

// 阈值设置
float pH_min = 6.5, pH_max = 7.5;    // 适宜pH范围
float temp_min = 24, temp_max = 28;  // 适宜水温(℃)
float do_min = 5.0;                  // 溶解氧下限(mg/L)
int turbidity_max = 100;             // 浊度上限(模拟值)

void setup() {
  Serial.begin(9600);
  sensors.begin();
  lcd.init();
  lcd.backlight();
  pinMode(3, OUTPUT); // 水泵
  pinMode(4, OUTPUT); // 加热器
  pinMode(5, OUTPUT); // 增氧泵
}

void loop() {
  // 读取传感器数据
  float pH = readpH();
  float temp = readTemperature();
  float do_value = readDO();
  int turbidity = analogRead(turbidity_PIN);

  // 数据显示
  lcd.setCursor(0, 0);
  lcd.print("pH: "); lcd.print(pH, 1);
  lcd.print(" Temp: "); lcd.print(temp, 1);
  lcd.setCursor(0, 1);
  lcd.print("DO: "); lcd.print(do_value, 1);
  lcd.print(" Turb: "); lcd.print(turbidity);

  // 执行器控制
  controlActuators(pH, temp, do_value, turbidity);
  delay(5000); // 每5秒检测一次
}

// pH值校准函数(示例,需实际校准)
float readpH() {
  float voltage = analogRead(pH_PIN) * (5.0 / 1023.0);
  return 7.0 + (voltage - 2.5) / 0.1; // 简化校准模型
}

// 温度读取函数
float readTemperature() {
  sensors.requestTemperatures();
  return sensors.getTempCByIndex(0);
}

// 溶解氧读取函数(示例,需根据模块校准)
float readDO() {
  return analogRead(do_PIN) * 0.02; // 假设1023对应20mg/L
}

// 执行器控制逻辑
void controlActuators(float pH, float temp, float do_val, int turb) {
  // 水泵控制(浊度超标换水)
  digitalWrite(3, turb > turbidity_max ? HIGH : LOW);
  
  // 加热器控制
  digitalWrite(4, temp < temp_min ? HIGH : LOW);
  
  // 增氧泵控制(溶解氧不足或pH异常)
  digitalWrite(5, (do_val < do_min || pH < pH_min || pH > pH_max) ? HIGH : LOW);
}

四、系统功能与扩展

  1. 实时监测:通过 LCD 实时显示 4 项水质参数。
  2. 自动调节:根据阈值自动控制换水、加热、增氧。
  3. 扩展接口:可外接 WiFi 模块(如 ESP8266)实现远程监控,或添加报警模块(蜂鸣器 / 短信通知)。

本设计提供了低成本、易扩展的鱼缸水质管理方案,适用于家庭水族箱或小型水产养殖场景,可根据实际需求调整传感器类型和控制逻辑。

注:本设计如有疑问需要解惑可直接私信本人,看我个人简介

你可能感兴趣的:(基于 Arduino 的鱼缸水质检测控制系统设计)