W tym projekcie stworzymy inteligentny system kontroli dostępu wykorzystujący ESP32, jednostki RFID oraz M5StickV. System obsługuje odczyt kart RFID, rozpoznawanie kodów QR oraz interakcję „offline-chmura” za pomocą MQTT. Kluczowe funkcje obejmują możliwości odczytu/zapisu RFID, komunikację danych opartą na MQTT oraz interakcję z interfejsem użytkownika za pomocą M5GO Lite.

Cele projektu
-
System dziurkowania kart: Zaimplementuj podstawową logikę systemu dziurkowania kart, używając ESP32 jako głównego układu sterującego.
-
Rozpoznawanie informacji RFID: Użyj jednostki RFID do odczytu i rozpoznawania informacji z karty IC.
-
Interakcja offline-chmura: Włącz interakcję platformy offline-chmura dla informacji o ćwiczeniach za pomocą MQTT.
-
Rozpoznawanie kodów QR: Wykorzystaj M5StickV do rozpoznawania kodów QR.
Wdrażaj procedury
Konfigurowanie serwera MQTT
1. Ustawienia serwera:
-
ID serwera, nazwa użytkownika i hasło: Ustaw te główne elementy dla serwera MQTT.
-
Numer portu: Zazwyczaj ustawiony na 1883.
-
URL serwera: Podaj URL platformy.
2. Dane publikacji:
-
Temat i format danych: Upewnij się, że format tematu odpowiada parametrom API platformy. Dane są zazwyczaj formatowane w JSON.
3. Subskrypcja danych:
-
Szczegóły subskrypcji: Ustaw temat i dane do subskrypcji. Upewnij się, że tematy do publikowania i subskrypcji są różne. Bezpieczeństwo powinno być zarządzane przez brokera. Dane subskrypcji zwrócą wartości Mid i Result, które można wykorzystać do weryfikacji integralności danych i sukcesu przesyłania.

Konfiguracja modułu
M5StickV do rozpoznawania kodów QR
1. Parametry kamery i obrazu:
-
Biblioteki: Użyj bibliotek czujników i obrazów MicroPython.
-
Format obrazu: Ustaw na RGB565.
-
Rozdzielczość: Ustaw na QQVGA (160x120).
-
Przechwyć obraz: Użyj biblioteki
img
, aby przechwycić obraz z kamery.
2. Wykrywanie kodu QR:
-
Wykrywanie: Użyj
find_qrcode
, aby wykryć kody QR na obrazie. Zwraca parametry takie jak przetworzone dane i specyfikacje. -
Odszyfrowywanie: Wyodrębnij i użyj odszyfrowanych danych do dalszego przetwarzania.
Konfiguracja RFID
Struktura karty RFID:
-
UID i BLOKI: UID to unikalny, tylko do odczytu identyfikator. BLOKI są czytelne i zapisywalne, gdzie przechowywane są dane studenta.
-
Opóźnienie: Wprowadź opóźnienie, aby zapobiec wielokrotnemu rozpoznawaniu spowodowanemu wysoką częstotliwością przetwarzania RF.
UART Komunikacja
Przegląd:
-
Protokół: UART to szeregowy asynchroniczny protokół transceivera przesyłający binarne bity danych.
-
Poziomy sygnału: Wysoki dla '1' i niski dla '0'.
Połączenia sprzętowe:
-
TX (Transmisja danych): Podłącz do RX drugiego urządzenia.
-
RX (Odbieranie danych): Podłącz do TX drugiego urządzenia.
-
GND: Zapewnij wspólny potencjał uziemienia między urządzeniami.
Interfejs urządzenia:
-
M5Go Lite: TX (GPIO17) i RX (GPIO16).
-
M5StickV: RX (GPIO35) i TX (GPIO34).
-
Biblioteka: Użyj biblioteki
uart
micropython, aby skonfigurować platformę.

Najpierw przyjrzyjmy się interfejsom urządzeń na podstawie schematu projektowego sprzętu. Dla M5Go Lite interfejsy TX i RX są przypisane odpowiednio do GPIO17 i GPIO16. Dla M5StickV interfejsy RX i TX są przypisane do GPIO35 i GPIO34. Ta konfiguracja łączy TX M5Go Lite z RX M5StickV i odwrotnie. Aby wykorzystać tę konfigurację, użyj biblioteki UART dołączonej do MicroPython, aby skonfigurować komunikację między urządzeniami.

Funkcje
Główne funkcje
-
M5GO Lite UI: Interaktywny interfejs z połączeniem WiFi.
-
Odczyt/Zapis RFID: Odczytuj i zapisuj informacje z kart IC.
-
Komunikacja MQTT: Interakcja między platformą chmurową a płytką rozwojową.
-
Rozpoznawanie kodów QR: Użyj M5StickV do rozpoznawania i odczytywania kodów QR.
-
System kart perforowanych: Zapytaj i wyświetl informacje o kartach perforowanych.
Funkcje drugorzędne
-
Brak powtarzającego się wybicia: Zapobiegaj powtarzaniu wybicia tego samego dnia.
-
Weryfikacja kodu QR: Upewnij się, że przesyłane są tylko informacje o studentach.