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

Умный дом на Arduino: схема, код и руководство по сборке

Проект системы умного дома на Arduino

Автоматизация (умный дом, промышленная автоматизация) сегодня важна как никогда — она позволяет выполнять задачи с минимальным участием человека и максимальной эффективностью. Дома становятся умнее: вместо обычных выключателей используют дистанционное управление. Смартфоны стали неотъемлемой частью жизни — ими можно управлять бытовыми приборами в один клик. Контроллеры и модули связи обеспечивают удаленное управление. В этом проекте используем Arduino UNO и Bluetooth-модуль HC-05 для управления смартфоном. Особенно полезно для людей с ограниченными возможностями.

Необходимые компоненты

Arduino UNO

Arduino — открытая платформа для электроники. Легко программируется, стирается и перепрограммируется. Существует много плат: UNO, Nano, Mega, LilyPad и др. В проекте используем Arduino UNO с микроконтроллером ATmega328 (16 МГц). Поддерживает USART, I2C, SPI. Программируется через Arduino IDE по micro-USB. На борту загрузчик — не нужен внешний программатор. Языки: C/C++. IDE разделяет код на setup() (однократная инициализация) и loop() (циклическое выполнение).

6 аналоговых входов (A0–A5, 10 бит), 14 цифровых GPIO (6 с PWM). Питание: USB (5 В) или DC-djack (7–20 В). Стабилизатор 3,3 В для слаботочных устройств. USART: 0 (Rx), 1 (Tx). I2C: SDA (A4), SCL (A5). SPI: SS (10), MOSI (11), MISO (12), SCK (13). Идеально для умного дома.

Bluetooth-модуль HC-05

Беспроводной последовательный интерфейс для связи микроконтроллеров, смартфонов, ПК, датчиков. Дальность < 100 м (зависит от условий). Протокол USART. Работает в режимах Master и Slave (по умолчанию Slave). Скорости: 9600, 19200, 38400, 57600, 115200, 230400, 460800 бод. Настройка через AT-команды (перевод вывода KEY в HIGH).

Основные AT-команды:

Распиновка HC-05
Вывод Описание
EN/KEYHIGH — командный режим, LOW — режим данных (по умолчанию)
VCC3,3–5 В
GNDЗемля
TXDПередача последовательных данных
RXDПрием последовательных данных
STATEСтатус соединения

В проекте HC-05 обеспечивает последовательную связь Arduino UNO ↔ смартфон. Подключение: TXD HC-05 → RX (0) Arduino, RXD HC-05 → TX (1) Arduino. EN/KEY = LOW. Включаем Bluetooth на телефоне, ищем «HC-05», пароль «0000» или «1234». Встроенный красный светодиод: быстрое мигание — ожидание, медленное — подключено.

Применение HC-05

Реле

Электромагнитный ключ: малый ток управляет большими цепями. Катушка с сердечником создает магнитное поле, замыкающее/размыкающее силовые контакты. Раньше — в телеграфах и АТС, потом — в компьютерах для логики. Применение: управление двигателями, авто, промышленность, умный дом.

В проекте электромагнитное реле управляет бытовыми приборами (лампы, вентиляторы, нагрузка 220 В) по сигналу 5 В от Arduino. 6 выводов: VCC, GND — питание катушки; Data — управляющий сигнал (1/0); NC, COM, NO — силовые контакты.

Распиновка реле
Вывод Описание
VCC5 В
GNDЗемля
Data«1» или «0» от микроконтроллера
NCНормально замкнутый контакт
COMОбщий контакт
NOНормально разомкнутый контакт

Применение реле: безопасная логика, управление высоковольтными цепями слабым сигналом, защита, подстанции и сети.

Схема подключения

Умный дом на Arduino: схема, код и руководство по сборке

Bluetooth подключен последовательно к Arduino (TXD→RX, RXD→TX). 4 реле для 4 приборов (можно изменить количество). Данные пины реле на выводы 8, 9, 10, 11 Arduino. Команды с смартфона через приложение «Bluetooth Terminal HC-05» приходят по Bluetooth → Arduino → действие.

Принцип работы

