M5Stack RFID-gebaseerd slim toegangscontrolesysteem

Nu we het tijdperk van intelligentie binnengaan, zijn cloudgebaseerde intelligente communicatieapparaten erg populair geworden in ons dagelijks leven. In dit artikel gebruiken we de UiFlow-ontwikkelomgeving van M5Stack (Blocky) om een toegangscontrolesysteem met een cloudgebaseerde registratiefunctie te bouwen. Dit systeem omvat vier soorten authenticatie voor het slot (op afstand ontgrendelen via een mobiele telefoon, RFID-kaart, wachtwoord via toetsaanslagen en vingerafdrukherkenning) en verzendt de toegangscontrolegegevens via het MQTT-protocol.

 

Hardwareconfiguratie

 
Het toegangscontrolesysteem maakt gebruik van het modulaire M5Stack Faces-pakket. Het FACES-pakket bestaat uit een besturingscore (M5Stack Core) en verschillende invoerapparaten, waaronder een rekenmachine, een QWERTY-toetsenbord en andere invoerapparaten. In dit geval gebruiken we de rekenmachinetoetsenbordmodule voor het invoeren van toetsaanslagen. Let op: de Faces-module moet voorzichtig worden vervangen. Houd beide zijden van de module vast wanneer u deze loskoppelt, om beschadiging van de pinnen te voorkomen. Wees voorzichtig bij het vervangen van de Faces-module om beschadiging van de pinnen te voorkomen.
 
De volgende stap is het instellen van drie Unit-modules. Let op: de M5Stack RFID-module gebruikt de communicatie-interface I2C en kan worden aangesloten op de linkerkant van Core-poort A. De M5Stack-vingerafdrukherkenningsmodule gebruikt de communicatie-interface UART en kan worden aangesloten op de Core-poort. Let op: de GPIO-aansluitingen van de Core kunnen naar de achterkant van de Core worden doorgevoerd, waar u een aanduiding van de corresponderende interface-PIN vindt. Ook de GPIO-module aan de achterkant van de Core bevat een aanduiding van de corresponderende interface-PIN. De GPIO-interface aan de achterkant van de Core (GND, 5V, R2(16), T2(17)) en de M5Stack-relaismodule worden aangestuurd via I/O en aangesloten op Core-poort B (GND, 5V, DA(26), AD(36)).

 

 

Zodra de bedrading van de drie Unit-modules is voltooid, moet er een circuit worden aangelegd om de relaismodule aan te sluiten (zoals weergegeven), zodat het solenoïdeslot kan worden bediend. Gebruik deze keer een bedrijfsspanning van DC 12 V voor het solenoïdeslot. Let op: de M5Stack-relaismodule ondersteunt een voedingsingang tot DC 30 V en 3 A.

 

 

Zodra de hardware van het relaiscircuit is geconfigureerd, gebruikt het programma voor het schrijven van de code de officiële M5Stack-ontwikkelomgeving UiFlow. Omdat de huidige offlinehostversie van UiFlow langzaam wordt bijgewerkt, wordt aanbevolen om, als de draadloze wifisnelheid voldoende is, de externe Blocky-programmeerfunctie te gebruiken. In de volgende stap wordt de draadloze wifimethode voor het schrijven van programma's voor M5Stack geïntroduceerd. In het volgende gedeelte wordt uitgelegd hoe u via wifi programma's naar M5Stack Core schrijft.

 

