Прототип NFCKEY. Как мы шли к этому 4 месяца и бюджетом 25к рублей?

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

Некоторые части статьи будут написаны нашими инженерами, чтобы передать их опыт максимально правильно. Их я буду помечать, так что не пропустите.

Давайте с ними познакомимся: Максим и Коля — студенты, учащиеся на направлении “Автоматизированные системы обработки информации и управления”. У каждого из них есть серьезный фундамент в инженерии и программировании, но опыта реализации задач на практике не было. Из-за этого, конечно, приходилось разбираться с некоторыми сложностями, что называется, на ходу. Но в целом это им никак не мешало глобально, и в достаточно короткие сроки мы закончили прототип.

Итак приступим к рассказу, как мы ничего не имея на руках, с бюджетом в 25к рублей собрали полноценный прототип достаточно сложного устройства.

Будем двигаться в хронологическом порядке и разделим статью на 4 части: каждая часть — один месяц, чтобы были понятны контекст проблем и решение, к которому мы прибегали при имеющихся возможностях.

Август 2023. Закупка составляющих и начало разработки

Начало августа: команда пока что состоит из 4 человек (историю создания команды можете прочитать здесь), мы начинаем только продумывать бизнес-план и финансовую модель. По сути на данном этапе нет ничего кроме небольшого MVP Android-приложения и пары презентаций для конкурсов, которые мы проходили для составления гипотезы и ее проверки.

Почему получился бюджет 25к рублей? Как такое возможно? Все очень просто, команда все это время работала на вере в проект и искала финансирование. Так что затраты были необходимы только на материалы и подписку Apple Development.

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

Далее инженеры:

"Что конкретно нам нужно для сборки прототипа?

Мы решили разрабатывать его на основе arduino uno — достаточно логичное и популярное решение для начальной стадии разработки.

Arduino uno — это плата микроконтроллера с открытым исходным кодом.

Я думаю, многие встречали множество видео на ютубе, где люди что-то мастерят с помощью нее. Также она распространена и в области робототехники.

Так как мы работаем с NFC, основой нашего прототипа стал модуль PN532 — RFID/NFC-сканер. То есть этот модуль может как работать с брелками и пластиковыми картами, так и взаимодействовать со смартфонами и nfc-метками.

Далее по списку нам необходимо: плата (в нашем случае arduino uno), реле, пару шин и электромеханический замок.

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

По стоимости все это вышло в абсолютные копейки. На момент августа мы вообще думали, что управимся за 5000 — 6000 рублей на весь прототип. К сожалению, это оказалось не так. Одной из причин стало приложение для iOS, которое должно было иметь доступ к NFC. У Apple для этого необходима подписка разработчика, которая стоит 100$ в год. Нам повезло, и мы оплатили ее через Билайн на уже давно созданном Apple ID, у которого такая возможность была открыта.

По сути, сейчас для РФ это единственный удобный и быстрый способ. Для тех, у кого такого Apple ID нет, процесс будет сложнее и придется потратить на больше времени, и чек выйдет уже не в 100$, а в 120-140$.

Также в этот период начались поиски iOS-разработчика и нового Android-разработчика, а у инженеров — первая сборка прототипа:

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

Наладив этот момент, мы перешли к размышлениям: как же все-таки подружить arduino и NFC на телефоне. На первый взгляд задача вам может показаться простой — мы сами поначалу считали точно также.

Для того, чтобы проверить работоспособность модуля, мы сделали самый примитивный сканер, который можно представить. В комплекте с модулем считывания PN532 шли брелки и карты. Мы считывали их UID, которые использовали для открытия замка.

Прототип NFCKEY. Как мы шли к этому 4 месяца и бюджетом 25к рублей?

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

Основная задача состояла в том, чтобы при поднесении телефона срабатывало открытие замка. Как уже было сказано ранее, первоначально была идея сделать открытие замка на основе проверки полученного UID. Но в связи с этим появлялось множество вопросов:

  • Точно ли это будет безопасно?

  • Могут ли UID для разных устройств совпасть?

  • Как дистанционно дать доступ человеку, который находится сейчас, например, в другом городе?

Касаемо безопасности — существуют приложения на телефон, которые способны скопировать UID устройства. Поэтому, если злоумышленник узнает UID и эмулирует это значение — он сможет беспрепятственно открыть замок.

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

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

Сентябрь. Танцы в темноте

Начало осени было с заголовком “все идет по плану”:

  • Подали заявку на грант с фондом в 3 000 000 рублей.
  • Нашли Android и iOS разработчиков и взяли в штат.
  • Началась полноценная работа над приложением.
  • Нашли дизайнера и начали работать над новым лого и бренд-листом.

Но из этого плана выбивался прототип. К сожалению, инженерная часть сложнее, чем разработка приложения, так как многие вещи не “загуглить”, а ChatGPT все проблемы не решит. Из-за этого следующий этап разработки затянулся на полтора месяца и вызвал очень много споров и огорчений в команде.

Далее инженеры:

Итак, мы поняли, что распространенные сейчас технологии нам не подойдут. Но какой подход тогда подобрать и в какую сторону начать двигаться?

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

Однако нам было нужно, чтобы действие выполнил сам замок без приема сигнала на открытие через WI-FI или Bluetooth.

У NFC метки есть одна замечательное свойство — NDEF запись, через которую можно передавать всю необходимую информацию. И устройство эту информацию может получать исходя из полученных данных, открывать замок или держать его закрытым.

Мы решили, что это именно то решение, которое нам нужно. Поэтому задачей, которой мы вплотную занялись, стало эмулирование nfc метки при помощи модуля PN532. Именно эта задача и заняла огромную часть времени. В интернете было много статей с указанием того, что такое сделать возможно. Однако ни одна попытка не увенчалась успехом.

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

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

Состояние было близким к отчаянию, складывалось ощущение, что нужно обязательно решить задачу, которую до тебя никто не смог решить. И не факт, что сможет. В процессе поисков решения радостный настрой постепенно улетучивался. И в момент полного разочарования пришла мысль — а зачем делать то, что уже есть. Если не получается эмулировать метку, то зайдем просто с другой стороны. К сожалению, решение нам рассказывать запретили, сказали украдут :). Когда нашу разработку мы защитим патентом, расскажем во всех подробностях.

Октябрь. Свет в конце тоннеля

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

В этом месяце была одна хорошая новость: мы наконец-то решили сложность с прототипом, которая никак не давалась нам в сентябре.

Далее инженеры:

"После принятия решения о переходе к новому подходу дело пошло намного бодрее. Основной задачей стало то, как взять нужные данные с метки. Эта задача решилась достаточно быстро, но только со стороны кода. Arduino настолько капризная вещь, что не знаешь, как она поведет себя на следующий день. Бывали ситуации, когда вчера все работало идеально, а на утро ты решаешь проверить результат и все перестает работать.

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

Далее по нашему плану следовала сборка полного рабочего замка.

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

Когда в результате мы получили работающий вариант — счастлива была вся наша команда.

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

Ноябрь. Сборка стенда и результат

Самый успешный месяц за все время существование проекта:

  • Наладились все процессы командного взаимодействия.
  • Достигли четкой коммуникации между всеми участниками.
  • Закончили весь UX/UI приложений и их функционал.
  • Наши статьи начали набирать очень серьезные цифры.
  • Вышли на корпоративный блог на Habr.
  • Начали делать shorts.
  • Нашли первых партнеров.
  • и много что еще…

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

После того, как была готова техническая часть, все это необходимо было красиво подать. Вряд ли кто-то захочет смотреть на торчащие провода. Купить железный стенд за 20-30к рублей мы, конечно, не могли, поэтому пришлось изворачиваться.

Далее инженеры:

Нам потребовались материалы для изготовления стенда: доски толщиной в 4 сантиметра, брусья для изготовления косяков, дверные петли, ручки и все остальное. Также нужно было докупить полноценный врезной замок, который выполнял бы все необходимые функции.

Здесь возникла сложность с тем, что на российском рынке хороших вариантов, которые нам подходили, за адекватные деньги просто не было. Минимум 13 000 — 14 000 рублей, что нас не устраивало. Но тут нам подвернулась удача, и через знакомого нашего руководителя получилось достать этот замок за 2000 рублей, списанный с производства, но при этом абсолютно новый. Для будущего продукта мы уже нашли отличный вариант в Китае: значительно дешевле и не уступает российским аналогам.

Также нам нужно было достать инструменты — это тоже было нелегкой задачей. Передача инструментов из рук в руки выглядела, как сцена в фильме, в котором герои, чтобы замести следы, передавали что-либо через 5-6 человек.

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

Прототип NFCKEY. Как мы шли к этому 4 месяца и бюджетом 25к рублей?

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

Мы перепробовали все: меняли питание замка, меняли питание для arduino, перепаяли все контакты, заменили часть модулей. Мы уже начали задумываться над тем, что катушка замка была с дефектом и начала создавать электромагнитные волны, которые мешали работе нашей электроники. Да, мысль абсурдная, но на тот момент она казалась нам единственной возможной.

Мы решили попробовать с другим таким же замком, подключили его и… .

Ничего не изменилось.

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

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

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

Кроме того мы решили переделать корпуса для электроники, чтобы вся конструкция выглядела более компактно и привлекательно. Например, корпус с батарейками мы поместили в основной блок, что помогло нам сделать цельную конструкцию.

Видео работы прототипа можете посмотреть <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Ft.me%2Fnfckey&postId=948186" rel="nofollow noreferrer noopener" target="_blank">здесь</a> в последнем закрепленном сообщении
Видео работы прототипа можете посмотреть здесь в последнем закрепленном сообщении

Сейчас мы работаем над усовершенствованием системы безопасности, добавлением функций интеграции в умный дом, системой оповещений пользователя о посещении его дома и о возможном незаконном проникновении.

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

В сумме все обошлось в 24 500 рублей:

  • 8990 - подписка Apple Development для тестирования
  • ~7000 - материалы и комплектующие для замка
  • ~5000 - материалы для стенда
  • ~3500 - другие мелкие расходы

Итог

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

Пока наша история дошла только до прототипа. Мы уже ездили с ним на мероприятие, где успешно выступили. Дальше нас ждет финансирование, партнерство с производством, переход на программируемые модули и выход на рынок. Предстоит еще много этапов разработки, и, возможно, новые трудности будут еще объемнее. Но мы точно уверены, что справимся с ними.

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

Если хотите посмотреть на наш продукт, опросы, внутреннюю кухню команды и многое другое вам сюда.

Всю остальную информацию о проекте и технологии можете найти на сайте.

1717
119 комментариев

Я так понимаю, это электромагнитный замок, который можно открыть смартфоном?

1
Ответить

Привет. Электромеханический. У электромагнитного есть недостатки и уязвимости серьезные

2
Ответить

Комментарий недоступен

Ответить

Привет. Уже писали это в одной из статей.
Можешь прочитать здесь https://vc.ru/tech/904088-nfckey-izmenit-vashe-ponimanie-o-privychnom-byte

1
Ответить

Аххах. Добро пожаловать в адовый красный океан хардовой разработки. Когда понадобится производство - пишите, постараемся спасти вашу затею)).

1
Ответить

Естественно и денег человеку отвалите на эту затею? Ну или по крайней мере, производство пойдет за долю в стартапе?

Ответить

Интересно, что вы предложите этим студентом вместо Ардуино)

Ответить