rfid идентификация. Учёт посещаемости Время прихода и ухода 

rfid идентификация. Учёт посещаемости Время прихода и ухода 

Сегодня я покажу как сделать систему Учёта посещаемости сотрудниками в офисе или учениками в классе. В основе будет лежать rfid rc522 подключение. Так же мы будет использоваться библиотека rfid. Контроль доступа имеет обширное поле использования, а rfid модуль rc522 это недорогие, очень стабильные и легко подключаемые. Для определения времени прихода и ухода будем использовать считыватель rfid карт, который будет считывать uid карты и время. Если пришли позе этого времени, то считаются опоздавшими.
У каждого должна быть индивидуальная карта. При входе в помещение сотрудник прикладывает к считывателю rfid карту. И на экране высвечивается текущая дата и время прихода. Если сотрудник опоздал, то на экран выводится надпись – «Вы опоздали» и опять показывается время. Время прихода нужно задать в скетче.

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

Так как проект очень сложный, то мы будем делать его поэтапно. А ещё потому, что мне иногда приходят сообщения в комментариях ОЙ, У МЕНЯ НЕ РАБОТАЕТ. Всё, скетч плохой. И на вопрос, а в какой момент не работает. Тишина и молчок. А плохой коммент остался. По этому попробуем такой сценарий.

  • 1 этап Подключим дисплей. Я буду подключать 4 строчечный дисплей LCD 2004
  • 2 этап подключим и настроим часы на базе rtc 3231
  • 3 этап Выведем на экран число и время на экран LCD 2004 + rtc 3231
  • 4 этап Подключим RFID модуль и проверим его работу
  • 5 этап Объединим всё вместе


Если у вас что-то не заработает, то пишите на каком этапе. 
Я собирал с такими библиотеками. Если про RFID ничего сказать не могу, то библиотек для модуля часов RTC 3231 очень много. И даже одна и таже библиотека, но с разными версиями может создать проблемы. Так что если вы гарантированно хотите чтобы у вас всё заработало, то советую установить библиотеки из архива. 

Ничего нового ну кроме последнего этапа, я сегодня не покажу. Всё это было уже собрано в предыдущих проектах. И теперь я просто беру кусочки кода и вставляю их сюда. Если, что не понятно, то смотрите полные уроки по этим модулям.

Если вкратце рассказывать, то когда подносишь карту, на экране дисплея высвечивается сообщение с номером RFID карты и временем когда это произошло.
Если время меньше чем то что указано в скетче, то сотрудник не опоздал на работу, и ему будет показано сообщение Добро пожаловать.
Если сотрудник опоздал, то ему так и напишут – Вы опоздали и текущее время. Сейчас подумал, что надо было выводить на сколько он опоздал. Но теперь уже не буду перезаписывать видео.
И для всех остальных на экране уже не будет  приветственной надписи Добро пожаловать, а будет гневное Поднесите карту. Глядя на экран всегда можно понять успел ты или опоздал.
Текст конечно можно поменять по своему усмотрению.

Теперь рассмотрим всё по порядку.
Сначала просто подключим LCD дисплей.
Я просто взял скетч из прошлого урока ничего не меняя. Главное чтобы быть уверенным, что всё работает. Если возникли проблемы, то пересмотрите вот это видео. Больше ничего рассказать про этот скетч не буду. Тут всё просто. 

Теперь подключим модуль часов. Я использовал DS3231. 
Загружаем скетч из архива. Это тоже скетч из уроков про часы. По умолчанию, модуль часов не выводит 0 перед одинарными числами, поэтому я в скетче сделал проверку на числа меньше 10.
Ещё я добавил перевод дней недели.
Если у вас не правильно установлены дата и время, то в здесь можно это исправить. Кстати у меня сегодня пятница 13. 
Вводим нужную дату и время и прошиваем код. Проверяем правильно ли всё установилось.
И главное, не забудьте снова закомментировать код, а то при следующей прошивке, у вас установится это время.
Проверяем в мониторе порта и переходим к следующему этапу. 
Соединим вместе часы и дисплей.

У вас сейчас на экране дисплея должен быть предыдущий скетч. А может и что другое, главное чтобы вы были уверены, что дисплей подключен правильно. В этом скетче я объединил часы и дисплей. И забыл сказать, что у вас должна быть установлена библиотека для вывода русских шрифтов на дисплее. Если, что смотрите предыдущее видео. Загружаем скетч в Ардуину и смотрим результат.
Проверяем чтобы дни и время были показаны верно. Если всё OK, то переходим дальше.

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

Ну и последний на сегодня этап – это объединить всё вместе. 
Загрузим последний скетч и посмотрим как у нас всё работает. Я установил время начала работы в 11 30. После этого времени все кто пришёл на работу будут считаться опоздавшими.
При прокрутке скетча вы можете видеть кучу закомментированного кода. В архиве его не будет. Этот код отвечает за проверку подключения SD карты и записи на карту. Там происходит открытие карты и запись на неё номера карты, даты и времени. Как я сказал, у меня что-то пошло не так. Так как RFID и SD карта работают по шине SPI то они конфликтуют. По отдельности всё работает.
Я знаю, что мне сейчас расскажут, что устанавливать чип селект в высокое и низкое состояние. Поверьте я это делал. Дело в чём-то ещё. Вот я и оставил это до следующего видео. Если конечно будут желающие продолжения. 

 

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.