RFID, Wi-Fi и MySQL подключение к ESP8266 для Учета и Мониторинга
Система учета с RFID и IoT
Комбинация модуля RFID RC522 с микроконтроллером ESP8266 и базой данных MySQL открывает новые возможности для управления доступом и мониторинга. В этой статье мы разберем, как подключить RC522 к ESP8266, передавать данные по Wi-Fi и сохранять их в MySQL для учета и анализа. Это идеальное решение для школ, офисов и предприятий, где нужна автоматизация и безопасность!
Используйте детали для проекта
Для создания системы учета соберите:
- Модуль 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).
Используйте библиотеку 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
);
выбирает её для работы;
создаёт таблицу 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);
}
отправляет его 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();
?>
принимает 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)
Как ESP8266 отправляет данные RFID на сервер?
ESP8266 подключается к Wi-Fi с помощью ESP8266WiFi. Считанный UID карты отправляется через HTTP POST на серверный скрипт (например, PHP), который записывает данные в базу MySQL для учета и мониторинга.
Какие проекты можно реализовать с RFID, ESP8266 и MySQL?
Примеры использования:
- Учет посещаемости студентов и сотрудников.
- Контроль доступа в офисы и помещения.
- Логирование событий на складах и предприятиях.
- Регистрация участников мероприятий или конференций.
- Создание отчетов и уведомлений при определенных событиях.