Hiện nay các ứng dụng với RFID không còn xa lạ với chúng ta, với một nguồn mở source code khổng lồ như Arduino, STM, … cách tiếp cận với module RFID RC522 trở nên vô cùng dễ dàng. Tuy nhiên, với nguồn thư viện sử dụng trên ESP32 ESP-IDF hiện nay khá hạn chế, vì vậy hôm nay mình xin giới thiệu thư viện để ESP32 giao tiếp RFID RC522 sử dụng thư viện chính mình viết trên ESP-IDF.
Giới thiệu ESP32
Ta đã quá quen với module wifi ESP8266, không những dành cho môi trường vọc vạch của anh em sinh viên mà chúng còn dùng cho các dự án thương mại, điển hình như: SONOFF, BKAV, .. những tên tuổi lớn của cộng đồng SMART DEVICE. Vậy đâu là sự lựa chọn tiếp theo sau ESP8266 ? Câu trả lời từ nhà sản xuất ESP (espressif.com) đó là : “ESP32”.
Cấu hình khủng, gia tăng thêm chức năng, tăng số chân I/O, thêm nhiều cảm biến, giá thành phù hợp…là những gì mà ESP32 mang lại.
CPU
- CPU: Xtensa Dual-Core LX6 microprocessor.
- Chạy hệ 32 bit
- Tốc độ xử lý 160MHZ up to 240 MHz
- Tốc độ xung nhịp đọc flash chip 40mhz –> 80mhz (tùy chỉnh khi lập trình)
- RAM: 520 KByte SRAM
- 520 KB SRAM liền chip –(trong đó 8 KB RAM RTC tốc độ cao – 8 KB RAM RTC tốc độ thấp (dùng ở chế độ DeepSleep).
HỖ TRỢ GIAO TIẾP
- Wi-Fi: 802.11 b/g/n/e/i
- Bluetooth: v4.2 BR/EDR and BLE
- 8-bit DACs( digital to analog) 2 cổng
- Analog(ADC) 12-bit 16 cổng.
- I²C – 2 cổng
- UART – 3 cổng
- SPI – 3 cổng (1 cổng cho chip FLASH )
- I²S – 2 cổng
- SD card /SDIO/MMC host
- Slave (SDIO/SPI)
- Ethernet MAC interface with dedicated DMA and IEEE 1588 support
- CAN bus 2.0
- IR (TX/RX)
- Băm xung PWM (tất cả các chân )
- Ultra low power analog pre-amplifier’
Ngoài ra còn có cảm biến tích hợp trên CHIP
- 1 cảm biến Hall (cảm biến từ trường)
- 1 cảm biến đo nhiệt độ
- Cảm biến chạm (điện dung) với 10 đầu vào khác nhau.
Có đầy đủ các chế độ bảo mật về kết nối không dây, phần cứng, phần mềm,…
Giới thiệu Module RFID RC522
Module RFID RC522 sử dụng IC MFRC522 của Phillip dùng để đọc và ghi dữ liệu cho thẻ NFC tần số 13.56MHz, module này là sự lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ NFC.
- Điện áp: 3.3V;
- Dòng điện :13-26mA
- Dòng ở chế độ chờ: 1013mA
- Dòng ở chế độ nghỉ: <80uA
- Tần số sóng mang: 13.56MHz
- Khoảng cách hoạt động: 0 ~ 60 mm (mifare1 card)
- Các loại card hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
- Cổng giao tiếp: SPI, tốc độ tối đa 10Мbps
- Kích thước: 40mm х 60mm
- Có khả năng đọc và ghi
Ứng dụng thực tế của RFID
- Bãi giữ xe
- Thẻ dùng trong các siêu thị
- Thẻ điểm danh học sinh, nhân viên
- Check in/out
- Định danh cho các thiết bị
HƯỚNG DẪN SỬ DỤNG ESP32 GIAO TIẾP RFID RC522 THƯ VIỆN ESP-IDF
CHUẨN BỊ
- ESP32-DevKitC
- Cáp USB Micro
- RC522 NFC Module
- Thẻ NFC 13.56MHz
- Cài đặt ESP-IDF
Kết nối ESP32 với Module RC522
- NodeMCU (D18) <-> RC522 (SCK)
- NodeMCU (D5) <-> RC522 (SS)
- NodeMCU (D23) <-> RC522 (MOSI)
- NodeMCU (D19) <-> RC522 (MISO)
Tiến hành
1. Cài đặt ESP-IDF, Hướng dẫn cài đặt ESP-IDF trên Window
2. Download example RC522-ESP-IDF
– Chú ý: nên đặt thư mục của dự án ngang hàng với thư mục esp-idf đã cài đặt
3. Mở ESP-IDF Command Prompt (cmd.exe) và đi tới thư mục rc522-esp-idf
cd ..\rc522-esp-idf
4. Build example rc522-esp-idf
idf.py build
5. Nạp vào board
idf.py flash monitor
6. Đặt thẻ NFC của bạn gần Module và quan sát UID của thẻ được thể hiện trên màn hình.
Video hướng dẫn ESP32 giao tiếp với RC522
Mời các bạn tiếp tục theo dõi các bài hướng dẫn lập trình ESP32.
Bài viết liên quan ESP32 GIAO TIẾP VỚI PN532 SỬ DỤNG ESP-IDF
Chúc các bạn thành công!
Chào bạn, mình thấy UID của bạn in ra đến 5 byte trong khi UID của thẻ Mifare là loại Single Size UID với 4 byte. 4 byte trong 5 byte UID ở code của bạn xử lý đều đúng là Single Size UID, nhưng byte thứ 5 thì bạn tính thế nào để có giá trị đó thế ạ ? Xin cảm ơn