Система контроля посещаемости на основе RFID, ESP8266, Arduino и Adafruit.io


В данной статье мы рассмотрим как создать систему учета рабочего времени на основе IoT (интернет вещей) и RFID (радиочастотных метках) с использованием плат Arduino и NodeMCU ESP8266, а также платформы Adafruit.io с использованием брокера MQTT. Поэтому в этом проекте мы будем использовать модуль для считывания RFID меток MFRC522, платы Arduino Uno и NodeMCU ESP-12E. Плата Arduino и сканер RFID будут сканировать карты RFID, а затем регистрировать их на облачной платформе Adafruit IO с помощью модуля Wi-Fi ESP8266. Эта информация может отображаться на панели управления Adafruit IO и может быть доступна соответствующим органам для просмотра и анализа посещаемости через Интернет из любого места в любое время.

Система контроля посещаемости на основе RFID, ESP8266, Arduino и Adafruit.io

Ранее на нашем сайте мы рассматривали следующие похожие проекты:

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Плата Arduino Uno (купить на AliExpress).
  3. Модуль RFID RC522 и карты RFID 13,56 МГц (5-10 шт.) (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Схема проекта

Схема системы контроля посещаемости на основе RFID модуля RC522, плат NodeMCU ESP8266 и Arduino Uno представлена на следующем рисунке.

Схема системы контроля посещаемости на основе RFID модуля RC522, плат NodeMCU ESP8266 и Arduino Uno

Подключите вывод SDA модуля RFID к цифровому выводу 10 Arduino. Аналогично подключите SCK к D13, MOSI к D11, MISO к D12, GND к GND, вывод RST к D9 и подайте питание 3,3 В с помощью выводов 3,3 В. Контакт IRQ не подключен. Аналогично подключите выводы TX, RX NodeMCU к выводам D2, D3 платы Arduino соответственно. Также подайте питание на Node MCU, подключив его выводы VCC и GND.

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

Собранная конструкция проекта

Все компоненты системы подключены согласно схеме просто на макетной плате. MFRC522 — это модуль SPI, подключенный к Arduino. Nodemcu подключен через контакты UART. Существует несколько карт RFID, мы будем использовать 6 карт для 6 человек. Все эти карты имеют частоту 13,56 МГц.

Ранее RFID модуль RC522 мы использовали в следующих проектах на нашем сайте:

Настройка учетной записи Adafruit.io

Adafruit.io — это открытая платформа данных, которая позволяет вам агрегировать, визуализировать и анализировать данные в реальном времени в облаке. Используя Adafruit.io, вы можете загружать, отображать и контролировать свои данные через Интернет, а также сделать свой проект IoT-совместимым.

Для настройки Adafruit первое, что вам нужно сделать, это зарегистрироваться на Adafruit. Чтобы зарегистрироваться, перейдите на сайт Adafruit IO https://io.adafruit.com/ и нажмите ‘Get started for Free’ («Начать бесплатно») в правом верхнем углу экрана. После этого появится окно, в котором вам нужно будет заполнить свои данные.

Главная страница платформы Adafruit IO

Итак, как только учетная запись будет создана, просто вернитесь на https://io.adafruit.com/. С левой стороны нажмите на view AIO Key. Отсюда вам нужно скопировать имя пользователя, а также AIO Key. Так что просто скопируйте эти ключи в блокнот, так как они вам понадобятся позже для использования в программе.

Имя пользователя и AIO Key на платформе Adafruit IO

Теперь слева нажмите на панель мониторинга и создайте новую панель мониторинга, используя любое имя, например RFID_Attendance. Вы можете дать или не дать описание. Итак, панель мониторинга создана.

Создание новой панели мониторинга на Adafruit IO

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

Создание нового канала (фида) на Adafruit IO

Исходный код программы

Этот проект создан с использованием плат NodeMCU и Arduino. Поэтому у нас будет два кода: один для arduino UNO/Nano, а другой для NodeMCU. Вам нужно загрузить оба этих кода в соответствующие им платы.

Код для платы Arduino

Вам будет нужна библиотека MFRC522. Загрузите библиотеку отсюда: Библиотека MFRC522

Код для платы NodeMCU ESP-12E

Вам будет нужна библиотека MQTT. Загрузите библиотеку отсюда: библиотека MQTT

Объяснение работы кода

1. Код Ардуино

Для RFID-сканера используется библиотека MFRC522. Контакты SDA и RST подключены к контактам 10 и 9 Arduino, как показано на принципиальной схеме.

Внутри функции setup() мы инициализируем последовательную связь на скорости 9600 бод и программную последовательную связь на скорости 115200 бод. Мы также открыли связь с MFRC522.

Внутри функции void loop() мы проверим, присутствует ли новая карта, и если присутствует новая карта, то она проверит UID карты. Для действительной карты она выведет UID карты с именем пользователя. В противном случае она выведет «неавторизированная карта».

Шестнадцатеричное число — это номер метки RFID. В примерах есть простая программа для определения этих номеров RFID. Вы можете найти эти номера RFID и заменить их в программе. Аналогично, функция ser.write имеет номера 1, 2, 3, 4, 5, 6. Эти номера — серийный номер карты, который будет загружен в панель управления Adafruit. Вы можете назначить этим номерам несколько имен, как вы можете видеть выше. Эти имена будут отображаться на последовательном мониторе во время сканирования.

2. Код NodeMCU ESP8266-12E

Запустите программу, добавив необходимые библиотеки. После этого введите учетные данные Wifi и пароль с именем пользователя Adafruit IO и ключом AIO, полученными ранее.

Используя функцию setup(), мы начнем последовательную связь на скорости 11500 бод. Затем мы подключим наш Wi-Fi-клиент к серверу Adafruit IO.

Внутри функции void loop() плата ESP считывает данные из последовательного порта, а затем публикует их на сервере Adafruit IO.

Если вы хотите более подробно разобраться в работе с сервером MQTT, то можете посмотреть следующие проекты:

Тестирование работы проекта

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

Тестирование работы проекта в окнах последовательных мониторов

Когда сканируется несколько или много карт, данные загружаются в каналы adafruit io. Вы можете просто войти в систему и проверить детали этих операций.

График учета посещаемости на adafruit io

Лог учета посещаемости на adafruit io

Видео, демонстрирующее сборку и работу проекта

(Проголосуй первым!)
Загрузка...
51 просмотров

Комментарии

Система контроля посещаемости на основе RFID, ESP8266, Arduino и Adafruit.io — 2 комментария

  1. Нафига тут ардуина если весь функционал можно было на есп8266 сделать, разве что только ног поменьше

    • Да, можно. Но возможности для масштабирования и дальнейшего наращивания функционала, а также гибкости внесения изменений здесь лучше чем в варианте только с ESP8266

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *