Новости

Замок, який відкривається смартфоном (Arduino + Android)

  1. Крок 1: Список покупок
  2. Крок 2: 3D-дизайн дверного замка
  3. Крок 3: Збірка 3D-друкованих частин
  4. Крок 4: Програма Arduino для управління замком захищеним паролем через Bluetooth
  5. Крок 5: Схема підключення
  6. Крок 6: Установка замка на двері
  7. Крок 7: Розробка програми для Android
  8. Крок 8: Більш багате додаток для Android

Цей смарт-замок є безпечним, простим і легким в управлінні для блокування вашого будинку. Замок не потребує ключах та встановлюється всередині будинку зі зворотного боку дверей, а керувати ним ви можете через двері за допомогою Bluetooth модуля Android.

Оскільки замок знаходиться всередині двері, у злодіїв немає можливості його зламати. Для відкриття і закриття потрібна програма Android, а як його зробити пояснюється в останній частині уроку. Пароль відправляється на замок за допомогою цього додатка для Android і якщо пароль буде відповідати вашому паролю з попередньо встановленою блокуванням, тоді вона буде знята, а на ваш телефон буде передано повідомлення про відкриття замку.

Крок 1: Список покупок

1. Arduino Uno - 1 шт.
2. Модуль Bluetooth (HC-05) - 1 шт.
3. Блокування двері (3D-друк) - 1 шт.
4. Сервомотор (9g Micro Servo) - 1 шт.
5. Android-смартфон - 1 шт.
6. гвинт 6шт
7. Провід перемичок

Необхідні інструменти нижче.

1. Ми використовували 3D-принтер Anet A8 від gearbest.com. Ви можете замовити цей комплект на сайті gearbest.com всього за 150 доларів. Це дійсно відмінний принтер за дуже низькою ціною. В даний час вони надають 47% знижку на цей комплект 3D-принтерів. Я використовую принтер чотири місяці, і дуже задоволений продуктивністю принтера. Всі використовувані тут в уроці друковані частини надруковані Anet A8.

2. Викрутка.

Поговоримо докладніше про решту.

Arduino Uno. Arduino Uno - найпопулярніша плата для розробників в родині Arduino. Не обов'язково використовувати Arduino Uno, ви можете використовувати інший мікроконтролер з сімейства Ардуіно, такий як Arduino Nano або Arduino Micro. Ви також можете використовувати автономний atmega328p без використання плати arduino. Є по цій темі підручник на офіційному сайті Ардуіно під назвою « From Arduino to a Microcontroller on a Breadboard »Для автономного мікроконтролера atmega, скачати можна тут .

Модуль Bluetooth (HC-05). Bluetooth - це тип бездротового зв'язку, використовуваної для передачі голосу і даних на високих швидкостях з використанням радіохвиль. Він широко використовується в мобільних телефонах для здійснення дзвінків, гарнітури і обміну даними. Цей тип комунікації - дешевий і простий спосіб контролювати щось дистанційно за допомогою Arduino. Для зв'язку з платою, що використовують bluetooth, модуль bluetooth повинен бути підключений до Arduino. Доступно декілька моделей модуля bluetooth. Я використовую тут HC-05 дуже поширений і дешевий. Модуль HC-05 має 6 контактів. Ми повинні підключити 4 штиря до Arduino:

RXD буде отримувати дані від Arduino; TXD відправить дані в Arduino; VCC - це джерело живлення (від 3,3 до 6,6 В), а GND - земля.

Micro Servo SG90. Малесенький і легкий з високою вихідною потужністю. Серво може обертатися приблизно на 180 градусів (90 в кожному напрямку) і працює так само, як і стандартні, але меншого розміру. Для управління цими сервопріводамі ви можете використовувати будь-який серво-код, апаратне забезпечення або бібліотеку.

Крок 2: 3D-дизайн дверного замка

Всі частини замку тривимірні. Я хотів би подякувати одного з користувачів (ridercz) за приємний дизайн. Він розробив і опублікував цей замок на СЕРВОПРИВОДИ на сайті thingiverse.com. Всі файли, окрім Rack_Holder.stl, взяті з його дизайну. Ви можете завантажити файли нижче або з Thingiverse.com.

