RFID, Wi-Fi и MySQL подключение к ESP8266 для Учета и Мониторинга

Система учета с RFID и IoT

Комбинация модуля RFID RC522 с микроконтроллером ESP8266 и базой данных MySQL открывает новые возможности для управления доступом и мониторинга. В этой статье мы разберем, как подключить RC522 к ESP8266, передавать данные по Wi-Fi и сохранять их в MySQL для учета и анализа. Это идеальное решение для школ, офисов и предприятий, где нужна автоматизация и безопасность!

RFID, Wi-Fi и MySQL подключение к ESP8266

Используйте детали для проекта

Для создания системы учета соберите:

  • Модуль ESP8266 (NodeMCU или Wemos D1 Mini)
  • Модуль RFID RC522
  • RFID-карты или брелоки (13.56 МГц, например, MIFARE Classic 1K)
  • Провода джамперы
  • Макетная плата
  • Доступ к серверу с MySQL

Часть 1: Подключение RFID RC522 к ESP8266

Модуль RC522 использует SPI-интерфейс для связи с ESP8266. Подключите его так:

  • VCC: К 3.3V (не 5V).
  • GND: К GND.
  • SDA: К D8 (GPIO15).
  • SCK: К D5 (GPIO14).
  • MOSI: К D7 (GPIO13).
  • MISO: К D6 (GPIO12).
  • RST: К D3 (GPIO0).

Подключение RFID карт. Простой пример

Используйте библиотеку MFRC522 для работы с модулем и ESP8266WiFi для настройки Wi-Fi.

Часть 2: Настройка Wi-Fi на ESP8266

ESP8266 подключается к Wi-Fi и отправляет данные RFID на удаленный сервер. Настройте SSID, пароль и адрес сервера в коде. Данные UID карты передаются через HTTP-запросы (например, POST) для записи в базу данных.

Часть 3: Сохранение данных в MySQL

Создайте базу данных MySQL и таблицу, например:

CREATE DATABASE rfid_access;
USE rfid_access;
CREATE TABLE access_log (
  id INT AUTO_INCREMENT PRIMARY KEY,
  uid VARCHAR(20),
  timestamp DATETIME
);
создаёт базу данных rfid_access;
выбирает её для работы;
создаёт таблицу access_log для хранения UID RFID-карт;
в таблице сохраняются UID и дата/время события доступа.

ESP8266 отправляет UID карты и время считывания в MySQL через серверный скрипт (например, PHP).

Часть 4: Управление данными

После сохранения данных в MySQL вы можете:

  • Просматривать логи через веб-интерфейс.
  • Редактировать или удалять записи.
  • Создавать отчеты о посещаемости или активности.
  • Настраивать уведомления при определенных событиях.

Пример кода: RFID RC522 и отправка данных в MySQL

Скетч считывает UID карты и отправляет его на сервер для записи в MySQL.

#include <SPI.h>
#include <MFRC522.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define RST_PIN D3
#define SS_PIN  D8

MFRC522 rfid(SS_PIN, RST_PIN);

const char* ssid = "your-SSID";
const char* password = "your-PASSWORD";
const char* serverUrl = "http://your-server.com/rfid.php";

WiFiClient client;

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("WiFi connected");
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent()) return;
  if (!rfid.PICC_ReadCardSerial()) return;

  String uid = "";
  for (byte i = 0; i < rfid.uid.size; i++) {
    if (rfid.uid.uidByte[i] < 0x10) uid += "0";
    uid += String(rfid.uid.uidByte[i], HEX);
  }
  uid.toUpperCase();

  Serial.println("UID: " + uid);

  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin(client, serverUrl);
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");

    String postData = "uid=" + uid;
    int httpCode = http.POST(postData);

    if (httpCode > 0) {
      Serial.println("HTTP ответ: " + String(httpCode));
    } else {
      Serial.println("Ошибка HTTP");
    }
    http.end();
  }

  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();
  delay(2000);
}
считывает UID карты MFRC522.
отправляет его POST-запросом на сервер.
выводит UID и код ответа в Serial.
ждёт 2 секунды перед следующим считыванием.

Серверный скрипт (PHP)

Создайте файл rfid.php на сервере для записи в MySQL:

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "rfid_access";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$uid = $_POST['uid'];
$timestamp = date("Y-m-d H:i:s");

$sql = "INSERT INTO access_log (uid, timestamp) VALUES ('$uid', '$timestamp')";
if ($conn->query($sql) === TRUE) {
  echo "Record added";
} else {
  echo "Error: " . $sql . "
" . $conn->error; } $conn->close(); ?>
подключается к базе rfid_access.
принимает uid из POST.
добавляет запись с текущим временем в таблицу access_log.
возвращает успех или ошибку.

Как работает код

SPI.begin(): Запускает SPI для RC522.

WiFi.begin(): Подключает ESP8266 к Wi-Fi.

rfid.PICC_IsNewCardPresent(): Обнаруживает карту.

HTTPClient: Отправляет UID карты на сервер через POST.

Установите библиотеки MFRC522, ESP8266WiFi и HTTPClient. Замените SSID, пароль и URL сервера. Настройте MySQL и PHP на сервере.

5 примеров использования RFID RC522 с MySQL

Эта система идеальна для автоматизации учета:

  • Учет посещаемости студентов: Фиксируйте вход в аудитории и создавайте отчеты.
  • Контроль сотрудников: Отслеживайте время прихода/ухода на предприятии.
  • Безопасность офиса: Логируйте доступ в кабинеты и хранилища.
  • Мониторинг мероприятий: Регистрируйте участников конференций или собраний.
  • Складской учет: Отслеживайте вход в зоны хранения с логированием в MySQL.

Заключение: RFID и MySQL для умного учета

Комбинация RFID RC522, ESP8266 и MySQL создает мощную систему для управления доступом и мониторинга. От школ до предприятий – она упрощает учет и повышает безопасность. Изучите примеры и видео по ссылке: Подключение RFID к MySQL. Начните свой проект IoT-учета уже сегодня!

FAQ — RFID RC522, ESP8266 и MySQL

Что такое RFID RC522 и как он работает с ESP8266?

RFID RC522 — это модуль для считывания карт и брелоков 13.56 МГц (MIFARE). Он использует SPI-интерфейс для связи с ESP8266. При поднесении карты модуль считывает UID, который можно использовать для учета доступа или логирования.

Как подключить RC522 к ESP8266?

Подключение стандартное через SPI:

  • VCC → 3.3V
  • GND → GND
  • SDA → D8 (GPIO15)
  • SCK → D5 (GPIO14)
  • MOSI → D7 (GPIO13)
  • MISO → D6 (GPIO12)
  • RST → D3 (GPIO0)
Для работы используйте библиотеку MFRC522.

Как ESP8266 отправляет данные RFID на сервер?

ESP8266 подключается к Wi-Fi с помощью ESP8266WiFi. Считанный UID карты отправляется через HTTP POST на серверный скрипт (например, PHP), который записывает данные в базу MySQL для учета и мониторинга.

Какие проекты можно реализовать с RFID, ESP8266 и MySQL?

Примеры использования:

  • Учет посещаемости студентов и сотрудников.
  • Контроль доступа в офисы и помещения.
  • Логирование событий на складах и предприятиях.
  • Регистрация участников мероприятий или конференций.
  • Создание отчетов и уведомлений при определенных событиях.

📁 Скачать примеры