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.