RFID означает радиочастотную идентификацию. Модуль RFID может считывать или записывать небольшие объемы данных в пассивные метки RFID, которые можно использовать в процессе идентификации в различных системах, таких как система посещаемости, система безопасности, система голосования и т. Д. RFID - очень удобная и простая технология.
Для чтения пассивных RFID-карт и тегов нам понадобится микроконтроллер с оборудованием UART. Если мы выберем микроконтроллер без UART, нам потребуется реализовать программный UART. Здесь мы используем микроконтроллер PIC PIC16F877A для взаимодействия с RFID. Мы просто прочитаем уникальный идентификационный номер. RFID-меток и отобразить на ЖК-дисплее 16x2.
RFID-модуль и его работа
В этом проекте мы выбрали RFID-модуль EM-18, который представляет собой компактный, недорогой и энергоэффективный модуль. Модуль RFID EM-18 использует частоту RF 125 кГц для считывания пассивных RFID-меток 125 кГц. Модуль EM-18 использует осциллятор, демодулятор и декодер данных для чтения данных с пассивной карты.
RFID-метка
Доступны три типа RFID-меток: пассивные, активные или пассивные с батарейным питанием. На рынке доступны различные типы RFID-меток различных форм и размеров. Некоторые из них используют другую частоту для связи. Мы будем использовать пассивные RFID-карты 125 кГц, которые содержат уникальные идентификационные данные. Вот RFID-карта и метки, которые мы используем для этого проекта.
Работа RFID
Если мы увидим техническое описание (http://www.alselectro.com/files/rfid-ttl-em18.pdf) модуля EM-18, мы увидим заднюю часть модуля и схему приложения:
Модуль использует протокол связи UART со скоростью 9600 бод. Когда действительная частотная метка помещается в магнитное поле считывателя EM-18, транзистор BC557 включается, и зуммер начинает пищать, он также светит светодиодом. Мы используем модуль, который легко доступен на рынке и имеет полную схему с зуммером, светодиодом и дополнительным портом RS232.
Вот модуль платы RFID, который мы используем с именами контактов. Этот модуль также имеет дополнительный источник питания.
Нужно вещь, чтобы иметь в виду, что выход EM-18 читатель использует 5V логический уровень. Мы могли бы использовать другой микроконтроллер, который использует более низкий логический уровень, но в таких случаях требуется дополнительный преобразователь логического уровня. В некоторых случаях UART штифт 3.3V микроконтроллера часто 5В.
Выход UART предоставляет 12-битные данные ASCII. Первые 10 бит - это номер метки RFID, который является уникальным идентификатором, а последние две цифры используются для проверки ошибок. Эти последние две цифры являются XOR номера тега. Модуль EM-18 будет считывать данные с пассивных RFID-меток 125 кГц или карт.
Эти теги или идентификаторы имеют запрограммированный на заводе массив памяти, в котором хранится уникальный номер идентификатора. Поскольку они пассивны, поэтому в карте или бирках нет батареи, они получают питание от магнитного поля модуля радиочастотного приемопередатчика. Эти RFID-метки сделаны с использованием CMOS IC EM4102, которая также синхронизируется магнитным полем.
Необходимый материал
Для создания этого проекта нам понадобятся следующие предметы:
- PIC16F877A
- Кристалл 20 МГц
- 2шт 33pF керамический дисковый конденсатор
- ЖК-дисплей 16x2 символов
- Макет
- 10k предустановленный горшок
- Резистор 4,7 кОм
- Одножильные провода для подключения
- Адаптер на 5 В
- Радиочастотный модуль ЭМ-18
- Зуммер 5 В
- Конденсатор на 100 мкФ и 0,1 мкФ на 12 В
- BC557 Транзистор
- СВЕТОДИОД
- Резисторы 2.2k и 470R.
Мы используем плату модуля EM-18 с предварительно настроенным зуммером и светодиодом. Итак, компоненты, перечисленные с 11 по 15, не нужны.
Принципиальная электрическая схема
Схема проста; мы подключили ЖК-дисплей через порт RB и подключили модуль EM-18 через вывод UART Rx.
Мы сделали подключение на макетной плате по схеме.
Код Пояснение
Как всегда, сначала нам нужно установить биты конфигурации в микроконтроллере pic, определить некоторые макросы, включая библиотеки и частоту кристалла. Вы можете проверить все эти коды в полном коде, приведенном в конце.
// Настройка битов конфигурации PIC16F877A // Операторы конфигурации исходной строки 'C' // CONFIG #pragma config FOSC = HS // Биты выбора генератора (генератор HS) #pragma config WDTE = OFF // Бит включения сторожевого таймера (WDT отключен) # pragma config PWRTE = OFF // Бит включения таймера включения (PWRT отключен) #pragma config BOREN = ON // Бит разрешения сброса пониженного напряжения ( включен BOR) #pragma config LVP = OFF // Низкое напряжение (одинарное питание) Бит разрешения внутрисхемного последовательного программирования (вывод RB3 / PGM имеет функцию PGM; низковольтное программирование разрешено) #pragma config CPD = OFF // Бит защиты кода памяти EEPROM данных (защита кода EEPROM данных выключена) #pragma config WRT = OFF // Биты разрешения записи в флэш-память программ (защита от записи отключена; вся программная память может быть записана с помощью управления EECON) #pragma config CP = OFF // Бит защиты кода флэш-памяти программ (защита кода выключена) # include "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Если мы видим основную функцию, мы вызываем функцию для инициализации системы. В этой функции мы инициализируем LCD и UART.
/ * Эта функция предназначена для инициализации системы. * / void system_init (void) { TRISB = 0x00; // ПОРТ B установлен как выходной контакт lcd_init (); // Это инициализирует ЖК- дисплей EUSART1_Initialize (); // Это инициализирует Eusart }
Теперь в основной функции мы использовали 13-битный массив, который является номером RFID. Мы получаем каждый бит RFID No. используя EUSART1_Read (); функция, которая объявлена внутри библиотеки UART. После получения 12 бит мы печатаем массив в виде строки на ЖК-дисплее.
void main (void) { количество символов без знака; беззнаковый символ RF_ID; system_init (); lcd_com (0x80); lcd_puts («Дайджест схемы»); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Устанавливаем курсор в начало второй строки lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Полный код с демонстрационным видео приведен ниже.
Также проверьте взаимодействие RFID с другим микроконтроллером:
RFID-интерфейс с MSP430 Launchpad
RFID-интерфейс с микроконтроллером 8051
RFID-интерфейс с Arduino