Skip to content

Instantly share code, notes, and snippets.

Created September 12, 2017 15:02
Show Gist options
  • Save anonymous/b2baa0d826b0a0e7860ed648a08dbf70 to your computer and use it in GitHub Desktop.
Save anonymous/b2baa0d826b0a0e7860ed648a08dbf70 to your computer and use it in GitHub Desktop.
Запись rfid карты

Запись rfid карты



Система доступа на RFID картах
Чтение и запись RFID меток. Модуль RC522 для Arduino.
Как подключить RFID считыватель RC522 к Arduino

Авторизация Зарегистрироваться Логин или эл. CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей. Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino! Данил Борчевкин команда lab CraftDuino или аналог; 2. Модуль RC ; 3. Провода гибкие папа-папа 5. Два резистора R или 1K ОБЗОР RFID-модуль В комплекте к модулю идет 2 RFID-метки — в виде карты и брелока. Данный модуль может быть использован для различных радиолюбительких и коммерческих применений, в том числе контроля доступа, автоматической идентификации, робототехники, отслеживания вещей, платежных систем и т. Комплект модуля мне по душе по 3 причинам: RFID-карта с возможностью перезаписи; 3. RFID-брелок да, тот же, который используется для открытия домофонной двери с возможностью перезаписи. Даже один взгляд на данный комплект рисует в голове множество способов применения RC Автоматический замок для открывания двери, ящика, шкафа; 2. Программатор для домофонных ключей; 3. Организация складского учета но с этим чуть сложней — нужно закупить RFID-метки, такие же, как и на любом товаре в современном магазине ; 4. Открытие закрытых ранее для вас дверей копирование и программирование карт для организации доступа к вашим сокровищам. Модуль RC имеет 8 выводов написаны по порядку расположения на модуле: Ни в коем случае не подключать к пину RESET на CraftDuino! Данный пин цепляется на цифровой порт с PWM; GND — Ground. Далее планируется его использовать] ТЕСТОВЫЙ СКЕТЧ Для работы с данным модулем есть 2 разных пути: Изучить работу микросхемы, форматы команд и запросов и написать свой софт; 2. Не заморачиваться на первом этапе и воспользоваться готовой библиотекой и примерами. Если обнаруживает RFID-метку, то выводит ее номер в десятичной и шестнадцатеричной системах исчисления; 3. Если предыдущая метка не убрана от модуля и продолжает считываться, то выводит в com-порт точку. Я не сказал бы, что данный скетч мне нравится, но пример есть пример. СВОЙ-ЧУЖОЙ Для интереса, давайте запилим распознавание определенной карты. Чтобы это выполнить, необходимо выполнить следующую логику работы: Создать массив с номером известной карты в качестве разрешенного; 2. Считать серийный номер и записать его в отдельный массив; 3. Произвести поэлементное сравнение разрешенного номера со считанным; 4. В зависимости от результата, выполнить разные действия. Не только из-за лени переделаем вышеприведенный пример: Более подробно можно почитать здесь Кроме этого, уберем ненужное выведение точек в случае считывания одной и той же карты и прикрутим сравнение с разрешенным номером карты с соответствующей последующей реакцией. Теперь, изменяя и дополняя функции allow и denied , можно получить любое необходимое действие. Поэтому было принято решение на сравнивание всех битов. Для индикации возьмем 2 светодиода в моем случае это синий и желтый , и прицепим их на цифровые порты 6 и 7, как показано на рисунке ниже. Кроме того, не забываем об ограничении тока посредством резистора. Уже можно организовывать доступ в помещение. Но есть огромное НО — то, что мы выводим как серийный номер, нифига им не является по крайней мере, в таком виде — советую покопаться в самой библиотеке и понять, что UID номер карты перевернут, а один из байтов — CRC. Ссылки Даташит на микросхему MFRC Репозиторий цикла статей с даташитами, примерами, библиотекой и т. Ссылка на скачивание библиотеки. Спасибо за статью, жду продолжения. Особенно хочется узнать о перезаписи меток, об этом вообще нет нигде ни слова…. Попробовал сделать тоже самое, для начала. Соединил uno с моделем rc таким образом: И на карту, ессно, модель не реагирует. Может есть какие-нибудь очевидные ответы? Результат тот же — не определяется модуль. Попробовал с разными либами — пока нет положительного результата. Диод D1 не должен гореть, кроме как в случае, если зарегистрирована карта, которая указана как master. Очевидный ответ — собрать полностью точно так же, как и в статье, чаще всего — ошибка подключения. А можно описание того модуля, которым вы пользуетесь? Просто есть такая возможность, что между ними существует какая-то разница. Ну неделе попробую на леонарде и меге, как раз должны придти — отпишусь. Модуль RFID из этого набора www. Те же 2 rw ключа в комплекте. Спасибо, что сказали, что диод гореть не должен. Хотя на видео на ютубе www. Может быть еще и в этом проблема, хотя шанс очень низкий. По поводу зажигания диода — в коде все прозрачно — если детектируем мастер карут, происходит вызов фунции allow , предназначенной для выполнения действий, связанных с нужной нам картой. Платы только в пятницу пришли, извините за долгий ответ. Ситуация пока без изменений. Попробую заказать ещё несколько rfid шилдов и проверить. Я бы вам советовал, прежде всего, обратиться к вашему поставщику, выяснить этот вопрос, по возможности попросить схематику, описание используемых решений и компонентов, тогда, я думаю, ситуация быстро прояснится. Если под схематикой понимается подписи к ногам — то есть на самом модуле. В соответствии с ними я подсоединяю провода. Но к поставщику обращусь, вы правы. На карте из Калининграда всё прекрасно работает. Поэтому пока буду считать, что из Китая пришёл брак или что-то уж совсем старое. Это моё видео, там совсем другой скетч загружен, библиотека RFID в нём не используется, там только SPI. DimanRoad 25 января , Нет, данный модуль читает только метки стандарта ISO A бренда Mifare. Статья классная, хотелось бы продолжения цикла. Если не секрет, то когда увидим продолжение? Все сайты облазил, как у Вас работает этот код? У меня же компилятор выдает ошибку на этой строчке, почти в самом начале! Saushin-Eldar 24 января , Скопируйте и запостите в эту ветку ошибку, тогда я вам смогу помочь. Saushin-Eldar 25 января , Скорее всего вы используете другую библиотеку. Исправил ссылку в статье — загрузите данную библиотеку, представленную в статье и пример будет работать. При попытке скачать библиотеку — You do not have access to this repository. Да, можно, но не с этим модулем. Радиус считывания будет в данном случае напрямую зависеть от антенны. Больше антенна — больше радиус считывания. Метки, соответственно, тоже дороже. Например плоская антенна на печатной плате для считывания до см, будет иметь размер фактический примерно на мм. А вот цепь согласования — точно нужна будет. AntonNovikov 21 июня , Так стоп рабочая частота это что? Кило герц или мега герц? Можно ли с помощью этого модюля считать килогерц? Написано явно — Я совсем не понимаю эту тему А если кварц поменять, не поможет? Физический и канальный уровни отличаются для Mifare для которого и предназначен данный считыватель и для EM самый популярный стандарт на кГц. Для ознакомления с технологиями RFID можно почитать эту статью или же обратиться к википедии , а вот в этой статье описано как на ATTiny13 собрать свой считыватель на кГц. Спасибо огромное за ссылки, очень нужны. Большое спасибо за Вашу работу. Отличная программа и у меня сразу все запустилось. Я решил ее доработать и сделать замок для маленькой мастерской на работе на трех человек. В программировании я новичок, просто работаю инженером-наладчиком. Я захотел чтобы при первом касании магнит отпускал дверь, а при повторном притягивал. Фактически это триггер или переключение светодиода одной кнопкой. Я использовал флаг состояния и вставил маленький цикл после функции allow Но реле переключается всего один раз. Я бьюсь над этой задачей вторую неделю. Не могли бы Вы подсказать где у меня ошибка. Losos 19 ноября , Если флаг равен нулю, то отключаем замок 2. Если флаг не равен нулю, то включаем замок. Но в теле if у вас не происходит изменения значения флага. Совет — тело второго if делаем телом else первого. Итого, рабочий код для функции allow: Доступно и хорошо написано с сотней примеров и упражений, живой язык. К сожалению, здесь нельзя редактировать коментарии. Сейчас залил Ваш скетч- все работает. Потерял столько времени из-за невнимательности. В своей работе я использовал учебный пример с сайта. Данная программа в отличии от предыдущих, которые циклично повторяли действие при удержании, выполняет всего одно действие при нажатии и удержании. Когда я изучал в году программирование на Фортране преподаватель нам сказал: И он был прав. Преподаватель все таки нужен. Вторая книга унылого немца просто деньги на ветер. Ни комментариев в примерах ничего вообще. А Джереми ничего хороший препод. Я еще все его видео уроки пересмотрел, парень он талантливый. Мало кто из хороших инженеров может быть хорошим учителем. Но его 12 урок по чтению меток меня не вдохновил. Непонятно зачем он читает столько байтов когда достаточно UID метки. Ваша программа намного проще и короче. Это хорошо по крайней мере для новичков. Спасибо еще раз за Вашу работу. В интернете к сожалению информации мало. Много сайтов где сидят копи-пастеры и тупо перепостят. Losos 20 ноября , Я продолжаю делать замок основываясь на Вашей программе. Но моя идея вмонтировать ридер в середину двери и открывать и закрывать ее с обоих сторон карточками с треском провалилась. Дверь оказалась слишком толстой 40 мм. Точнее говоря карточки читает, а брелки не очень. У синеньких брелков размер антенны меньше чем в белой карточке. Поэтому я решил добавить в схему кнопку. Таким образом логика получается следующая: Подходим к двери и смотрим на светодиоды горит красный-дверь заперта, зеленый-открыта. Открываем дверь брелком-загорается зеленый идем внутрь. Хотим запираем за собой кнопкой, хотим нет. Выходим из мастерской смотрим на светодиоды, если дверь заперта отпираем тоже кнопкой, снаружи запираем брелком. Сервопривод ставить не хочу принципиально при любой аварии ригель запрет дверь намертво. А электромагнит можно всегда открыть, вырубив автомат в ГРЩ. Я сделал небольшую платку для кнопки основываясь на схеме Джереми Блюма по аппаратному устранению дребезга с помощью RC цепочки. Далее я пробовал вставлять стандартный скетч в Вашу программу. Поэтому я вставил этот кусок сразу после команды void loop. Ридер читает карты, процесс чтения сопровождается веселым попеременным миганием светодиодиков. Если карточка не в базе то загорается красный и гудит мерзкая нота. Но есть одно но! Если я открою дверь картой и запру кнопкой, то следующий товарищ должен будет два раза прикладывать карту. У меня получились два независимых триггера. Точнее говоря у кнопки приоритет. Ее никогда не надо два раза нажимать, а вот карточку надо. Кнопка всегда почему-то знает состояние флага после прикладывания карты. А карта перекидывает состояния флага независимо от кнопки. Я пытался приделать but к flag но не пойму как. По идее вообще незачем хранить состояние кнопки в but. То есть все разрешается либо если карта в массиве либо кнопка изнутри нажата. Я не могу понять что в Вашей программе является условием запуска void allow. Если у Вас будет время не подскажете как прикрутить кнопку? Losos 28 ноября , Увеличение дальности считывания можно было достичь либо увеличением антенны, либо переносом антенны в другое место путем установки пассивной связанной антенны. Опять же, посоветую книги господина Праты. То есть, если нет карты у ридера, либо считанный номер не совпадает — allow вызываться не будет. Если вы хотите вызывать ее еще из какого-то места — вам ничего не мешает. У вас уже есть флаг, который хранит состояние двери — зачем вам хранить состояние кнопки?! Соответственно, по факту флаг хранит текущее состояние двери можно его переименовать в более осмысленный. Если дверь была закрыта — она откроется, если открыта — закроется. Код после всех этих инсинуаций уже стал значительно запутанным и требует рефакторинга. Еще раз большое спасибо. Программу переделал все заработало как часы. Аппетит приходит во время еды. Я приписал небольшие кусочки с функцией tone , чтобы проигрывать гудки или короткие мелодии. Его наверное надо лепить в основной цикл loop. У меня сейчас играют три мелодии на вход, на выход и для хулиганов. Можно я задам последний вопрос? Можно ли по простому выделять людей или хотя бы одного человека из массива и играть им индивидуальную мелодию входа, или зажигать светодиодик? Или для этого надо всю программу менять. В свое оправдание скажу что я самый внимательный читатель Вашего блога в мире: Losos 1 декабря , Извините, если вопрос не по адресу. Мне необходимо решить следующую задачу. Надо идентифицировать фигурки на полях с физическим размером 5х5 см. Полей таких минимум На фигурке наклеена метка. Можно ли использовать для этого чип RC? Использовать один чип, и мультиплексно переключать антенны, которые находятся под каждым полем. Антенна, такая-же, как на goo. Как думаете, будет работать, если антенны переключать какими-то аналоговыми ключами. Скорость высокая не нужна. Поле можно опрашивать хоть секунду, и переходить на следующее. Такого опыта не было, точно ответить на вопрос не смогу. А из чего фигурки? Скорость переключения — это не главная проблема в данном вопросе. Возможно, что это будет работать, но нужно во первых систему мультиплексирования подобрать таким образом, чтобы она имела необходимый частотный диапазон, во вторых — согласовать каждый отдельный антенный тракт. Не факт, что такое решение и время на его разработку будет дешевле, чем готовые ридеры скорее всего, получится дороже Попробуйте, и по возможности, отпишитесь. Неужели никто не решал подобных задач. Пробовал решить эту проблему контактным способом, но всё получается очень ненадёжно. Надо идентифицировать минимум 64 различных фигурки. Как ещё можно это решить? Может что-то придёт в голову. Это всё нужно для детской развивающей игрушки. Контактный метод, как раз таки будет самым надежным и дешевым. У вас фигурки различные, Насколько я понял и нужно дектить ее тип. Спасибо Вам за ответы. Столько информации, которую я найти не мог. Я эту тему обсуждал на goo. Может будут какие-то идеи. Буду рад почитать Ваши мысли по этому поводу. Вам уже предложили все хорошие варианты, в том числе о чем я не догадался — DS Вы слишком рано думаете об оптимизации стоимости, не имея на руках готового прототипа и заранее отметая любые варианты, которые вам предлагают. Что вам мешает сделать поле 3 х 3 и протестировать свою идею?! Сделать на резистивных делителях, на герконах, на рфидах, на Ibutton, на DS, практика и эксперимент покажет, что лучше и что выживет в результате экспериментов. Здесь можно будет уложится в тысяч рублей. Затем отдаем это разным ребенкам и смотрим — жива ли вообще идея. Не совсем также понятна ориентация на ATMEGA — она стоит от 14 евро за штуку, в то время как STM32 — в два раза меньше SMT32F4 — Cortex M4 , EFM32 — в 3 раза меньше Wonder Gecko — Cortex M4 , а EFM32 — еще и лидер по энергопотреблению, что в разы увеличит автономность вашей игрушки по сравнению с ATMEGA имеется в виду расход на вычислительную часть. Блоги Топ var lsBlockBlogs; window. Прямой эфир Публикации Комментарии var lsBlockStream; window. Обзор, подключение, тестовый скетч. Хардварный "Свой-чужой" 58 в Блог им. OpenCV шаг за шагом. Поднимаем watchdog 15 в Блог им. Материалы сайта являются авторскими. Копирование и публикация материалов без разрешения запрещены!


Развод это гражданское или семейное право
В ттн указывается
Как использовать инвайт код
Слушать аудио рассказы ужасов
Эротические рассказы отдых в деревне
Как установить windows 7 на lenovo g50
Проблема с звуковым драйвером
Сонник самое точное толкование снов
Влияние вольфрама на свойства стали
Кефир и мускатный орех пропорции
Где купаться в петергофе
Прием перевод увольнение отпуска
Как сушить липовый цвет в домашних условиях
История юмор смех шутка одним словом
Какой интернет лучше подключить в омске
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment