Электронная система учета посетителей

Немного про интернет вещей:

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

Концепция моего устройства:

Я не остался в стороне, и решил разработать свое устройство, которое будет полезно.

Утро, лицей интернат, скоро все соберутся на завтрак, воспитатель с тетрадкой в руках отмечает  мальчишек украдкой. 

Примерно так начинается каждое утро в моем лицее, воспитатели ходят, считают по головам каждого ученика и записывают в тетрадку. Согласитесь, что это очень неудобно, и что самое главное — не практично. В следствии некоторых раздумий на эту тему, я решил собрать устройство которое поможет автоматизировать данный рутинный процесс. Концепция устройства получила гордое имя ЭСУП (Электронная система учета посетителей). Было создано определение данного вида устройств: Электронная система учета посетителей — это совокупность программно-аппаратных технических средств, главной задачей которых является учет посещений предприятия/заведения/помещения в электронном виде. 

Разработка:

Набор модулей:

В качестве мозга устройства выбрал Arduino Uno (ибо я не смог осилить работу с сетью с обычными микроконтроллерами). Данные от пользователя мы будем принимать через RFID метки, с помощью RFID модуля. Передавать данные мы будем через Ethernet с помощью модуля enc28j60. На этом моменте думаю стоит подробно остановиться. Для ардуино существует два основных модуля для работы с сетью, Первый W5100 (ссылка на Ali) — официальный модуль от Arduino,  имеет мощную документацию, есть шикарная статья на этом сайте, но в связи с этим модуль более дорогой (если у вас есть лишние деньги, советую брать именно его, у вас будет меньше проблем с его работой). Ну и второй enc28j60 — более дешевый, доступный в продаже. Я взял второй, потому что у меня попросту ограничены ресурсы.

Теория:

Устройство в нашем случае является клиентом, который посылает данные на сервер.

  • Устройство ожидает данных от пользователя (поднесения rfid метки)
  • Устройство считывает id карты и создает http запрос
  • Устройство посылает запрос
  • Сервер принимает запрос
  • Сервер обрабатывает данные (ищет идентификатор в базе данных и присваивает ему имя)
  • Сервер смотрит текущее время
  • Все данные заносятся в html таблицу
  • Готово! 

Список используемых библиотек:

  • Ethercard — необходима для работы с ethernet модулем enc28j60
  • LiquidCrystal-I2C — работа с дисплеем по i2с
  • RFID Library — необходима для работы с RFID модулем

Сборка устройства:

Сборка устройства проста, потому что это ардуино и припаять пару проводочков не составит труда.  Думаю, что что тут необходимо прокомментировать следующее:

  •  Необходимость в параллельном присоединении  ethernet контроллера с RFID модулем, потому что контроллеры не захотели работать на раздельных шинах SPI.
  • Так же прошу заметить что, выходы 8 и 10 являются управляющими. С помощью них мы выбираем устройство с которым мы будем работать по SPI. 10-тый пин отвечает за выбор RFID модуля, 8-мой за выбор ethernet модуля.
  • Дисплей в данной модели устройства работает по I2C, а не по SPI это необходимо учитывать при покупке дисплея.

Исходный код проекта: Ссылка
В статье я описал разработку третей версии устройства, но в репозитории имеются исходные коды предыдущих версий (также я веду активную разработку четвертой реализации ЭСУП). Для нашей текущей задачи понадобится папка v3. В ней мы увидим директории ESCV_Arduino и ESCV_PC. Первая папка содержит в себе прошивку микроконтроллера, а именно скетч для ардуино, во второй папке имеется необходимое ПО написанное на языке python, которое превратит ваш компьютер в сервер к которому будет обращаться устройство. 

Для того, чтобы все это заработало, вам необходимо скачать эти библиотеки (и конечно установить), а так-же python интерпретатор третей версии.

Запуск устройства:

Запуск устройства прост и элементарен: 

  • перед прошивкой устройства мы должны запустить сервер находящийся в папке ESCV_PC, выведется приветственное сообщение с IP адресом этого компьютера.
  • Вводим полученный адрес в скетч устройства (фото ниже).
  • Прошиваем устройство
  • Подключаем к локальной сети вашего компьютера. Готово!

 

Вид устройства:

Запуск устройства я так же продемонстрировал в видеоролике. Если есть пожелания, предложения и прочее пишите, я отвечу. Сильно не ругайте это моя первая статья, в дальнейшем постараюсь улучшить качество.


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

Плата ArduinoArduino Uno1

Ethernet модульenc28j601

RFID МодульRC5221

LCD-дисплейLCD 16×2 (i2c)1
Добавить все

Скачать список элементов (PDF)

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

Ваш адрес email не будет опубликован.