Умная розетка с управлением со смартфона по Bluetooth
Умная розетка на Arduino, что может быть проще. Статья о проекте Arduino умной розетки с управлением со смартфона по Bluetooth. Управление реализовано с использованием сервиса RemoteXY. Две розетки, раздельно управляемые со смартфона, размещены на одной платформе со всей необходимой электроникой. Область применения умной розетки достаточно большая. Вы сможете удаленно включать и отключать электрические устройства. Так же данный проект может быть использован как пример для создания более сложных устройств управления электрическими устройствами.
Для реализации проекта мы использовали следующие комплектующие:
- Arduino UNO или совместимая плата.
- Релейный модуль 2 канала с питанием 5В.
- AC-DC миниатюрный блок питания 12В, 0.15A.
- Bluetooth модуль HC-05.
- Розетка 220В 2 шт. (внешняя установка)
- Вилка 220В с проводом.
- Контрактная площадка.
Все комплектующие мы разместили на платформе из плиты ДСП размером 155x135 мм. Крепление всех комплектующих к платформе выполнено при помощи шурупов и предварительно просверленных в платформе отверстий. Вариант размещения комплектующих вы можете посмотреть на рисунке. Плата Arduino размещена таким образом, что бы иметь легкий доступ к USB разъему для программирования.
На рисунке изображена схема соединения комплектующих. Модуль Bluetooth подсоединен к пинам 2 и 3 Arduino. Для управления реле использованы пины 4 и 5. Вся схема питается от сети 220В через блок питания - миниатюрный AC-DC преобразователь на напряжение 12В. Это напряжение подается на Arduino через пин Vin.
Все высоковольтные соединения выполнены алюминиевым проводом диаметром проводника 1.2 мм. Для соединения высоковольтных проводов использована контактная площадка. Будьте очень осторожны и внимательны при монтаже высоковольтных проводов!
Программное обеспечение
В онлайн редакторе RemoteXY создайте интерфейс. На интерфейсе разместите два больших выключателя. В свойствах выключателей для одного из них выберите свойство "Привязывать к пину" пин 4, для другого пин 5. Это позволит автоматически получить код по управлению пинами с этих выключателей. В настройках проекта выберите тип подключения модуля Bluetooth через SoftwareSerial.
Сформируйте исходный код проекта и загрузите его в Arduino. Исходный код приведен ниже.
/////////////////////////////////////////////
// RemoteXY include library //
// use ANDROID app version 3.1.1 or up //
/////////////////////////////////////////////
/* определение режима соединения и подключение библиотеки RemoteXY */
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>
/* настройки соединения */
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600
/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
{ 2,0,30,0,2,5,2,0,6,2
,88,29,1,79,78,0,79,70,70,0
,2,0,6,33,88,29,6,79,78,0
,79,70,70,0 };
/* структура определяет все переменные вашего интерфейса управления */
struct {
/* input variable */
unsigned char switch_1; /* =1 если переключатель включен и =0 если отключен */
unsigned char switch_2; /* =1 если переключатель включен и =0 если отключен */
/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */
} RemoteXY;
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#define PIN_SWITCH_1 4
#define PIN_SWITCH_2 5
void setup()
{
RemoteXY_Init ();
pinMode (PIN_SWITCH_1, OUTPUT);
pinMode (PIN_SWITCH_2, OUTPUT);
// TODO you setup code
}
void loop()
{
RemoteXY_Handler ();
digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);
// TODO you loop code
// используйте структуру RemoteXY для передачи данных
}
Теперь вы можете при помощи приложения RemoteXY для Android соединиться с вашим устройством и управлять розетками.