Автоматизированный контроль параметров аквариума с:
Измерением температуры воды
Контролем уровня 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 для удаленного контроля
Установите дозатор жидких удобрений
Интегрируйте датчик уровня воды
Готов к запуску! Для морского аквариума добавьте датчик солености. 🐠🌡