UiFlow-instellingen

 
De firmware bijwerken
Voordat u verbinding maakt, moet u de officiële burner (M5Burner) downloaden om de firmwareversie bij te werken naar de nieuwste versie. Nadat u de kabel hebt aangesloten, toont de burner het COM-poortnummer. Selecteer de nieuwste CORE UiFlow-firmwareversie en druk op Burn om het branden te voltooien.
 

 
Verbinding tot stand brengen
Werk na het bijwerken van de firmware de Core bij naar 'Internet Mode', selecteer 'Wi-Fi via AP' en open vervolgens de onlinepagina. U ziet dan het aardepictogram knipperen.
 

 
Voer de SSID-naam in het zoekveld in om verbinding te maken met de wifi van de laptop. Houd er rekening mee dat de naam van elke Core verschilt. In dit voorbeeld is de naam M5-FB50. Open na het maken van de verbinding de browser en voer het volgende adres in het zoekveld in: [192.168.4.1]. U gaat dan naar de online-instellingenpagina. Voer de SSID en het wachtwoord in waarmee u verbinding wilt maken.
 
Zodra de verbinding tot stand is gebracht, toont de browser de volgende afbeelding. Het wifi- en onlinepictogram linksboven op het Core-display wordt groen weergegeven en de API key die voor de externe verbinding wordt gebruikt, is onderaan zichtbaar. Met deze configuratie kan Core toegang krijgen tot de SSID en het wachtwoord en vervolgens de netwerkmodus gebruiken om rechtstreeks verbinding te maken met internet. Als er meerdere AP's zijn gebruikt, kunt u via Setup > Server een lijst openen waaruit u kunt selecteren. Als u meerdere AP's hebt gebruikt, kunt u deze ook openen via Setup > Server.
Open vervolgens de browser op uw computer, maak opnieuw verbinding met internet, ga naar de webversie van Uiflow, voer de API KEY in, selecteer het type Core en druk op 'OK'.
 
 
De statusbalk onderaan toont de API KEY van het momenteel verbonden apparaat en geeft 'Connected' weer. Dit betekent dat de externe verbinding tot stand is gebracht en dat u programma's kunt gaan schrijven met Blocky-blokken.

 
Stap 1 Blocky instellen

 
Voordat u met het schrijven in Blocky begint, moet u de specifieke Unit-modulebibliotheek importeren die u hiervoor wilt gebruiken. Klik hiervoor op het plusteken linksonder in het scherm. Selecteer vervolgens poort B voor de relaismodule, poort C voor de vingerafdrukmodule en poort A voor de RFID-module. Bevestig de geselecteerde module door rechtsonder in het scherm op de knop OK te drukken.
 
 
Nadat u de module hebt geïmporteerd, wordt deze weergegeven in het linkerpaneel. Open het menu Unit om te controleren of de module correct is geïmporteerd.
 
 
Stap 2 Subroutines schrijven voor algemeen gebruik in een toegangscontrolesysteem
 
Na het importeren van de module schrijft u, om te voorkomen dat het programma te lang wordt, eerst enkele subroutines die herhaaldelijk in het toegangscontrolesysteem worden gebruikt.

1.Standaardstatus van het systeem (STAY):

Na het uitvoeren van een programma keert het systeem terug naar deze standaardprogrammatoestand. Hier zijn de weergavefunctie van toetsaanslagen en de AC-wisfunctie ingebouwd. Zoek de beginwaarde van de AC-knop (intial value) om de definitie voor het indrukken van de knop in te stellen. Uiflow gebruikt de volgende functieblokken: build function, judgment logic function, keyboard input function, UI component en relay reset.

 

2.UNLOCK: De actie die wordt uitgevoerd wanneer de identiteit correct is bevestigd via RFID, vingerafdrukherkenning, wachtwoordinvoer, afstandsbediening enzovoort. Om de veiligheid van de relaiswerking te waarborgen, wordt het relais 3 seconden nadat het is ingeschakeld automatisch uitgeschakeld. Uiflow gebruikt de volgende functieblokken: build function, buzzer, judgment logic function, UI component, relay turn on en reset.

 

 

3.LOCK: De actie die wordt uitgevoerd wanneer de identiteit correct is bevestigd via RFID, vingerafdrukherkenning, wachtwoordinvoer, afstandsbediening enzovoort. Uiflow gebruikt de volgende functies: Build function, Buzzer, Judgment Logic function, UI component.

 

 

