Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Электронная регистрация на рейс

Компоненты и расходные материалы

Arduino Mega 2560
× 1
Антенный радиочастотный модуль Mifare RC522 для чтения карт
× 1
LED (общий)
× 2
Тактильный переключатель
× 2
Резистор (общий)
× 4

Об этом проекте

Одна проблема, с которой мы часто сталкиваемся в Taipei Hackerspace, заключается в том, что люди не знают, когда мы открыты. Наше основное правило простое:всякий раз, когда ключевой член находится в Hackerspace, любой / каждый может войти. На практике, хотя люди никогда не знают, есть ли там кто-нибудь.

Они могут позвонить в пространство или даже отправить электронное письмо в список рассылки, в то время как люди, которых я знаю, обычно в конечном итоге спрашивают меня напрямую - эй, в данный момент кто-нибудь есть? Поскольку я не всегда знаю ответ, поиски были направлены на лучшее - возможно, более технологичное или хакерское решение:давайте создадим электронную систему регистрации заезда / выезда, которая будет показывать текущий статус на нашем веб-сайте.

Основная идея заключается в том, что в Тайбэе практически у всех есть EasyCard, RFID-карта 13,56 МГц, которая используется для всего общественного транспорта в городе, и многое другое. Модуль карты-антенны RC522, кажется, может довольно хорошо читать карту, и все, что мне нужно, чтобы выйти, это идентификационный номер, который довольно прост (после поиска исходного кода на форумах Arduino).

Вкратце проект:

  • Используйте Arduino Mega с платой RC522, чтобы получить идентификационный номер данной карты EasyCard.
  • Используйте ведьм, чтобы узнать, приезжает человек или уходит.
  • Используйте светодиоды для обратной связи и базового пользовательского интерфейса для оборудования.
  • Сервер Node.js для связи с Arduino, взаимодействия с базой данных регистрации / выхода и предоставления API и доступа к данным в реальном времени.
  • Создайте на веб-сайте небольшой интерфейс для отображения статуса регистрации.

Теперь позвольте мне подробно остановиться на различных частях.

RFID

Модуль RC522 имеет 8 контактов, и Arduino может использовать библиотеку SPI для связи с ним. Я использовал Arduino Mega ADK, потому что контакты SPI удобно доступны, в отличие от, например, Леонардо, для которого мне пришлось бы сделать несколько новых кабелей или разъемов. Соединения RC522 (номер контакта) -> Mega (номер контакта) выполняются таким образом, чтобы:

  • SA (1) → SS (53)
  • SCK (2) → SCK (52)
  • MOSI (3) → MOSI (51)
  • MISO (4) → MISO (50)
  • (5) не подключено
  • GND (6) → GND
  • RST (8) → (любой цифровой контакт)
  • + 3,3 В (8) → + 3,3 В
RFID-RC522, с пустой картой и контактами

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

Переключатели и визуальная обратная связь

Я хотел сделать максимально простой интерфейс для кардридера. Добавлена ​​пара переключателей и светодиодов (D1 зеленый, а D2 красный). После того, как Arduino получит идентификатор карты от считывающего устройства, светодиоды мигают, чтобы побудить людей нажать кнопки Check In или Check Out. Если они нажимают любую из них, соответствующий светодиод немного мигает очень ярко, а идентификатор карты и событие регистрации / выселения отправляются на подключенный компьютер через последовательное соединение

(Самая простая) схема для кнопок регистрации и отъезда и светодиодов визуальной обратной связи. «Контакты» относятся к контактам Arduino, используемым в текущей версии


Если в течение 10 секунд или около того кнопки не нажимаются, считывание сбрасывается, и кардридер возвращается в режим прослушивания.

Веб-сервер

Node.js очень полезен для создания быстрых веб-сервисов, и его поддержка библиотек совсем не так уж плоха, хотя не все гладко:их документация в лучшем случае часто бывает скудной. Тем не менее, это был самый быстрый способ наладить работу, так как я раньше использовал почти все необходимые компоненты.

Сервер связывается с Arduino через библиотеку последовательного порта. Я больше привык к pyserial Python, хотя в этом случае было очень удобно, что последовательный порт может генерировать события чтения, поэтому сервер может просто подождать, пока не появится что-то для чтения, и запустить некоторые функции с входящими данными. По моему опыту, последовательный порт не годится для всех случаев, с которыми я сталкиваюсь в последовательной связи, но в этой настройке отлично работает.

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

Сначала я сделал простой REST API для запроса зарегистрированных в данный момент людей, а затем добавил (в реальном времени) push-обновления через socket.io, чтобы сделать его лучше. Замечательно, что без каких-либо опросов все клиенты могут быть обновлены после того, как кто-то войдет в систему или выйдет из нее.

Поскольку этот код работает на другом компьютере, чем наш основной веб-сервер, пришлось поиграть с заголовком Access-Control-Allow-Origin и изменить настройки нашего маршрутизатора, чтобы он был правильно доступен для Интернета.

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

Аппаратная настройка для проверки входа / выхода:Arduino Mega, схема RFID-RC522, а также некоторые переключатели и светодиоды.

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

Скриншот домашней страницы с одной конкретной ситуацией регистрации

Также могут быть люди без имени, они просто показывают что-то вроде "Прямо сейчас есть три человека . проверил в Hackerspace:Грег и еще двое ".

SpaceAPI

Также существует проект под названием Space API для унифицированной спецификации для предоставления информации о самом пространстве (

Этот гаджет регистрации интегрирован с нашей конечной точкой Space API Taipei Hackerspace, показывая наш статус открытия, поэтому его можно использовать, например, с приложение My Hackerspaces для Android или другие приложения, перечисленные на сайте Space API.

Он жив!

Вот краткое демонстрационное видео о том, как это работает:

https://www.youtube.com/embed/L3ccO_AuhQ8?feature=oembed

Так что вы можете проверить наш веб-сайт по адресу https://taipeihack.org/#open, чтобы увидеть результаты в реальном времени и заглянуть, если вы находитесь по соседству, если есть кто-то в пространстве.

Весь исходный код находится в репозитории Github:скетч Arduino, серверный скрипт и любые дополнительные файлы. Я уверен, что есть много вещей, которые можно улучшить ...

Оригинал отзыва:электронная регистрация в Taipei Hackerspace

Код

Github
https://github.com/taipeihackerspace/thcheckinhttps://github.com/taipeihackerspace/thcheckin

Схема


Производственный процесс

  1. Электронные чернила
  2. RFID-замок Arduino с RC522 - протокол MIFARE 13,56 МГц
  3. Arduino Spybot
  4. FlickMote
  5. Самодельный телевизор B-Gone
  6. Основные часы
  7. Найди меня
  8. Arduino Power
  9. Электронный хамелеон
  10. Tech-TicTacToe