Собираем схему. Лампы к сети 220 В через реле. Реле питание 5 В от Arduino. Data-пины реле на 8, 9, 10, 11. HC-05 по схеме. Подаем питание на Arduino. Загружаем код (ниже) через Arduino IDE. Включаем Bluetooth на телефоне, соединяем с HC-05 (пароль 0000/1234). Открываем приложение, отправляем команды: «bulb1 on», «bulb1 off», «bulb2 on» и т.д. Лампы включаются/выключаются.

Код проекта

#include <SoftwareSerial.h>

int bulb1 = 8;
int bulb2 = 9;
int bulb3 = 10;
int bulb4 = 11;

SoftwareSerial bt(0, 1); // (Rx, Tx)
String str;

void setup() {
  bt.begin(9600);
  Serial.begin(9600);
  pinMode(bulb1, OUTPUT);
  pinMode(bulb2, OUTPUT);
  pinMode(bulb3, OUTPUT);
  pinMode(bulb4, OUTPUT);
}

void loop() {
  if (bt.available()) {
    str = bt.readStringUntil('\n'); // читаем строку до перевода строки
    str.trim(); // убираем пробелы
    Serial.println(str);

    // Лампа 1
    if (str == "bulb1 on") {
      digitalWrite(bulb1, HIGH);
      Serial.println("Bulb 1 is ON");
    } else if (str == "bulb1 off") {
      digitalWrite(bulb1, LOW);
      Serial.println("Bulb 1 is OFF");
    }

    // Лампа 2
    if (str == "bulb2 on") {
      digitalWrite(bulb2, HIGH);
      Serial.println("Bulb 2 is ON");
    } else if (str == "bulb2 off") {
      digitalWrite(bulb2, LOW);
      Serial.println("Bulb 2 is OFF");
    }

    // Лампа 3
    if (str == "bulb3 on") {
      digitalWrite(bulb3, HIGH);
      Serial.println("Bulb 3 is ON");
    } else if (str == "bulb3 off") {
      digitalWrite(bulb3, LOW);
      Serial.println("Bulb 3 is OFF");
    }

    // Лампа 4
    if (str == "bulb4 on") {
      digitalWrite(bulb4, HIGH);
      Serial.println("Bulb 4 is ON");
    } else if (str == "bulb4 off") {
      digitalWrite(bulb4, LOW);
      Serial.println("Bulb 4 is OFF");
    }
  }
}

Разбор кода

Подключаем библиотеку SoftwareSerial.h для последовательной связи с HC-05.

Объявляем пины реле (8–11) и строковую переменную str для команд.

В setup() инициализируем последовательные порты на 9600 бод, настраиваем пины на выход.

В loop() проверяем наличие данных от Bluetooth. Читаем команду, выводим в Serial Monitor. Для каждой лампы: если команда «bulbX on» — ставим HIGH на пине реле (лампа горит), если «bulbX off» — LOW (лампа гаснет).

Важно: Исходный код имел логические ошибки (блоки else гасили лампы при любой другой команде). Исправленная версия выше реагирует только на точные команды.

Теперь вы можете управлять бытовыми приборами через Arduino, Bluetooth и реле. Предоставлены технические данные компонентов. На схеме светодиоды — замените их на лампы 220 В.

Промышленные технологии

  1. Как технологии умного дома трансформируют повседневную жизнь
  2. Silicon Labs представляет передовые решения Wireless Gecko для умных домов и автоматизации зданий на Embedded World 2019
  3. Проектирование умных замков и сенсоров: экспертные стратегии защиты цепей и сенсирования для безопасных умн…
  4. Преодоление пяти барьеров в доставке для домашних офисов удаленных команд
  5. SERENA: Пользовательская система сигнализации на Arduino Mega 2560 с TFT Touchscreen
  6. Умный дом и система безопасности на базе 1Sheeld
  7. Управление Arduino Uno из Python 3: команды через последовательный порт и демонстрация с LED
  8. Система учёта рабочего времени на RFID, Arduino и Google Таблицах
  9. Octopod: Умная IoT-автоматизация для дома и промышленности
  10. WARAN: модульная система умного дома на Raspberry Pi, Arduino и nRF24L01+