Свежие комментарии
    Благодарности: денежное общество и мойка авто

    Учет рабочего времени. MajorDoMo+WiFi-IoT+Telegramm

    Была поставлена задача сделать учет рабочего времени для одного работника, приходя отмечается по отпечатку пальца ,уходя отмечается по отпечатку пальца, сообщения о приходе и уходе должны приходить в телеграмм, так же через телеграмм должны быть доступны отчеты.Поскольку система считывания отпечатков пальцев стоит в одном городе, а руководитель живет в другом то локально систему не сделать, по этому я использую свой VPS сервер на котором уже стоит MajorDoMo, писать клиента для отправки сообщений было лениво и я взял прошивку WiFi-IoT c включенными опциями: mqtt клиент и UART bridge, в качестве сканера отпечатков пальцев у меня использован AS608 подключенный к Arduino nano. Прокладка из ардуино была поставлена из-за того что не хотелось писать клиента, прошивку от ардуино я взял в интернете и немного её модернизировал, она должна отправлять в uart порт и как следствие на сервер сообщение parametr и через пробел номер ячейки в которую записан отпечаток пальца. В общем в MajorDoMo по MQTT должнен приходить номер ячейки отпечатка пальца, как это сделать вариантов много.

    Схему и скетч для ардуино я взял отсюда, скетч немного модернизировал, добавил отправку с сериал порт номер ячейки пальца, сделал в начале переменные для длительности зумера и открытия замка (отображение сообщения).

     

    В MajorDoMo надо установить модуль MQTT и Telegramm и настроить их. Для учета пользователей я создал класс dostup со свойствами id и name

    Создал объекты: setting для хранения настроек и объекты для работников rab1, rab2 …

    в setting добавил свойства:

    эти настройки используются для отчетов в Telegramm, так же в setting добавляем метод write.

    при входе в свойство id пользователя записывается единица, при выходе ноль, считается что пользователь не работает в полночь, а это значит первая отметка за сутки это всегда вход, то есть записывается единица, вторая и последующая отметка это всегда выход. При этом сообщения в телеграмм отсылаются при всех выходах, повторное нажатие не фиксируется в течении 2 минут.

    Теперь нам надо в модуле MQTT найти свойство которое передает микроконтроллер и отредактировать его добавив выполнение метода

    теперь будет выполняться наш метод и отсылать сообщения в телеграмм.

    Теперь нам надо сделать отчеты через Telegramm. Делаем кнопку Отчеты и добавляем обработку messageHook следующего содержания:

    в результате мы получим вот такое меню:

    периоды и работник меняются кнопками: Начало, Конец и Работник соответственно

    Для отчета выбираем соответствующий отчет

    немного модернизировав код можно делать округления времени, фиксировать опоздание или ранний уход с работы.

    Поделиться в соц. сетях

    Опубликовать в Facebook
    Опубликовать в Google Buzz
    Опубликовать в Google Plus
    Опубликовать в LiveJournal
    Опубликовать в Мой Мир
    Опубликовать в Одноклассники
    Опубликовать в Яндекс

    Оставить комментарий