Автоматизированный контроль параметров аквариума с:
Измерением температуры воды
Контролем уровня pH
Управлением подсветкой по расписанию
Автоматической подачей корма
Оповещением о критических показателях
Необходимые компоненты:
Arduino Nano
Датчик температуры воды DS18B20 (водонепроницаемый)
Модуль pH-метра
Релейный модуль (2 канала)
Сервопривод для кормушки
Светодиодная лента 12V (синяя/белая)
LCD дисплей 16x2 + I2C
Модуль реального времени DS3231
Код (основные функции):
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "RTClib.h"
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS3231 rtc;
Servo feederServo;
const int phPin = A0;
const int lightRelay = 3;
const int feederPin = 4;
void setup() {
Serial.begin(9600);
sensors.begin();
lcd.init();
lcd.backlight();
rtc.begin();
feederServo.attach(feederPin);
pinMode(lightRelay, OUTPUT);
// Установка времени при первом запуске
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
// Чтение данных
sensors.requestTemperatures();
float waterTemp = sensors.getTempCByIndex(0);
int phValue = analogRead(phPin);
float ph = map(phValue, 0, 1023, 0, 14);
DateTime now = rtc.now();
// Управление освещением
controlLighting(now.hour());
// Управление кормлением
if (now.hour() == 8 && now.minute() == 0) {
feedFish();
}
// Вывод на LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: " + String(waterTemp) + "C");
lcd.setCursor(0, 1);
lcd.print("pH: " + String(ph));
// Проверка критических значений
if (waterTemp > 28 || ph < 6.5) {
alert();
}
delay(60000); // Проверка каждую минуту
}
void controlLighting(int hour) {
if (hour >= 8 && hour < 20) {
digitalWrite(lightRelay, HIGH);
} else {
digitalWrite(lightRelay, LOW);
}
}
void feedFish() {
for (int i = 0; i < 3; i++) {
feederServo.write(90);
delay(500);
feederServo.write(0);
delay(500);
}
}
void alert() {
// Здесь можно добавить звуковую сигнализацию
// или отправку уведомления
lcd.setCursor(12, 0);
lcd.print("ALERT!");
}Ключевые функции:
Температурный контроль
Оптимальный диапазон: 24-28°C
Превышение → сигнал тревоги
Баланс pH
Идеальный уровень: 6.5-7.5
Критическое значение → уведомление
Автоматическое освещение
С 8:00 до 20:00 → день
Ночью → синяя подсветка
Кормление
Точно в 8:00
3 порции с паузой
Локальный мониторинг
Все параметры на LCD
Возможность подключения к Wi-Fi
Схема подключения:
| Компонент | Arduino |
|---|---|
| DS18B20 | Pin 2 |
| pH-метр | A0 |
| Реле света | Pin 3 |
| Сервопривод | Pin 4 |
| LCD I2C | SDA (A4), SCL (A5) |
| RTC модуль | SDA (A4), SCL (A5) |
Доработки:
Добавьте Wi-Fi для удаленного контроля
Установите дозатор жидких удобрений
Интегрируйте датчик уровня воды
Готов к запуску! Для морского аквариума добавьте датчик солености. 🐠🌡


