EPIR: Учет Рабочего Времени

EPIR: Учет Рабочего Времени
Комплекс разработан для возможности отслеживания рабочего времени сотрудников компании, не являющимися постоянными пользователями ПК.

В состав программно-аппаратного комплекса, входит:
● Arduini uno
● Arduino Ethernet Shield
● RFID Reader RC522
● Битрикс24

Комплекс имеет две основных задачи:
● Эмуляция действий сотрудника по открытию/завершению рабочего дня при прохождении проходной предприятия (нажатие функциональных кнопок в Битрикс24)
● Автоматизация привязки электронного пропуска (rfid карточки) к сотруднику.

За логику обработки учета рабочего времени отвечает стандартный компонент Битрикс24 “Учет рабочего времени“. Комплекс эмулирует нажатие на кнопки (начать рабочий день, закончить рабочий день, приостановить, возобновить) средствами api Bitrix framwork.

Эмуляция нажатия на функциональные кнопки модуля учета рабочего времени осуществляется следующим образом
1. Сотрудник прикладывает карточку к устройству считывания информации, подключенному к ethernet сети.
2. Устройство считывает уникальный номер карточки, и отправляет запрос к ответчику на стороне портала, посредством GET параметра.
3. Ответчиком на стороне портала является скрипт, который получает уникальный номер карточки, ищет сотрудника с привязанным номером карточки соответствующей полученному сообщению, и выполняет необходимое действие (к примеру, если сейчас утро и день закрыт, то открывает рабочий день.)
4. При успешной операции, генерируемая скриптом страница содержит код указывающий на успешность процесса. При возникновении ошибки на каком-либо этапе, страница генерируется с кодом ошибки.
5. Устройство получает сгенерированную страницу, и в зависимости от кода, указанного в странице, оповещает сотрудника о успешности или не успешности операции зажжением зеленого или красного светодиода.

Автоматизация привязки rfid карточки к сотруднику осуществляется следующим образом.

● В интерфейсе модуля для Битрикс24, разработанного программно-аппаратного комплекса Администратор вводит ip адрес устройства, с которого будет считываться карточка.
● Браузер администратора посредством javascript устанавливает соединение с устройством, посредством WebSocket протокола.
● Администратор выбирает в интерфейсе сотрудника, к которому будет привязываться карточка и затем прикладывает rfid карточку к устройству.
● Устройство считав уникальный номер карточки посылает сообщение клиенту (браузеру администратора) WebSocket сервера.
● Браузер администратора системы, получив ответ от устройства делает ajax запрос с номер карточки и идентификационным номером выбранного сотрудника, к скрипту, отвечающему за привязку номера карточки к сотруднику.
● Скрипт посредством api записывает пришедшие от устройства данные в пользовательское поле сотрудника, выбранного администратором.