Калитка на сканере отпечатков пальцев CROW R503
- Войдите на сайт для отправки комментариев
Заняться этой проблемой меня сподвигло 2 не связанных друг с другом событий, во первых на работе при решение весьма конкретных задач всерьез обсуждали некую автоматизацию с использованием биометрического распознавания, вариантов было много, но все или слишком дорогие или нам не подходили.
Ну а второе событие - меня обокрали :) сперли с участка велосипед, и хоть злодеев нашли и велосипед вернули но я стал укреплять передний край обороны от злодеев (датчики, камеры и т.д.).
И вот я добрался до калитки, стал думать как сделать и надежно и безопасно, сначала хотел купить датчик "таблетка", но потом понял, что это не удобно, и потерять можно и забыть дома (дети постоянно бегают то туда то сюда).
От сюда возникло желание сделать так, что бы нельзя было ключ украсть или потерять. Но по сколько мне было интересно разобраться и я решить сразу и вопрос который возник на работе, то я заказал датчик без платы управления.
Начал я с библиотеки Adafruit_Fingerprint, но очень быстро понял, что она во первых сильно кривая, а во вторых в ней банально нет поддержки части нужных команд датчика R503.
В результате я просто частично ее использовал в виде вставок в код.
На момент публикации у меня все работает в домашних условия (платы спаяны, код написан). Но поставить на улицу пока не могу (погода плохая), буду ждать выходных.
теперь ТТХ того, что получилось:
1. После обучения, распознает палец почти со 100% вероятностью, не срабатывает примерно 1 раз на 50 попыток. Чужие пальцы ни разу не привели к открытию (проверял на всей семье).
2. Время распознавания около 1 сек
3. Обучение на 1 палец занимает 2...3 минуты (необходимо создать 3 модели)
В 1 посте выложу код и схему (что бы можно было править)
схема
файл R503.ino
файл A_Config.h
файл GROW_R503.cpp
файл GROW_R503.h
файл Run.cpp
файл Run.h
файл other.ino
У меня на мобиле только чистые пальцы распознаются. Стоит только мелким ремонтом (с наличием пыли) позаниматься - все, начинаются капризы. Мол пальцы не те...
Вот и я ж про то же. А на улице пальцы то замёрзли, то увлажнились, то ещё чего. Потому и спрашиваю про плохую погоду.
Сканер отпечатков в условиях улицы - ИМХО это баловство. Либо надо его весить в сухом и теплом месте.
У нас в офисе я ставил заводской сканер отпечатков на входной двери. Работает нормально, если руки сухие. Чуть только немного влажные - все, не открывает. Ну и плюс нужно ручное дублирование открывания замка. Пару раз замок глючил, если бы он с ключа не открывался - куча народа оказалось бы запертыми в офисе.
В детском саду у нас около года на калитках (на улице) стоят примерно вот такие замки
Я такой замок тоже настраивал и устанавливал. У него есть возможность привязать брелок (как у домофона), код менять можно хоть каждый день. Единственный минус - от частого использования некоторые цифры на кнопках "облезли". И на одной панели перегорела подсветка одной из клавиш. Настроить можно различные типы замков, и еще есть куча настроек. Цена замка в районе 1-2 тыс. руб. и выглядит вполне прилично. Если прикинуть, что его каждый день открывают по несколько сотен (если не тысяч) раз - вполне достойный вариант. И ключи таскать не надо.
Есть еще замки в антивандальном исполнении, типа таких


они на вид попрочнее, программируются тоже легко. Только вроде брелки к ним не привязываются.
Если решите все-таки ставить отпечаток пальцев - отпишитесь о полевых испытаниях.
ставить на улицу буду в выходные (если дождя не будет),
пока провел следующие испытания
1. сильно потер пальцы (до красноты), эмитация физ нагрузки - все ОК
2. подложил под палец 2 нитки, эмитация мусора (пробовал под разными положениями) - все ОК
3. втер в палец цемент, эмитация грязных рук - все ОК
4. сильно намочил палец - НЕ работает
5. сухой палец и влажный датчик (из пульеверизатора, аналог росы) если не слегка влажно - все ОК, если прямо каплями - НЕ работает
6. через тонкий слой пленки - вообще не срабатывает датчик касания
Поставил на улицу, правда не до конца (но об этом чуть ниже)
На улице 0 градусов, влажно и что-то моросит, короче мерзость, провозился около 3х часов сам замерз, но точно могу сказать датчик то-же замерз :)
Итого - сам сканер работает почти так-же как дома, чуть хуже стал работать датчик наличия пальца (контакт WakeUp), но распознавание и поиск работаю хорошо.
Сами пальцы от мороза то же "потеряли форму", и стали давать примерно 20% ошибок, но дополнительное "дообучение" (повторил обучение и он добавил по 1 модели на палец), в результате правильное распознование более примерно 95%
теперь о том что я не доделал, и тут нужна помощь сообщества
Короче у меня есть явная проблема в электрической схеме, я не зря запаял джампер "test", без него вся схема работает нормально, но само собой замок не открывается.
Когда я его ставлю у меня проседает напряжение на датчике и он перестает работать,
Средний провод разьема отмеченный как "Key" идет из вызывной панели и на нем постоянные +4,5v, это провод должен идти на внутренний выключатель "Открыть замок".
То есть если замкнуть "Key" на землю, то замок открывается.
Как правильно реализовать такое замыкание? понятно, что можно поставить реле, но очень не хочется...
Средний провод разьема отмеченный как "Key" идет из вызывной панели и на нем постоянные +4,5v, это провод должен идти на внутренний выключатель "Открыть замок".
То есть если замкнуть "Key" на землю, то замок открывается.
Вы точно уверены, что логика именно такова? У меня вот всё по другому. Открыванием занимается сама вызывная панель по сигналу с домофона. Она (панель) замыкает питание на соленоид замка. А когда она ничего не замыкает, то мультиметр показывает на проводе те же 12В, что и должны быть при открывании за счёт тока утечки ключа.
Средний провод разьема отмеченный как "Key" идет из вызывной панели и на нем постоянные +4,5v, это провод должен идти на внутренний выключатель "Открыть замок".
То есть если замкнуть "Key" на землю, то замок открывается.
Вы точно уверены, что логика именно такова? У меня вот всё по другому. Открыванием занимается сама вызывная панель по сигналу с домофона. Она (панель) замыкает питание на соленоид замка. А когда она ничего не замыкает, то мультиметр показывает на проводе те же 12В, что и должны быть при открывании за счёт тока утечки ключа.
Уверен, вот схема
кроме того если я замыкаю этот контакт на землю действительно замок открывается
Вот как установил сам датчик, по идее он закрыт от ветра и дождя (с верху над калиткой навес)
Все теперь у меня работает. Была проблема с оптроном, он банально не рабочий был.
заодно поменял резистр на 10к (можно и меньше, но учитывая, что мне не требуется яркость и тот факт, что этот идет с чужого устройства решил оставить 10к), и поставил светодиод для визуального контроля.
Исправил несколько багов в программе.
схему и программу в 1 посте обновил до актуального состояния.
Теперь, что касается субьективного ощущения (на улице -2 и мелкий снег)
1. на разьем 3.3vt лучше подавать более высокое напряжение чем 3.3, от этого улучшается "отзывчивость", по той документации которая у меня есть, допустимо до 6 вольт, у меня сейчас не смотря на стабилитрон (на 3.3) реально 4.3 вольта, по чему - не понимаю, когда питание было от USB было ровно 3.3, а сейчас 4.3, но я включал и напрямую на +5, отзывчивость была выше.
2. есть эффект "разогрева", возможно при -25 будут проблемы, будем ждать морозов
3. Обучение надо периодически повторять, при этом добавляются модели на "скукоженные" пальцы
4. ощущается некая "тормознутость" по сравнению например с телефоном, причина в том, что питание на датчик подается только после обнаружения касания, то есть расходуется время на определение касания+запуск подуля+сканирование+распознавание+поиск в базе. На холодную это все примерно 2...3 сек, при повторном скане 1..2 сек
Прошла неделя, за это время был и снегопад и ледяной дождь. В целом все работает хорошо. Для датчика единственно чего ему мешает - это когда он мокрый, все остальное работает. Проверка проходит на 4х членах семьи, возраст от 8 до 50 лет, полет хороший.
сегодня наконец запихнул платы во временную коробочку, когда будет тепло надо будет переделать с макеток на нормальную плату и сделать коробочку по размеру побольше.
у меня сейчас такая https://www.stroyportal.ru/catalog/section-korobki-montazhnye-2668/korobka-raspayachnaya-80h80h25-otkrytoy-provodki-b-684306313/ но висит на видном месте, по этому надежную и страшную не хочется.
сейчас из бутылки феном сделал сверху колпак, то есть сейчас ничего не промокнет, но во первых нужно отверстие для кнопки обучения, наверно нужно светодиод вывести.
Короче надо будет весной посмотреть, сейчас все равно этим заниматься холодно, к весне может 3д принтер куплю и напечатаю или подберу чего...
Ну, для видного места я сам на принтере напечатал такую, что сверху у неё вообще никаких щелей нет от слова совсем, т.е. никакой дождь и снег ей не страшны. Там у меня профильная труба 40х25, вот я и сделал коробку для клемм в аккурат шириной 25мм, чтобы как родная стала. Могу показать, если интересно.
Всем кого интересовали полевые испытания:
Пришлось третий раз проводить обучение, видимо пальцы меняют геометрию от множества параметров. При чем у меня сильнее хуже чем у остальных принимаются, у детей вообще замечательо у меня иногда с десятого раза... После дообучения все хорошо, но не надолго, примерно на месяц хватает.
наверно буду проект дорабатывать, поставлю sd карту и заложу программу самообучение, на основе принятых отпечатков буду строить варианты с теми которые не прошли, по идее те которые совсем чужие не смогут объединится в пару.
Короче если до НГ придет блок питания для сверлильного станка (3 посылки зависли на почте) доделаю его, если не придет займусь этой доработкой...
Прошла зима.
Разобрал макетку, вытравил плату, перепаял, залачил цапон лаком, на плату нанес технические надписи. Внес небольшие изменения, в основном в схему питания.
Исправил в коде 1 серьезную ошибку (переполнение буфера) и немного улучшил стабильность и скорость.
Напечатал нормальный корпус.
Все работает, ничего переделывать больше не планирую.
РЕЗЮМЕ: в целом данный датчик вполне подходит для средней полосы для работы на улице без прямого попадания на него осадков (под козырьком)
зы
в 1м посту обновил и схему и код
Скажите пожалуйста как вы это все прошивали? через Atom? ардуино IDE ругается...
Скажите пожалуйста как вы это все прошивали? через Atom? ардуино IDE ругается...
шил через IDE
я в коментах всегда пишу версию на чем шил - версия среды Arduino 1.8.14
А не могли бы Вы скинуть все файлы в архиве? Мб я что-то не так перенес из кода.
какую ошибку выдает?
Ну можно ж сделать намного проще, штош вы.
Звоните своей ардуине со своего номера. Ардуина сверяет входящий номер. Если он true, система сбрасывает звонок и открывает/снимает с охраны. Никакого внешнего контакта, никаких чужих.
Не забываем про watchdog
Была открыта IDE от Flprog. Поставил отдельно IDE, установил библиотеку и все равно такая же ошибка...
Была открыта IDE от Flprog. Поставил отдельно IDE, установил библиотеку и все равно такая же ошибка...
это проблема не скеча а установки IDE, заведи новую тему (в соответствующем разделе) с описанием ошибки, народ поможет, я спать ушел :)
Звоните своей ардуине со своего номера. Ардуина сверяет входящий номер. Если он true, система сбрасывает звонок и открывает/снимает с охраны. Никакого внешнего контакта, никаких чужих.
Не забываем про watchdog
Не понимаю, чем Ваш вариант проще:
1. Нужно достать телефон, набрать номер, дождаться ответа. Это всё секунд 10-15 минимум. Отпечаток пальца всегда под рукой в прямом и переносном смысле слова.
2. Существуют сервисы подмены номеров, любой может открыть дверь, зная Ваш номер. Способов узнать номер можно придумать кучу.
3. Телефон абонента может быть временно недоступен. При отсутствии движения по счету месяца через три оператор блокирует симку.
1. Нужно достать телефон, набрать номер, дождаться ответа. Это всё секунд 10-15 минимум. Отпечаток пальца всегда под рукой в прямом и переносном смысле слова.
2. Существуют сервисы подмены номеров, любой может открыть дверь, зная Ваш номер. Способов узнать номер можно придумать кучу.
3. Телефон абонента может быть временно недоступен. При отсутствии движения по счету месяца через три оператор блокирует симку.
Да, мой вариант дольше, но безопаснее и без контакта с погодными условиями.
2.От того, что вы подмените номер, вы совершенно не можете знать, на каком номере висит охранка. Куда будете звонит с подменного номера-то?
С телефоном, когда то делал следующий доступ и он до сих пор работает (используя то, что у всех операторов связи по их закону, 3 секунды соединения всегда бесплатны для людей) .
1. Подойдя к двери, человек звонит на номер для открытия 2. Контроллер, определив номер, кладет трубку. 3. Найдя номер в базе доступа, перезванивает на номер человека. 4. Если действительно человек хочет пройти в дверь, он поднимает трубку. 4. контроллер видя, что подняли трубку, ее кладет и открывает дверь. 5. Если человек дает отбой (сам кладет трубку), то означает, что это не он хочет пройти. Да, вот этот алгоритм занимал примерно 5-7 секунд. Но он был надежный и работает годами бесплатно на безлимитных тарифах опсосов. Потому как они блокируют симку, если нет исходящих/входящих звонков а не движения по счету. Может уже что то поменялось у них но раньше было так.
И в данном случае, ни какой подмены номеров не прокатит, потому как звонок контроллера будет прямым. Ну и я думаю безопастникам будет повод задуматься о возможной попытке проникновения.
С телефоном, когда то делал следующий доступ и он до сих пор работает (используя то, что у всех операторов связи по их закону, 3 секунды соединения всегда бесплатны для людей) .
Все варианты с телефоном требуют наличие этого самого телефона, живя в деревне Вы бы знали, что наличие телефона не всегда возможно, а при наличии детей тем более.
Кроме того если уж привязыватся к физическому устройству, то не к телефона а к таблетке/брелку это однозначно и проще и быстрее и надежнее.
Лично я за биометрию, если Вы хотите привязку к внешнему устройству - Вам никто не запрещает...
может проще архивом скетч выложить?
может проще архивом скетч выложить?
мне тут zip не дает сохранять в своих файлах, а выкладывать на левые ресурсы не хорошо, он сдохнет через какое-то время
мне тут zip не дает сохранять в своих файлах, а выкладывать на левые ресурсы не хорошо, он сдохнет через какое-то время
скинь на мыло ua6em собака orviss точка ru
и мне бы на мыло не могли бы скинуть? kesha.ncuxxx@gmail.com
скинул на 3 ящика.
в папке "схемы" 3d модели корпуса, плата, схема, и официальная pdf по датчику
Спасибо огромное, вот теперь скетч компилится без ошибок.
Спасибо огромное, вот теперь скетч компилится без ошибок.
да в первом посту строка 31 (файл R503.ino) обрезалась, должно быть
строки 11,12 (файл GROW_R503.cpp) обрезалась, должно быть
строка 88 (файл GROW_R503.h) обрезалась, должно быть
короче обрезались символы больше, меньше.