Умный дом на Arduino: схема, код и руководство по сборке
Проект системы умного дома на Arduino
Автоматизация (умный дом, промышленная автоматизация) сегодня важна как никогда — она позволяет выполнять задачи с минимальным участием человека и максимальной эффективностью. Дома становятся умнее: вместо обычных выключателей используют дистанционное управление. Смартфоны стали неотъемлемой частью жизни — ими можно управлять бытовыми приборами в один клик. Контроллеры и модули связи обеспечивают удаленное управление. В этом проекте используем Arduino UNO и Bluetooth-модуль HC-05 для управления смартфоном. Особенно полезно для людей с ограниченными возможностями.
Необходимые компоненты
- Arduino UNO
- Bluetooth-модуль HC-05
- Реле (4 шт.)
- Перемылочные провода
- Лампы накаливания (для демонстрации)
- Приложение Bluetooth Terminal HC-05 (Google Play)
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-команды:
AT— проверка связиAT+NAME=hc-05— смена имениAT+PSWD=1234— смена пароляAT+UART=9600,1,0— настройка скорости, стоп-бита, паритета
Распиновка HC-05
| Вывод | Описание |
|---|---|
| EN/KEY | HIGH — командный режим, LOW — режим данных (по умолчанию) |
| VCC | 3,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
- Компьютеры и периферия
- GPS-приемники
- Промышленное управление
- Микроконтроллерные проекты
Реле
Электромагнитный ключ: малый ток управляет большими цепями. Катушка с сердечником создает магнитное поле, замыкающее/размыкающее силовые контакты. Раньше — в телеграфах и АТС, потом — в компьютерах для логики. Применение: управление двигателями, авто, промышленность, умный дом.
В проекте электромагнитное реле управляет бытовыми приборами (лампы, вентиляторы, нагрузка 220 В) по сигналу 5 В от Arduino. 6 выводов: VCC, GND — питание катушки; Data — управляющий сигнал (1/0); NC, COM, NO — силовые контакты.
- Normally Open (NO) — замыкается при активации реле
- Normally Closed (NC) — размыкается при активации реле
Распиновка реле
| Вывод | Описание |
|---|---|
| VCC | 5 В |
| GND | Земля |
| Data | «1» или «0» от микроконтроллера |
| NC | Нормально замкнутый контакт |
| COM | Общий контакт |
| NO | Нормально разомкнутый контакт |
Применение реле: безопасная логика, управление высоковольтными цепями слабым сигналом, защита, подстанции и сети.
Схема подключения

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