Рубрики
Схемы на Arduino

Автоматизация дома на Arduino под управлением смартфона

Автоматизация играет важную роль в жизни современного общества. Процессами автоматизации можно управлять различными способами: с помощью Wi-Fi, инфракрасной связи, GSM, Bluetooth и многих других технологий.

Ранее на нашем сайте мы уже рассматривали различные проекты автоматизации дома:

автоматизация дома под управлением персонального компьютера;
автоматизация дома с помощью пульта инфракрасной связи;
автоматизация дома с помощью GSM;
автоматизация дома с помощью MATLAB и Arduino.

В этой же статье мы рассмотрим проект автоматизации дома на Arduino под управлением смартфона. Сигналы управления со смартфона будут передаваться с помощью технологии Bluetooth.

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

  1. Плата Arduino Mega (или другая модель) (купить на AliExpress).
  2. Мобильный телефон на Android (смартфон).
  3. Bluetooth модуль HC05 (купить на AliExpress).
  4. Приложение Bluetooth terminal.
  5. Микросхема (драйвер двигателей) L293D (купить на AliExpress).
  6. Два реле на 6 В.
  7. ЖК дисплей 16х2 (купить на AliExpress).
  8. Две электрические лампочки.
  9. Адаптер на 12 v,1A.
  10. Макетная плата.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Работа схемы

Схема устройства представлена на следующем рисунке.

На схеме показаны необходимые соединения платы Arduino с ЖК дисплеем, Bluetooth модулем HC05 и микросхемой L293D (драйвером двигателей).

Два реле подсоединены к микросхеме L293D для управления двумя приборами постоянного тока (в нашем проекте их роль выполняют электрические лампочки). Реле имеют 5 контактов, из которых 2 (вокруг контакта COM) подсоединены к L293D и GND. А общий контакт (COM) соединен с контактами AC приборов.

Микросхема L293D используется для увеличения тока (поскольку контакты платы Arduino не могут обеспечить нужный ток для управления реле). Контакт Vcc2 или VS L293D должен быть подключен к контакту VIN (контакт входного напряжения или Vcc) платы Arduino. Контакты Input 1 и Input 2 L293D подключены к контактам 10 и 11 платы Arduino, а выходные контакты подключены к контактам реле.

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

Сначала нам необходимо скачать и установить на наш смартфон приложение Bluetooth Terminal App (можно использовать и другое аналогичное приложение) и подключить смартфон к Bluetooth модулю HC05. Затем сконфигурировать приложение Bluetooth Terminal как в этой статье.

После того, как мы выполним все это, мы сможем передавать данные с нашего смартфона (из приложения Bluetooth Terminal) на Bluetooth модуль HC05, который затем сможет передавать эти данные по последовательному порту плате Arduino Mega. ЖК дисплей 16×2 используется для отображения статуса (включен/выключен) управляемых нами электронных устройств. Микросхема L293D используется для управления двумя реле, к которым подключены электрические лампочки. Адаптер 12v используется для питания платы Arduino и всей схемы. Структурная схема работы устройства представлена на следующем рисунке.

Всегда, когда мы будем передавать данные со смартфона, плата Arduino будет проверять поступивший символ и устанавливать на соответствующих контактах напряжение высокого или низкого уровня. Далее с помощью этих контактов через драйвер L293D управляются реле, которые включают и выключают лампочки.

В целом, наше устройство будет выполнять следующие операции:

  • если мы передаем символ ‘a’ через приложение Bluetooth Terminal, то электрическая лампочка № 1 включится, а электрическая лампочка № 2 выключится;
  • если мы передаем символ ‘b’ через приложение Bluetooth Terminal, то электрическая лампочка № 1 выключится, а электрическая лампочка № 2 включится;
  • если мы передаем символ ‘c’ через приложение Bluetooth Terminal, то обе электрические лампочки включатся;
  • если мы передаем символ ‘d’ через приложение Bluetooth Terminal, то обе электрические лампочки выключатся.

Более подробно все эти процессы вы можете посмотреть в видео в конце статьи.

Исходный код программы

Вначале подключим библиотеку LiquidCrystal.h, необходимую для корректной работы с ЖК дисплеем, и укажем контакты Arduino, к которым подключен ЖК дисплей.

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

Сконфигурируем контакты 10 и 11 Arduino для работы на вывод данных и используем функцию Serial.begin(9600) чтобы задействовать последовательный порт для связи между Arduino и Bluetooth модулем HC05.

void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("**AUTOMATION**");
}

В функции void loop() будем проверять поступление каких-либо данных по последовательному порту и помещать эти данные в переменную символьного типа (char c).

void loop() {
if (Serial.available() > 0)
{
char c = Serial.read();
if (c == 'a')
{
Serial.print("in a code");
..... .......
....... ......

Затем мы будем сравнивать символ, поступивший из последовательного порта (char c) с заранее определенными символами ‘a’ ,’b’, ’c’, ’d’, которые используются для управления нашими устройствами. После сравнения плата Arduino выдает соответствующие команды на включение/выключение соответствующих устройств.

Далее представлен полный текст программы.

Видео, демонстрирующее работу схемы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *