I detta projekt skapar vi ett smart åtkomstkontrollsystem med ESP32, RFID-enheter och M5StickV. Systemet stödjer RFID-kortläsning, QR-kodigenkänning och "offline-molnplattform"-interaktion via MQTT. Viktiga funktioner inkluderar RFID läs-/skrivmöjligheter, MQTT-baserad datakommunikation och användargränssnittsinteraktion via M5GO Lite.

Projektmål
-
Stämpelkortssystem: Implementera grundläggande logik för ett stämpelkortssystem med ESP32 som huvudstyrchip.
-
RFID-informationsigenkänning: Använd RFID-enheten för att läsa och känna igen IC-kortsinformation.
-
Offline-molninteraktion: Möjliggör offline-molnplattforminteraktion för träningsinformation med MQTT.
-
QR-kodigenkänning: Använd M5StickV för QR-kodigenkänning.
Implementera procedurer
Konfigurera MQTT-servern
1. Serverinställningar:
-
Server-ID, användarnamn och lösenord: Ställ in dessa huvuddelar för MQTT-servern.
-
Portnummer: Vanligtvis inställt på 1883.
-
Server-URL: Ange plattformens URL.
2. Publicera data:
-
Ämne och dataformat: Se till att ämnesformatet matchar plattformens API-parametrar. Data är vanligtvis formaterad i JSON.
3. Prenumerera på data:
-
Prenumerationsdetaljer: Ställ in ämnet och data för prenumeration. Se till att teman för publicering och prenumeration är olika. Säkerheten bör hanteras av mäklaren. Prenumerationsdata kommer att returnera Mid och Result-värden, som kan användas för att verifiera dataintegritet och uppladdningsframgång.

Modulkonfiguration
M5StickV för QR-kodigenkänning
1. Kamera- och bildparametrar:
-
Bibliotek: Använd MicroPythons sensor- och bildbibliotek.
-
Bildformat: Ställ in på RGB565.
-
Upplösning: Ställ in på QQVGA (160x120).
-
Fånga bild: Använd
img
-biblioteket för att fånga kamerabilden.
2. QR-koddetektion:
-
Detektion: Använd
find_qrcode
för att upptäcka QR-koder i bilden. Den returnerar parametrar som tolkad data och specifikationer. -
Avkodning: Extrahera och använd den avkodade datan för vidare bearbetning.
RFID-konfiguration
RFID-kortstruktur:
-
UID och BLOCKS: UID är en unik, skrivskyddad identifierare. BLOCKS är läsbara och skrivbara, där studentdata lagras.
-
Fördröjning: Implementera en fördröjning för att förhindra flera igenkänningar på grund av hög RF-bearbetningsfrekvens.
UART Kommunikation
Översikt:
-
Protokoll: UART är ett seriellt asynkront transceiverprotokoll som överför binära databitar.
-
Signalnivåer: Hög för '1' och låg för '0'.
Hårdvaruanslutningar:
-
TX (Sändning av data): Anslut till RX på den andra enheten.
-
RX (Mottagning av data): Anslut till TX på den andra enheten.
-
GND: Säkerställ en gemensam jord mellan enheterna.
Enhetsgränssnitt:
-
M5Go Lite: TX (GPIO17) och RX (GPIO16).
-
M5StickV: RX (GPIO35) och TX (GPIO34).
-
Bibliotek: Använd micropythons
uart
-bibliotek för att konfigurera plattformen.

Först, låt oss undersöka enhetsgränssnitten baserat på hårdvarudesignschemat. För M5Go Lite är TX- och RX-gränssnitten kopplade till GPIO17 respektive GPIO16. För M5StickV är RX- och TX-gränssnitten kopplade till GPIO35 respektive GPIO34. Denna konfiguration kopplar TX på M5Go Lite till RX på M5StickV och vice versa. För att använda denna konfiguration, använd UART-biblioteket som ingår i MicroPython för att ställa in kommunikationen mellan enheterna.

Funktioner
Huvudfunktioner
-
M5GO Lite UI: Interaktivt gränssnitt med WiFi-anslutning.
-
RFID läs/skriv: Läs och skriv IC-kortsinformation.
-
MQTT-kommunikation: Interagera mellan molnplattformen och utvecklingskortet.
-
QR-kodigenkänning: Använd M5StickV för att känna igen och läsa QR-koder.
-
Stämpelkortssystem: Fråga och visa stämpelkortsinformation.
Sekundära funktioner
-
Ingen upprepad stämpling: Förhindra upprepad stämpling samma dag.
-
QR-kodvalidering: Säkerställ att endast studentinformation laddas upp.