автоматический полив на ардуино - НАУКА О БЛАГОУСТРОЙСТВЕ

автоматический полив на ардуино

Материалы:

* Ардуино (Uno, Nano или подобный)
* Модуль таймера (например, DS3231)
* Датчик влажности почвы (например, YL-69)
* Реле (5 В)
* Водяной насос (5 В или 12 В, в зависимости от мощности реле)
* Блок питания (5 В или 12 В, в зависимости от напряжения насоса)
* Трубка и фитинги для подачи воды

Схема:

Подключите компоненты следующим образом:

* Датчик влажности почвы: GND (земля) к GND Ардуино, VCC (питание) к 5 В Ардуино, DO (цифровой выход) к любому аналоговому входу Ардуино.
* Модуль таймера: GND к GND Ардуино, VCC к 5 В Ардуино, SCL (часовая линия) к A5 Ардуино, SDA (линия данных) к A4 Ардуино.
* Реле: GND к GND Ардуино, VCC к 5 В Ардуино, IN (управляющий вход) к любому цифровому выходу Ардуино.
* Насос: GND к GND источника питания, VCC к выходу VCC реле.

Код:

«`
#include
#include

#define SOIL_SENSOR_PIN A0
#define RELAY_PIN 7
#define MOISTURE_THRESHOLD 500 // Перенастраиваемый порог влажности

char daysOfTheWeek[7][12] = {«Sunday», «Monday», «Tuesday», «Wednesday», «Thursday», «Friday», «Saturday»};

DS3231 rtc;

void setup() {
Serial.begin(9600);
Wire.begin();
rtc.begin();
rtc.setDateTime(__DATE__, __TIME__);

pinMode(SOIL_SENSOR_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
// Получить текущее время
DateTime now = rtc.now();

// Запросить влажность почвы
int moistureLevel = analogRead(SOIL_SENSOR_PIN);

// Проверить, нуждается ли растение в поливе
bool needsWatering = moistureLevel < MOISTURE_THRESHOLD; // Проверить, разрешено ли поливать в текущее время bool isWateringAllowed = now.hour() >= 6 && now.hour() <= 22; // Полить растение, если оно нуждается в поливе и разрешено if (needsWatering && isWateringAllowed) { digitalWrite(RELAY_PIN, HIGH); Serial.println("Watering the plant..."); delay(60000); // Поливать в течение 60 секунд digitalWrite(RELAY_PIN, LOW); } else { Serial.println("No watering needed."); } // Отобразить текущие настройки Serial.print("Date: "); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print(", "); Serial.print(now.day()); Serial.print("/"); Serial.print(now.month()); Serial.print("/"); Serial.println(now.year()); Serial.print("Time: "); Serial.print(now.hour()); Serial.print(":"); Serial.print(now.minute()); Serial.println(":"); Serial.print(now.second()); Serial.println(); delay(60000); // Ждать 60 секунд перед следующим циклом } ``` Инструкции: 1. Соберите схему. 2. Загрузите код в Ардуино. 3. Установите в модуле таймера текущее время и дату. 4. Подключите систему подачи воды к насосу. 5. Разместите датчик влажности почвы во влажной почве. 6. Настройте порог влажности в коде при необходимости. Принцип работы: * Датчик влажности почвы измеряет уровень влажности почвы. * Ардуино считывает данные с датчика и определяет, нуждается ли растение в поливе. * Модуль таймера обеспечивает текущее время, которое используется для определения того, разрешено ли поливать растение в настоящее время. * Если необходимо полить, реле включается, активируя водяной насос. После определенного периода полива реле выключается.