Stap 3: Netwerkverbinding en MQTT-functie instellen.
 
Het doel van dit experiment is een netwerk en verbinding in te stellen waarmee gegevens van elke deuropening via het MQTT-protocol naar een tijdelijke cloudopslag kunnen worden verzonden. De installatie wordt uitgevoerd met wifi. MQTT is een berichtenprotocol dat is gebaseerd op het mechanisme voor publiceren/abonneren, vergelijkbaar met het plaatsen en volgen van video's op sociale media of YouTube.
 
In MQTT is de afzender van berichten vergelijkbaar met een YouTube-kanaal of een Instagram-account. Wanneer een film is uitgebracht of een Instagram-bericht is geplaatst, wordt dit niet rechtstreeks naar abonnees verzonden. In plaats daarvan wordt het overgedragen aan een server of derde partij (broker), die het publiceren en beheren van abonnementen coördineert. Elke inhoudsbron (bijvoorbeeld een film of een artikel) krijgt een unieke topicnaam toegewezen (bijvoorbeeld de titel van de film of het artikel), en de proxy is serversoftware. De entiteit die het topic naar de server verzendt, is de publisher, en de entiteit die het topic van de server ontvangt, is de subscriber.
 
Stel eerst de wifi-verbindingsfunctie van de Access Control Core in. Open hiervoor het menu Advanced van Uiflow, selecteer 'Connect to Wi-Fi SSID' en voer het wachtwoord in bij Network. Vervolgens wordt u gevraagd de naam en het wachtwoord in te voeren van het accesspoint op de locatie waar u het toegangscontrolesysteem wilt installeren. Selecteer 'Connect to Wi-Fi SSID' en voer de naam en het wachtwoord in van het accesspoint (AP) waarmee op de gewenste installatielocatie verbinding kan worden gemaakt.
 
Voeg een beoordelingslogica en de schermcomponent voor scrollen in de UI toe om te controleren of de WiFi-verbinding actief is. Wanneer de WiFi-verbinding actief is, wordt groen weergegeven; wanneer de verbinding verbroken is, wordt rood weergegeven. Hiermee is de netwerkinstelling voltooid. UiFlow gebruikt de volgende functiegroepen: de volgende functies zijn opgenomen: Beoordelingslogica, WiFi-instelling en UI-component.
 

 
De MQTT Broker die door het toegangscontrolesysteem wordt gebruikt, is een gratis broker die HiveMQ aan alle gebruikers aanbiedt. Open uw browser en ga naar Public Broker om de host en TCP-poort van de broker te controleren.
 
Open vervolgens het menu Advanced van UiFlow, gebruik MQTT host om de MQTT-functie in te stellen en te activeren, vul de TCP-poort en server van de broker in en stel een gebruikersnaam voor de client in. Nadat de instellingen zijn voltooid, activeert Core de MQTT-service via de WiFi-verbinding. UiFlow gebruikt de volgende functies.

 

 

Als u een mobiele telefoon wilt instellen voor het ontvangen en verzenden van MQTT-berichten, zoekt u in GOOGLE PLAY of de Apple App Store naar IoT MQTT Panel, downloadt u de app en opent u deze. IOT MQTT Panel is een lichtgewicht en gebruiksvriendelijke MQTT-tool met veel vooraf ingestelde UI-sjablonen. De betaalde versie biedt realtime meldingen op de mobiele telefoon wanneer nieuwe berichten worden ontvangen.

 

 
Open de app. Vul eerst de eerder ingestelde CORE-broker-TCP-poort en server (BrokerWeb) in bij de Client en stel ook een gebruikersnaam in. Vergeet niet een functie-Dashboard toe te voegen; anders kan het niet worden aangemaakt!

 

 
Nadat u een Dashboard hebt aangemaakt, bouwt u de UI-functiemodules (Add panel). We moeten in totaal twee functiemodules met verschillende eigenschappen maken: één Text Log voor toegangscontrole die door het systeem wordt geactiveerd, en één Switch voor bediening op afstand.
 

 
Stap 4: Toegangscontrolelogboek
 
Maak een functie voor toegangscontrolelogboeken. Wanneer het toegangscontrolesysteem wordt geactiveerd om de identiteit te bevestigen, worden de bevestigingsresultaten naar dit logboek gestuurd. Het werkingsprincipe is dat er een Topic wordt aangemaakt (hier ingesteld als M5Stack_Log), zodat de Core van het toegangscontrolesysteem berichten naar dit Topic kan sturen. Instellingen van de functiemodule: pas het aantal weergegeven berichten en de lettergrootte aan, evenals de tijdstempel. De realtime-meldingsfunctie op de mobiele telefoon (Enable notification) is alleen beschikbaar in de betaalde versie. Nadat de instellingen zijn voltooid, drukt u op SAVE om de aanmaak af te ronden.
 

 
Stap 5: toegangscontrolefunctie -- ontgrendelen op afstand
 
Op afstand schakelen: het werkingsprincipe is dat je een Topic op de mobiele telefoon instelt en volgens de status van de UI-schakelaar (ON/OFF) op de mobiele telefoon een bericht verstuurt (ik noem dit ontgrendelen/vergrendelen). De Core bij het deurslot leest het bericht door zich op het Topic van de mobiele telefoon te abonneren en kan vervolgens het deurslot bedienen.
Onder de categorie met hookfuncties kun je onderaan de hooks Show received timestamp en Show sent timestamp plaatsen om het tijdstip te registreren. De functie voor realtime meldingen op de mobiele telefoon (Enable notification) is betaald. Klik na het instellen op SAVE om de creatie te voltooien.

 

 
Zorg ervoor dat Uiflow is ingeschakeld, dat de afstandsbedieningsfunctie is geconfigureerd en dat het Topic (Lock_Action) van de broker voor het toegangscontrole-CORE-abonnement is ingesteld. Wanneer de mobiele telefoon wordt geactiveerd, moet de ontgrendelingssubroutine (UNLOCK) worden uitgevoerd om het deurslot te openen en moet het toegangscontrolerecord naar het Topic (M5Stack_Log) van de mobiele telefoon worden verzonden met de naam Remote_OPEN. Let op: de naam moet correct worden ingevoerd, want een onjuiste hoofdlettercombinatie zorgt ervoor dat het bericht niet wordt ontvangen of verzonden. De berichtnaam is 'Remote_OPEN'. Let op: de naam moet correct worden ingevoerd, want een onjuist Topic zorgt ervoor dat het bericht niet wordt ontvangen of verzonden. Uiflow gebruikt de volgende functiecategorieën: de MQTT-functie, de functie voor beoordelingslogica, de tekstimportsubroutine en andere beschikbare functies.

 

 
De afstandsbediening zorgt ervoor dat de solenoïdeklep succesvol wordt bediend en dit wordt weergegeven op het Core-scherm. De logmodule op de mobiele telefoon geeft de gegevens weer met een tijdstempel.

 

 
Stap 6: toegangscontrolefunctie -- RFID
 
Stel de RFID-toegangscontrolefunctie als volgt in: voeg eerst onder de huidige MQTT-instellingsfunctie een Main-lus toe als hoofdprogramma om de beoordeling te activeren, en voeg de functie toe die wordt geactiveerd wanneer er een RFID-kaart in de buurt van de functie is. Uiflow gebruikt de volgende functiecategorieën: functiecreatie MAIN, functie voor beoordelingslogica en RFID-functiebibliotheek.
 

 
Maak de RFID-beoordelingsfunctie (RFID_decision), de RFID-subroutine (RFID_OK) en de RFID-subroutine (RFID_Denied). De beoordelingsfunctie (RFID_decision) gebruikt de uitvoeringssubroutine (RFID_OK) plus de systeemsubroutine (UNLOCK) wanneer de RFID correct is, of de uitvoeringssubroutine (RFID_Denied) plus de systeemsubroutine (LOCK) wanneer de RFID onjuist is.
 
Vergeet niet om na voltooiing de MQTT-pushfunctie aan beide RFID-subroutines toe te voegen. Zowel bij een correcte als bij een foutieve herkenning wordt het bericht naar het topic (M5Stack_Log) gepusht. De RFID-UID kan worden verkregen via de RFID-functie van UiFlow. UiFlow gebruikt de volgende functiecategorieën: RFID-subroutinefunctie maken, beoordelingslogica, RFID-functiebibliotheek, UI-componenten, MQTT-functies, tekst en importsubroutines.
 

 
Bij een geslaagde RFID-herkenning wordt de magneetklep één keer geactiveerd en wordt de juiste kaart op de Core weergegeven; bij een fout wordt de foutieve kaart weergegeven.
De logmodule op de mobiele telefoon toont de informatie over correcte en onjuiste invoer (met tijdstempels).
 

 
Stap 6 Toegangscontrolefunctie — invoer van toetsenwachtwoord
 
Om de functie voor een toetsenwachtwoord in te stellen, voeg je onder de hoofdlus (Main) een triggerfunctie voor toetseninvoer toe. Deze wordt geactiveerd wanneer het aantal op het toetsenbord ingevoerde cijfers groter dan of gelijk aan 7 is. UiFlow gebruikt de volgende functiecategorieën: functie, beoordelingslogica, tekst en toetsenbordmodulefunctie.
 
De volgende functies en subroutines moeten worden aangemaakt: Password_decision, RFID_OK en RFID_Denied. De subroutine Password_decision wordt gebruikt als uitvoerbare subroutine (Type_OK) plus een systeemsubroutine (UNLOCK) wanneer het wachtwoord correct is ingevoerd, of als uitvoerbare subroutine (Type_Denied) plus een systeemsubroutine (LOCK) wanneer het wachtwoord onjuist is ingevoerd.
 
Nadat je de subroutines voor het invoeren van het wachtwoord hebt voltooid, voeg je aan beide de MQTT-pushfunctie toe, ongeacht of het wachtwoord correct of onjuist is ingevoerd. Het bericht wordt vervolgens naar het topic (M5Stack_Log) gepusht. UiFlow gebruikt de volgende functiecategorieën: de volgende functies moeten worden aangemaakt: wachtwoordinvoersubroutine, beoordelingslogica, toetsenbordmodule, UI-component, MQTT, tekst en importsubroutine.

 

De magneetklep wordt één keer geactiveerd en geeft op de Core correct weer als het wachtwoord correct is ingevoerd; bij een onjuist ingevoerd wachtwoord wordt dit onjuist weergegeven.
De logmodule op de mobiele telefoon toont de gegevens van correcte en onjuiste wachtwoorden (met tijdstempels).

 

 

Conclusie

 
Dit echte toegangscontrolesysteem maakt gebruik van verschillende technologieën, waaronder RFID, vingerafdrukherkenning, toetseninvoer en andere modules om snel robuuste hardwareoplossingen te ontwikkelen. Het maakt gebruik van MQTT-communicatieprotocollen om deursloten op afstand te ontgrendelen en toegangscontroleregisters te genereren. Vanwege de geavanceerde functionaliteit van Blocky zijn functies zoals AI-gezichtsherkenning momenteel niet beschikbaar in UiFlow. We zullen echter in de nabije toekomst geavanceerde YOLO-detectiefuncties introduceren nadat beeldstreaming beschikbaar is.

 

Plaats een opmerking

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

Register for our newsletter

Get the latest information about our products and special offers.

Website Feedback

Help us improve OpenELAB

Found a website issue or have an idea? Tell us what would make your experience better.