RFID RC522 на ESP8266
Как-то давно заказал RFID модули RC522, модули пришли и были отложены в ящик, а на днях попались на глаза, решил «поиграться» и написать плагин. Изначально планировал использовать только как считыватель карт и передавать ее ID на сервер УД, но в процессе написания плагина решил сделать более полноценное устройство с возможностью работы в автономном режиме.
Данный модуль может быть использован для автоматической идентификации, контроля доступа, робототехники, платежных систем и т.д. Он построен на специализированной микросхеме MFRC522 от NXP Semiconductors. В комплекте с данным модулем идут две метки, одна в виде брелка, другая в виде карты. Несмотря на то, что у данной микросхеме есть несколько интерфейсов для работы с ней i2c, spi и uart. Именно заказанный мной модуль работает в режиме spi, без возможности выбора других интерфейсов. Это обусловлено разводкой платы, хотя «киты» могли бы предусмотреть такую возможность. Также на али можно встретить в продаже модули и с i2c интерфейсом.
Характеристики:
- Напряжение питания: 3.3V;
- Потребляемый ток :13-26mA
- В ждущем режиме: 10-13mА
- В спящем режиме: менее 80 мкА
- Рабочая частота: 13.56MHz
- Дальность считывания: 0 ~ 60 мм (в реале 0 до 30мм)
- Интерфейс: SPI, максимальная скорость передачи 10Мbit/с
- Размер: 40мм х 60мм
Схема
Так как собирал данное устройство в целях ознакомления, со схемой не стал усложнять и тем более проектировать отдельную плату, поэтому использовал готовые модули и собрал все на соплях проводах.
ПО
Программная часть сделана на основе DoT в виде плагина, об этом читаем тут.
Настройка модуля, а также добавление или удаление меток, осуществляется через веб-интерфейс. В настройках плагина можно задать частоту опроса RC522, длительность срабатывания реле и переназначить некоторые порты.
Добавление и удаление ключей (меток) происходит в автоматическом режиме. Чтобы добавить метку, нужно в веб интерфейсе перевести переключатель Mode в положения add, модуль перейдет в режим чтения меток. Далее подносим метку к RC522, в случае успешной записи ее ID подаст звуковой сигнал и через некоторое время в окне keys появится ID добавленной метки. По такому же принципу происходит и удаления меток, только для этого нужно перевести переключатель Mode в положение del или нажать на крестик в углу ID метки в окне keys, если знаете ID метки. Для перевода в нормальный режим работы, нужно вернуть переключатель в положение auth или перезагрузить устройство.
Обновление блока keys с ID метками, происходит автоматически раз 10 сек или можно обновить вручную нажав на кнопку Refresh. Для того чтобы управлять состоянием реле достаточно кликнуть по кнопке OPEN, что приведет к его срабатыванию на заданное в настройках времени.
MQTT
Устройство работает автономно, но и имеет возможность интеграции с сервером по средствам протокола MQTT, для этого необходимо установить плагин MQTT.
При появлении метки, в топик DOT-XXXXXX/info/RC522/card будет отправлен ее ID, а в топик DOT-XXXXXX/info/RC522/access состояние. Если метка была добавлена в память устройства придет значение true, а если нет, то соответственно false. Для управлением реле необходимо на топик DoT-XXXXXX/comm/RC522_dev/relay отправить true, что приведет к его срабатыванию.
Единственное нужно иметь ввиду, что при одновременном использовании web-интерфейса и работающем плагином MQTT могут возникнуть проблемы с нехваткой памяти, в результате возникнет ошибка и ESP будет перезагружена.
где скачать плагин RC522?
https://github.com/bondrogeen/DoT.RC522
Почему-то не считывает и не отображается в веб данные карт. В чем может быть проблема?
Подскажите что я делаю не так. Проект прошил. В веб интерфейсе видно RC522. Но метку ни как не могу добавить. Ставлю add, но метка ни как не появляется. Подключение делал согласно инструкции. Что может быть?
Так сложно сказать, возможно не хватает каких нибудь модулей в прошивке, да и самой прошивки nodemcu, за это время, могло поменяться многое, если устанавливали свежую.
Попробуйте установить что лежит на github
https://github.com/bondrogeen/DoT/blob/master/firmware/adc%2Cbit%2Ccrypto%2Cfile%2Cgpio%2Chttp%2Ci2c%2Cmqtt%2Cnet%2Cnode%2Cow%2Cpwm%2Crotary%2Csjson%2Cspi%2Ctmr%2Cuart%2Cwifi%2Cws2812-2018-12-29-integer.bin
Еще откройте «консоль разработчика» в crome (F12) перейдите на вкладку «Network» и обновите страницу (ctrl + F5). Посмотрите нет ли там ошибок при загрузки веб интерфейса и добавлении карт.
Добрый день, не добавляются метки ((( в веб интерфейсе перевожу переключатель Mode в положения add, далее подношу метку к RC522 и ничего не происходит…При нажатии на Open, срабатывает реле и не выключается до перезагрузки, в чём может быть проблема?
Вообще у меня получилось. Была такая же проблема решилась Установкой программы которую указал Уважаемый Роман. Или тем что я сначала запустил плагин переключателем и значком плей, а ниже нажал сохранить! Перезагрузил (обрывам питания всей схемы, т.к. замечена особенность что надо перезагружать и RC522). Потом свободно добавилась метка. Предлагаю попробовать мой способ сперва, а потом шить. Будет очень интересно. Вопрос какие строки и где поменять что бы бузер пищал прирывисто как на домофоне, а не постоянно? Р.С. считаю что проект надо развивать, было бы не плохо созданием программы управления через смортфон, с мониторингов владельца метки и статистикой, а так же открытием… Read more »