ESP32S3idf连接RC522RFID制作刷卡器识别

概要

ESP32S3模块
RC522RFID刷卡读卡器(网上有卖很便宜)
连接方式SPI
使用components组件

硬件连接引脚

SPI连接ESP32引脚

组件引入

把组件放入自己的ESP32S3 idf工程components目录下。组件具有防止连续长时间放置卡识别冲突功能。
引入组件位置

代码

根据自己的 实际的SPI引脚进行配置。 还有SPI号码,我用的是SPI2

static rc522_handle_t scanner;
rc522_config_t config = {
        .spi.host = SPI2_HOST,
        .spi.miso_gpio = 13,
        .spi.mosi_gpio = 11,
        .spi.sck_gpio = 12,
        .spi.sda_gpio = 14,
    };
rc522_create(&config, &scanner);
rc522_register_events(scanner, RC522_EVENT_ANY, rc522_handler, NULL);
if (rc522_start(scanner) == ESP_OK)
{
    /*  Add content */
}

static void rc522_handler(void *arg, esp_event_base_t base, int32_t event_id, void *event_data)
{
    rc522_event_data_t *data = (rc522_event_data_t *)event_data;

    switch (event_id)
    {
    case RC522_EVENT_TAG_SCANNED:
    {
        rc522_tag_t *tag = (rc522_tag_t *)data->ptr;
        // ESP_LOGI(TAG, "Tag scanned (sn: %" PRIu64 ")", tag->serial_number);
        ESP_LOGI(TAG, LOG_COLOR(LOG_COLOR_RED) "Tag scanned (sn: %llu ) card_num: %u", tag->serial_number, 		   card_num_covert(tag->serial_number));
    }
    break;
    }
}

运行情况

识别对应卡号码

更多推荐