19.01.2026

Tap into RFID: Easy wireless projects with Arduino & MicroPython

Arduino
Qwiic
MicroPython
Tap into RFID: Easy wireless projects with Arduino & MicroPython

Table of contents

Tap into RFID for your next project! What is RFID? RFID tags, cards and stickers: what’s the difference? Reading RFID tags with Arduino Reading RFID tags with MicroPython Arduino office time logger project with RFID
Table of contents
Tap into RFID for your next project! What is RFID? RFID tags, cards and stickers: what’s the difference? Reading RFID tags with Arduino Reading RFID tags with MicroPython Arduino office time logger project with RFID

Tap into RFID for your next project!

 

We’ve all “tapped in” at some point, whether it’s paying with a contactless card, scanning a bus pass, or waving a badge at a door reader. A cheerful beep and a green light grant us access, or sometimes a less friendly red flash says try again. The invisible magic behind this is Radio Frequency Identification (RFID).


But RFID isn’t just for banks, transit companies, or warehouses. Makers and hobbyists can use it too! As DIY electronics projects become more advanced, technologies once locked away in industrial systems are now available as simple plug-and-play boards and modules. That means you can add powerful, real-world identification features to your own creations without wading through hundreds of pages of chip datasheets.


In this article, we’ll give you a quick overview of what RFID is, explore its common and surprising uses, and show you how easy it is to start experimenting with our 125 kHz RFID Reader Board in your own Arduino or MicroPython projects.

What is RFID?

Radio-frequency identification (RFID) uses electromagnetic fields to automatically identify and track small electronic devices called RFID tags.

An RFID system usually includes:

  • A radio transmitter – generates the RF signal used to energize passive tags.

  • A radio receiver – listens for the tag’s response.

  • An antenna – typically shared between the transmitter and receiver, used to radiate and collect the signal.

  • A radio transponder (RFID tag) – a tiny chip with its own antenna, which responds when energized.


Here’s how it works: the reader’s antenna emits an interrogating RF signal. When an RFID tag enters the field, its antenna harvests enough energy to power the chip. The chip then communicates back by backscattering: slightly altering the way it reflects the RF signal. These changes carry the tag’s unique ID and other data, which the receiver extracts and interprets.

RFID shows up in many parts of daily life: contactless payment cards, retail anti-theft systems, public transport passes, and warehouse tracking. But it’s also used in more surprising ways: timing marathons, running cashless amusement park wristbands, authenticating luxury goods and wine bottles, or even tracking bees in research projects. Wherever quick, touch-free identification of objects or people is needed, RFID is often the technology behind it.

RFID tags, cards and stickers: what’s the difference?

All three options are built around the same principle: a small RFID chip paired with an antenna, but they differ in form factor and intended use:

  • RFID Tags – Durable units that can be embedded in products, attached to assets, or sewn into textiles. Great for industrial or maker projects where reusability matters.

  • RFID Cards – Standard credit-card-sized plastic cards, perfect for building access systems, employee IDs, or cashless payment setups.

  • RFID Stickers – Thin, flexible, adhesive-backed tags that can be quickly applied to packages, books, or retail items. Low-cost and disposable.

Reading RFID tags with Arduino

Getting started with RFID in your projects is simple with our 125 kHz RFID Reader Board. It comes in two variants:

  • I2C version – uses the EasyC/Qwiic connector for easy connecting and daisy-chaining multiple devices.

  • UART version – communicates over a simple serial TX/RX line.

We also provide a dedicated Arduino library to make development as smooth as possible. Let’s look at some examples using the I2C verison!

[Image placeholder: RFID board connected to microcontroller via Qwiic cable]

 

Example: Reading a Tag with Arduino (I²C version)

Let’s read a tag using the Qwiic version! Simply connect the RFID board to your microcontroller and check if something can be read in a loop:


void loop()
{
  // Check if valid tag data is available
  if (rfid.available())
    {
      // Read and print tag ID and raw data
      Serial.print("Tag available! Tag ID: ");
      Serial.print(rfid.getId());
      Serial.print(" RAW RFID Data: ");
      rfid.printHex64(rfid.getRaw()); // Print raw data as hexadecimal
      Serial.println();
      // Optionally clear RFID data from the breakout
      // rfid.clear();
     }
}

 


A detailed tutorial for the Arduino library is available in our documentation here.

The full runnable example for Arduino is available here.

Reading RFID tags with MicroPython


# Import needed libraries
from rfid import RFID
from machine import I2C, Pin
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
rfid = RFID(i2c=i2c, i2c_address=0x30)
if rfid.checkHW():
    print("RFID Reader detected")
    while True:
        if rfid.available():
            tag_id = rfid.getId()
            raw_data = rfid.getRaw()
            print(f"Tag ID: {tag_id}")
            print("Raw Data: ", end="")
            rfid.printHex64(raw_data)
else:
    print("Couldn't detect RFID reader")

Check out our MicroPython modules here

Arduino office time logger project with RFID

Now that we can easily read tags, let’s make something even cooler! Instead of writing data to an SD card, we’ll host a local webserver on the microcontroller that shows tag scans in real time.

For this example project you will need:

1× Microcontroller (we’re using Soldered Dasduino CONNECTPLUS)

RFID Reader Board

OLED display (for user feedback)

RFID card

Qwiic cables for plug-and-play wiring

When a user taps their RFID card or tag, the system will:

  • Read the ID from the RFID board.

  • Display the user’s name (or “Unknown”) on the OLED.

  • Serve the event log over a simple web page on your local Wi-Fi network.


  void loop() {
  display.clearDisplay();
  display.setCursor(0,0);
  display.println("RFID logger");
  display.println();
  display.println("IP address:");
  display.print(IP);
  display.display();
  // Monitors the presence of a client and delivers the requested HTML page
  server.handleClient();
  // See if the RFID scanner detects a card
  if (rfid.available()) {
    // If a card is detected, get its ID and store it for future use
    int ID = rfid.getId(); 
    String idStr = String(ID);
    // Display the ID and when it was scanned on the display
    display.setCursor(0,0);
    display.clearDisplay();
    display.println("Scanned ID: ");
    display.println(idStr);
    display.println();
    display.println("At:");
    display.print(getTimeString());
    display.display();
    // Add a scan entry so that it can be displayed on the server
    addScan(idStr);
    // A way to debounce the scanner so we dont get duplicate scans
    while(rfid.available())
    {
      rfid.clear();
      delay(100);
    }
    // Monitors the presence of a client and delivers the requested HTML page
    server.handleClient();
    delay(2000);
  }
  delay(50);
}

Now, when you scan a tag, the ID appears on the OLED and in your browser at the ESP32’s IP address.



Full project with detailed code and setup instructions is available here.

Ready to start your own RFID project? Check out our 125kHz RFID Reader Board and bring contactless technology to your Arduino or MicroPython project!

Products mentioned in this article

Related Articles