Деякі файли мають версію LT. Легка версія вимагає менше PLA в порівнянні зі звичайною версією і має меншу міцність. Я надрукував версію LT. Я використовував Anet A8 для друку всіх деталей. Фотографії друкованих деталей додаю.

Завантажити 3D-макети:

UAL_all.stl

UAL_all_LT.stl

UAL_baseplate.stl

UAL_baseplate_LT.stl

UAL_gear.stl

UAL_rack.stl

UAL_rack_cover.stl

UAL_rack_cover_LT.stl

UAL_servo_cover.stl

UAL_servo_cover_LT.stl

UAL_servo_holder.stl

Rack_Holder.STL

Крок 3: Збірка 3D-друкованих частин

Зберіть всі друковані частини по одному, як показано на фотографіях. Ви також можете слідувати відео інструкцій, які додаються в самому кінці уроку. Після складання використовуйте чотири гвинти, щоб щільно зафіксувати всі деталі.

Крок 4: Програма Arduino для управління замком захищеним паролем через Bluetooth

Код для управління розумним замком через Bluetooth досить простий. Я розробив додаток для Android, так що воно відправляє команду з паролем.

Насправді я встановив дві команди: одна «OPEN =» (Відкрити), а інша «CLOSE =» (Закрити), пароль може містити будь-яку цифру, букву або символ або комбінацію з них на ваш розсуд.

У додатку я використовував дві кнопки - для відкриття дверей і для зачинення дверей. Коли пароль вводиться в потрібне поле і натискається кнопка «відкрити» додаток з'єднує команду «OPEN =» з паролем і відправляє його в Arduino.

Ми додали знак '=' з командою для того, щоб розділити команду і пароль, використовуючи '='. Після отримання рядка з телефонної програми Arduino відокремлює команду і пароль від рядка прийому і зберігає їх в дві окремі змінні. Потім спочатку перевіряє пароль, і якщо пароль збігається зі збереженим паролем відчиняються двері командою «ВІДКРИТИ» і закриваються двері командою «ЗАКРИТИ». «=» Допомагає відокремити команду і пароль. Нижче наведено повний скетч (ескіз) для Ардуіно.

<Code style = "display: block; white-space: pre-wrap; color: green"> / * Athor: Md. Khairul Alam Date: 1 September, 2015 This program is for password protected smart door lock * / #include Servo myservo; // create servo object to control a servo String inputString = ""; String command = ""; String value = ""; String password = "arduPi"; // this is the password for opening and closing your door // you can set any pasword you like using digit and symbols boolean stringComplete = false; void setup () {// start serial connection Serial.begin (9600); // baud rate is 9600 must match with bluetooth // The String reserve () function allows you to allocate a buffer in memory for manipulating strings. inputString.reserve (50); // reserve 50 bytes in memory to save for string manipulation command.reserve (50); value.reserve (50); boolean stringOK = false; myservo.attach (9); // attaches the servo on pin 9 to the servo object} void loop () {// if arduino receive a string termination character like \ n stringComplete will set to true if (stringComplete) {//Serial.println(inputString); delay (100); // identified the posiion of '=' in string and set its index to pos variable int pos = inputString.indexOf ( '='); // value of pos variable> or = 0 means '=' present in received string. if (pos> -1) {// substring (start, stop) function cut a specific portion of string from start to stop // here command will be the portion of received string till '=' // let received string is open = test123 // then command is 'open' command = inputString.substring (0, pos); // value will be from after = to newline command // for the above example value is test123 // we just ignoreing the '=' taking first parameter of substring as 'pos + 1' // we are using '=' as a separator between command and vale // without '=' any other character can be used // we are using = menas our command or password must not contains any '=', otherwise it will cause error value = inputString.substring (pos + 1 , inputString.length () - 1); // extract command up to \ n exluded //Serial.println(command); //Serial.println(value); // password.compareTo (value) compare between password tring and value string, if match return 0 if (! Password.compareTo (value) && (command == "OPEN")) {// if password matched and command is 'OPEN 'than door should open openDoor (); // call openDoor () function Serial.println ( "OPEN"); // sent open feedback to phone delay (100); } Else if (! Password.compareTo (value) && (command == "CLOSE")) {// if password matched and command is 'CLOSE' than door should close closeDoor (); Serial.println ( "CLOSE"); // sent "CLOSE" string to the phone delay (100); } Else if (password.compareTo (value)) {// if password not matched than sent wrong feedback to phone Serial.println ( "WRONG"); delay (100); }} // clear the string for next iteration inputString = ""; stringComplete = false; }} Void serialEvent () {while (Serial.available ()) {// get the new byte: char inChar = (char) Serial.read (); //Serial.write(inChar); // add it to the inputString: inputString + = inChar; // if the incoming character is a newline or a carriage return, set a flag // so the main loop can do something about it: if (inChar == '\ n' || inChar == '\ r') {stringComplete = true; }}} Void openDoor () {myservo.write (0); // place servo knob at 0 degree delay (100); } Void closeDoor () {myservo.write (65); // place servo knob at 65 degree to fully closed the lock delay (100); }

