Цифровой кодовый замок на Arduino управляемый со смартфона


В настоящее время различные виды охранных систем широко распространены по всему миру и цифровые кодовые замки являются важной частью этих систем. Ранее на нашем сайте мы уже рассматривали простой кодовый замок на Arduino, в этой же статье мы рассмотрим аналогичный замок, но с TFT ЖК дисплеем (TFT LCD) и управляемый со смартфона. Управление этим замком будет осуществляться с помощью технологии Bluetooth и мобильного телефона с операционной системой Android. Дальность действия технологии Bluetooth составляет около 10 метров. Для управления замком пользователь должен будет ввести заранее определенный пароль на своем мобильном телефоне (смартфоне), если пароль вверен, то на TFT ЖК дисплее высветится надпись “CORRECT PASSWORD”, а если пароль неправильный – то высветится надпись “WRONG PASSWORD”.

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

То есть этот замок вы сможете открывать дистанционно со своего смартфона даже когда вы еще не дошли до двери – это будет экономить ваше время и избавит от необходимости ношения с собой металлических ключей.

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

  1. Плата Arduino Mega (купить на AliExpress).
  2. TFT LCD Shield диагональю 2.4 дюйма с контроллером SPFD5408 (купить на AliExpress).
  3. Bluetooth модуль HC05 (купить на AliExpress).
  4. Буззер (звонок) (купить на AliExpress).
  5. USB кабель.
  6. Мобильный телефон (смартфон) с операционной системой Android.
  7. Приложение для Bluetooth (Bluetooth terminal App).
  8. Макетная плата.
  9. Соединительные провода.

Работа схемы

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

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

Как видим, она достаточно проста – достаточно только подсоединить Bluetooth модуль HC05 и одеть сверху на плату Arduino шилд (расширение) TFT ЖК дисплея (TFT LCD Shield). Этот шилд достаточно легко монтируется – достаточно только проследить чтобы контакты GND и Vcc шилда и платы Arduino совпадали. Также вы должны установить библиотеку для работы с данным TFT ЖК дисплеем, более подробно все эти процессы описаны в статье про подключение TFT ЖК дисплея к плате Arduino.

Bluetooth модуль HC05 запитывается от контакта Vcc Arduino, его земля подключена к контакту GND Arduino. Контакты TX и RX модуля HC05 соединены с контактами RX1 и TX1 платы Arduino. Один контакт буззера (звонка) подключен к контакту GND Arduino, а другой – к контакту 22 Arduino.

Настройка Bluetooth Terminal App (приложения для Bluetooth)

Для осуществления возможности управления нашим кодовым замком при помощи смартфона нам необходимо установить и настроить приложение для Android под названием Bluetooth Terminal. Приложение Bluetooth Terminal App совместимо с Arduino. Вам необходимо выполнить следующие действия:

  1. Скачать из Google Play Store приложение Bluetooth Terminal App и установить его на свой смартфон.
  2. Подать питание на собранную схему цифрового кодового замка.
  3. Открыть приложение и выбрать там опцию ‘connect securely’ (соединиться в безопасном режиме).
  4. В списке устройств для подключения вы найдете модуль HC05.
  5. Задайте пароль 1234 (потом можете поменять) для соединения с вашим мобильным телефоном на Android.

Описание работы устройства

В нашем устройстве мы использовали три основных компонента: Bluetooth модуль HC05, плату Arduino Mega и TFT LCD Shield диагональю 2.4 дюйма.

Пароль в этой системе вводится на смартфоне под управлением Android и с помощью приложения Bluetooth Terminal App передается на Arduino с помощью технологии Bluetooth. Плата Arduino принимает эти данные с помощью Bluetooth модуля HC05, обрабатывает их и отображает на SPFD5408 TFT LCD. Arduino сравнивает введенный пользователем пароль с заранее определенным паролем (1234) и выдает соответствующее сообщение на экран ЖК дисплея. Если пароли совпадают, то на экран ЖК дисплея выдается сообщение “CORRECT PASSWORD”, а если не совпадают – то сообщение “WRONG PASSWORD”. Также когда введенный пароль неправильный, звучит сигнал буззера, имитирующий сигнал тревоги. Более подробно все эти процессы можно посмотреть в видео, приведенном в конце статьи.

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

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

Пароль 1234, используемый нами по умолчанию, вы можете изменить по своему усмотрению, но для этого необходимо будет внести небольшие изменения в приведенный ниже код программы.

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

Для написания программы для нашего проекта кодового замка нам понадобится ряд библиотек. Большую часть этих библиотек можно скачать в виде rar архива по ссылке – https://github.com/JoaoLopesF/SPFD5408. После перехода по этой ссылке в открывшемся окне нажмите ‘Clone or download’, а потом ‘Download ZIP’ файл. Скачанный архив добавьте в Arduino library folder (папку с библиотеками для Arduino на вашем компьютере). Эта (скачанная) библиотека будет нужна для корректного функционирования используемого нами TFT ЖК дисплея.

#include <SPFD5408_Adafruit_GFX.h> // Core graphics library – библиотека графического ядра
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <SPFD5408_TouchScreen.h>

Инициализация ЖК дисплея и последовательного порта для связи с Bluetooth модулем выполняется в функции void setup(). Контакт 22 Arduino подключен к буззеру, а другой контакт буззера подключен к земле Arduino Mega. Bluetooth модуль к последовательному порту 1 (Serial1 port) Arduino Mega и запитывается от 5V Arduino Mega. Функция fillScreen() используется для очистки экрана ЖК дисплея.

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(9600);
tft.reset();
tft.begin(0x9341);
tft.setRotation(0);
tft.fillScreen(WHITE);
tft.setCursor (40, 50);
tft.setTextSize (2);
tft.setTextColor(BLACK);
tft.println("E N T E R* P A S S W O R D ");
delay(5000);
tft.fillScreen(WHITE);
pinMode(22,OUTPUT);
}

В функции void loop() команда setTextSize(4) устанавливает размер текста, а setTextColor(colorName) – устанавливает цвет текста. arr[] – это массив, в котором мы будем хранить заранее определенный пароль длиной 4 символа, а Input[] – массив, в котором мы будем хранить пароль, полученный с вашего смартфона.

void loop() {
tft.setTextSize (4);
tft.setTextColor(CYAN);
// put your main code here, to run repeatedly:
if (Serial1.available() > 0)
{
flag = 1;
char c = Serial1.read();
if (flag == 1)
{
input[i] = c;
.... .....
..... ......

В дальнейшем вы можете изменить значение пароля в массиве arr[] с ‘1234’ на то, которое вам будет нужно. Также можно изменить длину пароля, изменяя размер (длину) массивов arr[] и input[].

char arr[4] = {'1', '2', '3', '4'};
char input[4];

Но помните, что если измените размеров этих массивов, то тогда в функции void loop() необходимо будет изменить и условие для сравнения значений этих массивов.

if (arr[0] == input[0] && arr[1] == input[1] && arr[2] == input[2] && arr[3] == input[3])

Также рассматриваемый нами замок можно усовершенствовать с помощью электромагнита, который будет держать дверь закрытой до тех пор пока не будет введен правильный пароль.

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

Видео, демонстрирующее работу кодового замка

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

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

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