Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Компоненты и материалы

Arduino UNO × 1
Ультразвуковой датчик HC-SR04 × 1
Модуль реле 1-канальный (5V, active-low) × 1
Энергосбергающая лампа 220В (или любая нагрузка) × 1
Блок питания 5В DC (для Arduino) × 1
Макетка, перемыжки, отвёртка, изолента/клеевой пистолет × 1 набор

Инструменты и софт

О проекте

Автоматическое включение/выключение света при прохождении через дверной проём. Ультразвуковой датчик фиксирует присутствие, реле коммутирует 220В нагрузку. Концепция «умный дом» за 15 минут.

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

⚠ Предостережение по безопасности

Проект работает с высоким напряжением 220В! Если вам нет 18 лет или нет опыта работы с AC — привлеките квалифицированного электрика. Можно отработать логику на низковольтной нагрузке (LED-лента 12В) — принцип тот же.

Подключение HC-SR04

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Подключение реле (active-low)

Проверка типа реле: подаёте 5V на IN — если реле не щёлкает, подаёте GND — щёлкает = active-low (как в проекте).

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Коммутация лампы 220В

Один провод лампы — напрямую в розетку. Второй — разрывается: один конец → NO (нормально открытый) реле, второй → COM реле. При HIGH на IN1 реле разомкнуто (лампа ВЫКЛ), при LOW — замкнуто (лампа ВКЛ).

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку
Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Полная схема

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Программная часть

Чтение ультразвука с median-фильтром

HC-SR04 периодически выдаёт выбросы (0 или завышенные значения). Библиотека NewPing имеет встроенный median-фильтр:

sonar.ping_median(7);       // 7 замеров, берём медиану
sonar.convert_cm(...);      // в см

Также 0 означает «нет объекта в диапазоне» — заменяем на MAX_DISTANCE.

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Детекция прохода

Порог critical_distance_cms ≈ половина ширины двери. Логика: как только расстояние < порога — ждём, пока объект уйдёт (> порога), затем инвертируем состояние реле. Стояние на месте не переключает свет.

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Полный скетч (Smart House Light)

#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
#define RELAY_LINE1_PIN 8

#include "NewPing.h"
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

unsigned int critical_distance_cms = 50; // настройте под дверь
bool state = 0; // 0 = выкл, 1 = вкл

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_LINE1_PIN, OUTPUT);
  digitalWrite(RELAY_LINE1_PIN, HIGH); // реле active-low → HIGH = выкл
}

void loop() {
  delay(50);
  unsigned int distance = readDistance();
  Serial.print("Ultrasonic: "); Serial.print(distance); Serial.println("cm");

  if (distance < critical_distance_cms) {
    while (distance < critical_distance_cms) {
      distance = readDistance();
      delay(5);
    }
    state = !state;
    if (state) {
      Serial.println("Door Open!");
      digitalWrite(RELAY_LINE1_PIN, LOW); // вкл
    } else {
      Serial.println("Door Closed!");
      digitalWrite(RELAY_LINE1_PIN, HIGH); // выкл
    }
  }
}

unsigned int readDistance() {
  unsigned int distance = sonar.convert_cm(sonar.ping_median(7));
  if (distance == 0) distance = MAX_DISTANCE;
  return distance;
}

Тестовый скетч (только вывод расстояния)

#include 
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() { Serial.begin(115200); }
void loop() {
  delay(50);
  Serial.print("Ping: "); Serial.print(sonar.ping_cm()); Serial.println("cm");
}

Ресурсы

Схемы

Умное освещение на Arduino UNO и реле: автоматическое управление по ультразвуку

Производственный процесс

  1. TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
  2. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  3. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  4. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  5. Автоматическая система полива растений на Arduino — уходи в отпуск спокойно
  6. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  7. Умные самозавязывающиеся туфли с встроенной сборкой энергии
  8. Измерение расстояния в реальном времени: Ардуино-сонар с визуализацией в Processing
  9. Празднуем со светом и звуком: DIY-проект «С днём рождения» на Arduino
  10. Бесшовное управление яркостью светодиодов с помощью Bolt IoT и Arduino UNO