Якщо Arduino отримав невірний пароль, він отправіn на телефон Android повідомлення про те, що пароль невірний. Фактично Ардуіно відправив рядок «WRONG». Потім програма на Android показує неправильне повідомлення з паролем.

Крок 5: Схема підключення

Зв'язок між компонентами дуже проста. Спочатку підключіть модуль Bluetooth HC-05 до Arduino. Зверніть увагу на схему. Штирек TX плати Arduino підключений до виходу RX модуля Bluetooth, а висновок RX для Arduino підключений до виходу TX модуля Bluetooth.

З'єднання між модулем Bluetooth Arduino і HC-05:

Arduino HC-05 Module TX RX RX TX 5V VCC GND GND

Підключення серводвігателя:

Arduino Servo Motor D9 Signal (Yellow, жовтий) 5V VCC (Red, червоний) GND GND (Brown, коричневий)

завантажити schematic.fzz

Завантажити sg90-servo.pdf

Крок 6: Установка замка на двері

Сподіваюся, ви запрограмували свою плату Arduino за допомогою скетчу, представленого на попередньому кроці, і ви вже протестували всі з'єднання у відповідності зі схемою.

Якщо ви виконали всі етапи, саме час помістити замок в відповідне місце двері. Спочатку помістіть замок з чотирма гвинтами. Потім фіксуємо модуль Bluetooth в потрібному місці замку і додаємо гарячий клей, щоб щільно з'єднати модуль з замком.

Після цього помістіть плату Arduino в нижню частину замку і з'єднайте всі дроти відповідно до схеми. Після установки замку і підключення ви повинні підключити харчування. Ми використовували адаптер 5V, 1A для забезпечення харчування ланцюга.

Крок 7: Розробка програми для Android

Я покажу вам, як розробити додаток Bluetooth на Aandroid за допомогою програми MIT App Inventor. Я використовую App Inventor, тому що він не вимагає будь-яких навичок програмування і установки програмного забезпечення. Вам потрібна тільки обліковий запис google. Перейдіть за адресою http://ai2.appinventor.mit.edu/ і увійдіть в систему, використовуючи обліковий запис google.

Увійдіть в додаток Inventor за допомогою gmail і виконайте наступні дії.

I Прийняти умови Картинка 1 II Натисніть «take survey later», а потім «продовжити», щоб закрити екран заставки Картинка 2, 3 III Почніть новий проект Картинка 4 IV Назвіть проект "BluetoothControlDoorLock" (без пробілів) Картинка 5

Тепер ви перебуваєте в Дизайнері, де ви робите «призначений для користувача інтерфейс» вашої програми (зображення 6). У вікні конструктора ви знайдете зовнішній вигляд вашого застосування і вкажете, які функції він повинен мати. Ви можете вибрати для призначеного для користувача інтерфейсу кнопки, зображення, ярлики, текстові поля і функціональні можливості, такі як Text-to-Speech, Bluetooth, датчики і GPS.

