Интеллектуальная беспроводная система блокировки на базе OTP с использованием Arduino с IoT
В этом проекте мы собираемся создать интеллектуальную систему блокировки на основе OTP, как вы можете видеть на рисунке 1. Этот умный замок может генерировать новый пароль каждый раз, когда вы его разблокируете, что еще больше повышает ваш уровень безопасности. Это новое устройство намного безопаснее, чем традиционная система на основе ключей и электронная система беспроводной блокировки. Если вы все еще используете систему на основе ключей, вы, вероятно, попадете в большую проблему, если ваш ключ будет утерян или украден. Электронная система беспроводной блокировки также небезопасна. Вы можете забыть пароль, и существует высокий риск взлома. Для вашей безопасности мы предлагаем вам умный замок DIY, который способен устранить все эти угрозы и проблемы безопасности.
Необходимые компоненты
• Arduino UNO
• Bluetooth Hc05
• Светодиод
• Некоторые провода / перемычки
• Серводвигатель
• 5 В Аккумулятор / Power Bank
• USB Type B для программирования Arduino
Во-первых, нам нужно включить библиотеку и объявить необходимые переменные, как в фрагменте кода. Мы включаем сервотеку, затем создаем строковый массив для генерации пароля. После этого нам нужно создать еще несколько строковых переменных для хранения паролей, номеров выводов OTP и светодиодов, как показано на рисунке 1 кода.
Fig 1. Arduino Code
Во второй части кодирования нам нужно настроить серийный номер и скорость Braud для Bluetooth. Здесь я использовал 9600 Braud rate, но если он не работал, вы можете использовать стандартную Braud rate Hc 05, т.е. (38400). Затем мы должны установить контакт для сервопривода, используя servo.attach (номер контакта PWM). После этого мы можем определить режим вывода в качестве выхода для светодиодной ссылки (рис.2).
Fig 2. Setting I/O and Bluetooth
В третьей части кода мы создадим цикл и проверим данные, поступающие с Bluetooth. Затем мы создаем оператор if () для проверки идентификатора устройства. Если он совпадает, то он вызывает функцию otp () для генерации OTP (см. Рис. 3)
Fig. 3 Arduino code checking device Id
Затем нам нужно создать функцию check (), чтобы проверить правильность OTP или нет. Если он правильный, он поворачивает сервопривод в открытое положение (см. Рис. 4).
Fig. 4 Arduino code for checking OTP
Мы завершили часть кодирования.
Теперь давайте сделаем Android-приложение для нашего проекта. Мы можем создать приложение для двух разных платформ: Android Studio или MIT. Для этого проекта давайте выберем изобретателя приложения MIT, поскольку легко создать приложение с блоками без кодирования. Комментарий ниже, если вы хотите, чтобы я создал приложение с Android Studio. Сначала нам нужно создать макет, как на картинке (рис. 5). Просто перетащите или скачайте .aia файл для него по ссылке ниже.
Fig. 5 Layout of App in MIT app inventor
Теперь перейдем на вкладку «Блоки кода» для кодирования. Для начала нам нужно инициализировать список Bluetooth, доступный для подключения. Затем мы должны установить функцию кнопки для отправки идентификатора устройства согласно нашему коду Arduino, как показано на рисунке ниже (рис. 6).
Fig. 6 MIT app inventor coding blocks
Теперь экспортируйте приложение .apk и установите его на свой телефон Android. Вы можете получить .apk, .aia файл и код по ссылке ниже.
Скачать файлы
Мы почти закончили, мы завершили разработку кода и приложений. Давайте настроим компоненты и начнем подключение.
Соединительные компоненты:
Whole circuit and connections are illustrated in the pic below (Fig. 7).
Fig. 7 Connections of components.
Теперь мы соединили все компоненты. Возможно, вы не захотите жарить дорогую плату Arduino с неправильным подключением. Поэтому всегда проверяйте настройки, чтобы убедиться, что все соединения в порядке.
Тестирование:
Сначала подключите Arduino и компоненты к источнику питания. Здесь я использовал 5V Power Bank для этого. Далее откройте установленное приложение, затем включите Bluetooth телефона. Если вы нажмете на иконку Bluetooth, вы получите список Bluetooth-соединений для сопряжения. Теперь нажмите на HC 05. При успешном сопряжении вы получите сообщение «подключен» в приложении, как показано на рисунке 8.
Fig. 8 Showing connection status
После этого нажмите на значок ключа, чтобы отправить идентификатор устройства для соответствия. Если идентификатор устройства совпадает, он отправит OTP в ваше приложение, которое вы видите в текстовой панели приложения между Bluetooth и значком замка. Теперь вы можете нажать на значок замка, чтобы разблокировать ваш Smart Lock. Если все в порядке, то сервопривод перемещает механизм разблокировки, и бортовой светодиод Arduino загорается, указывая на успешную разблокировку. Я использовал сервопривод из-за его высокого крутящего момента, а также потому, что мы можем контролировать угол его движения, что помогает разблокировать механизм блокировки.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ:
Могу ли я подать питание на сервопривод от Arduino?
Нет, никогда не делай этого. Возможно, вы видели в разных местах, где сервопривод напрямую подключен к 5V выводу Arduino, но это небезопасно. Arduino не сделан для такого количества тока.
В начало обзора