Умный дом с Bluetooth-управлением на Arduino
Компоненты и материалы
- Arduino UNO — 1 шт.
- Релейный модуль (4 канала или более) — 1 шт.
- Bluetooth BLE модуль (например, HM-10 или HC-05/06) — 1 шт.
- Лампочка/нагрузка для теста — 1 шт.
- Провода, резисторы 10к и 20к (делитель напряжения для RX Bluetooth)
Необходимые инструменты
- Паяльник
Программное обеспечение
- Arduino IDE
- Приложение "Bluetooth Controller" для Android (ссылка на APK в исходнике)
О проекте
Схема подключения
Bluetooth-модуль (4 пина: VCC, TX, RX, GND):
- VCC → 5V Arduino (на модуле есть стабилизатор 3.3В).
- GND → GND Arduino.
- TX модуля → RX Arduino (пин 0).
- RX модуля → TX Arduino (пин 1) через делитель напряжения 10к/20к (5В → 3.3В).
Релейное модуль: IN1-IN4 → пины 2,3,4,5 Arduino. VCC → 5V, GND → GND. Нагрузки (лампы, вентилятор) подключаются к контактам реле.
Принцип работы
- При включении питания LED на Bluetooth-модуле мигает.
- В телефоне запускаем приложение «Bluetooth Controller», соединяемся с модулем. При успехе LED горит постоянно.
- В приложении настраиваем кнопки: каждой назначаем передаваемую строку (например, «light on», «light off», «fan on», «all on», «off»).
- Arduino принимает строку по Serial и управляет реле.
Приложение можно скачать: Google Drive ссылка
Код прошивки (Arduino)
#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); // RX, TX Arduino (Hardware Serial используется для BT)
String command;
void setup() {
BT.begin(9600);
Serial.begin(9600);
pinMode(2, OUTPUT); // Light 1
pinMode(3, OUTPUT); // Lamp
pinMode(4, OUTPUT); // Fan
pinMode(5, OUTPUT); // Extra / Door
}
void loop() {
while (BT.available()) {
delay(10); // Стабилизация
char c = BT.read();
command += c;
}
if (command.length() > 0) {
Serial.println(command);
if (command == "light on") digitalWrite(2, HIGH);
else if (command == "light off") digitalWrite(2, LOW);
else if (command == "lamp on") digitalWrite(3, HIGH);
else if (command == "lamp off") digitalWrite(3, LOW);
else if (command == "fan on") digitalWrite(4, HIGH);
else if (command == "fan off") digitalWrite(4, LOW);
else if (command == "open") digitalWrite(5, HIGH); // Door/Open
else if (command == "lock") digitalWrite(5, LOW); // Door/Lock
else if (command == "all on") {
digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH);
}
else if (command == "off") {
digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW);
}
command = ""; // Сброс буфера
}
}
Схема подключения
Примечания
- Использование Hardware Serial (пины 0,1) для Bluetooth блокирует загрузку скетча через USB — нужно отключать модуль при прошивке или использовать SoftwareSerial на других пинах.
- Для надежности добавьте обработку ошибок связи и подтверждение команд.
- Можно расширить: добавить датчики температуры/влажности, обратную связь в приложение.
Производственный процесс
- Как технологии умного дома трансформируют повседневную жизнь
- Создайте систему домашней автоматизации на Raspberry Pi для удаленного управления
- Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
- Pixie: DIY-наручные часы на Arduino Pro Mini и NeoPixel — стильный светодиодный тахометр времени
- Надежный физический интерфейс для управления умным домом
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Клеточный автомат «Жизнь» Конвея на Arduino Nano с OLED 128x64
- Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
- Arduino Home Controller с Alexa: умный дом голосовым управлением
- Продвинутая система обнаружения падений: Arduino + Windows IoT + Azure Cloud