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

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

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

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

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

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

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

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

Работа схемы

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

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

На схеме показаны необходимые соединения платы 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 выдает соответствующие команды на включение/выключение соответствующих устройств.

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

#include <LiquidCrystal.h> // подключение библиотеки для работы с ЖК дсиплеем
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // контакты Arduino, к которым подключен ЖК дисплей
void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("**AUTOMATION**");
}
void loop() {
if (Serial.available() > 0)
{
char c = Serial.read();
if (c == 'a')
{
Serial.print("in a code");
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
Serial.print("10 HIGH");
lcd.clear();
lcd.print("**BULB1 ON**");
}
if(c=='b')
{
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
Serial.print("11 HIGH");
lcd.clear();
lcd.print("**BULB2 ON**");
}
if(c=='c')
{
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
lcd.clear();
lcd.print("**BULB 1,2 ON**");
}
if(c=='d')
{
digitalWrite(10,LOW);
digitalWrite(11,LOW);
lcd.clear();
lcd.print("**BULB 1,2 OFF**");
}
}
}

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

(1 голосов, оценка: 5,00 из 5)
Загрузка...
20 просмотров

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

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