Тепер, дотримуйтесь малюнку 7 і додайте "List Picker" в програму перегляду. Перейменуйте його в «Підключення до пристрою Bluetooth» (рисунок 8). Додайте одну мітку, одне текстове поле пароля та дві кнопки, показані на малюнку 10. Змініть текстові властивості компонентів як «Введіть пароль», «Відкрити двері» і «Закрити двері» відповідно. Кінцевий призначений для користувача інтерфейс повинен виглядати так, як показано на малюнку 11. Тепер додайте клієнт Bluetooth в програму перегляду. Це невидимий компонент, і він не має інтерфейсу. Див. Зображення 12.

Перейдіть на редактор блоків

Прийшов час сказати вашому додатку що робити! Натисніть «Блоки» (Blocks), щоб перейти до редактора блоків (рис. 13). Подумайте про кнопках Designer і Blocks, таких як вкладки, - ви використовуєте їх для переміщення вперед і назад між двома областями App Inventor. Редактор блоків - це програма, в якій ви програмуєте поведінку свого застосування. Є вбудований блок, який обробляє такі речі, як математика, логіка і текст. Нижче перераховані блоки, які йдуть з кожним з компонентів вашого застосування. Щоб змусити блоки для певного компонента відображатися в редакторі блоків, спочатку потрібно додати цей компонент в свій додаток через конструктор.

Давайте створимо блоки для List Picker. List Picker - це елемент призначеного для користувача інтерфейсу при натисканні на нього показується список відповідних елементів, тут - це парний пристрій Bluetooth. Ми повинні додати два блоки ListPicker.BeforePicking і ListPicker.AfterPicking (зображення 14). Закінчені блоки показані на малюнках 18 і 19.

Зробіть файл .apk

Наш дизайн завершений, тепер нам потрібно зібрати файл apk для нашого телефону Android. Натисніть, щоб створити меню і виберіть «Додаток (зберегти .apk на мій комп'ютер)». Почекайте хвилину. Файл apk завантажиться в папку завантаження за замовчуванням. Встановіть і використовуйте його.

Крок 8: Більш багате додаток для Android

На попередньому етапі ми показали вам як розробити базове додаток Bluetooth в App Inventor. Але цей додаток не так зручно. Він не покаже вам ніякого повідомлення, або ваші двері відкриті або закриті, або Bluetooth не може підключитися для будь-яких помилок. Ми прикріпили тут більш просунуте додаток для нашого проекту.

Коли ви запускаєте додаток воно перевіряє, чи включений ваш Bluetooth чи ні. Якщо не включено - з'явиться діалогове вікно включення Bluetooth. Натисніть «Так», щоб включити Bluetooth. Потім підключіть пристрій за допомогою кнопки парного пристрою.

Потім натисніть кнопку «Підключення», якщо додаток успішно підключено до будь-якого пристрою, додаток показує MAC-адресу та ім'я підключеного пристрою. Введіть пароль в поле пароля та натисніть кнопку відкриття дверей, якщо ви ввели правильний пароль - двері відкриються, і додаток покаже вам повідомлення про те, що ваші двері тепер відкрита. Потім введіть пароль ще раз, якщо ви хочете закрити двері. Якщо ви вкажете невірний пароль, додаток покаже повідомлення про помилку.

Повний вихідний файл App Inventor (BTcontrol.aia) додається. Якщо вам не сподобалося створювати власний додаток або змінювати його, просто скачайте BTcontrol.apk і встановіть його на ваш Андроїд. Ви також можете завантажити його з Google Play Store за посиланням:

https://play.google.com/store/apps/details?id=appinventor.ai_khairul_uapstu.BTcontrol&hl=en

Для зміни джерела натисніть меню «Проекти» та виберіть «Імпортувати проект (.aia) з мого комп'ютера», показаний на малюнку 24, і відкрийте файл BTcontrol.aia зі свого комп'ютера. Після імпорту ви можете легко його змінити.

Якщо ви хочете дізнатися більше про розробку Android-додатків за допомогою App Inventor, перегляньте посилання - "appinventor.mit.edu/explore/ai2/tutorials.html".

Ви також можете спробувати - "meta-guide.com/videography/100-best-appinventor-videos".

Завантажити Door-lock Android Source.aia

Завантажити Door-lock android app.apk

Com/store/apps/details?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: