Vaihe 3: Verkkoyhteyden ja MQTT-toiminnon määrittäminen.
Tämän kokeen tavoitteena on määrittää verkko ja yhteys, joiden avulla jokaisen oven avautumisesta voidaan lähettää tietoja väliaikaiseen pilvitallennustilaan MQTT-protokollan kautta. Määritys tehdään WiFi-yhteydellä. MQTT on ”julkaise/tilaa”-mekanismiin perustuva viestintäprotokolla, joka vastaa sosiaalisen median tai YouTuben videoiden julkaisu- ja tilausmekanismia.
MQTT:ssä viestien lähettäjä vastaa YouTube-kanavaa tai Instagram-tiliä. Kun elokuva on julkaistu tai Instagram-julkaisu tehty, sitä ei lähetetä suoraan tilaajille. Sen sijaan se luovutetaan palvelimelle tai kolmannelle osapuolelle (välittäjälle), joka koordinoi ja hallinnoi julkaisua ja tilauksia. Kullekin sisällön lähteelle (esimerkiksi elokuvalle tai artikkelille) annetaan yksilöllinen aiheen nimi (esimerkiksi elokuvan tai artikkelin otsikko), ja välityspalvelin on palvelinohjelmisto. Aiheen palvelimelle välittävä taho on julkaisija, ja palvelimelta aiheen vastaanottava taho on tilaaja.
Aloita määrittämällä Access Control Coren WiFi-yhteystoiminto. Avaa tätä varten Uiflow'n Advanced-valikko, valitse ”Connect to Wi-Fi SSID” ja syötä salasana kohtaan Network. Tämän jälkeen sinua pyydetään syöttämään sen tukiaseman nimi ja salasana, joka sijaitsee paikassa, johon aiot asentaa kulunvalvontajärjestelmän. Valitse ”Connect to Wi-Fi SSID” ja syötä sen tukiaseman (AP) nimi ja salasana, johon voidaan muodostaa yhteys kulunvalvontajärjestelmän asennuspaikassa.
Varmista WiFi-yhteyden tila lisäämällä ehtologiikkatoiminto ja näytön käyttöliittymän vierityskomponentti. Kun WiFi on yhteydessä, näytössä näkyy vihreä väri, ja kun yhteys katkeaa, näytössä näkyy punainen väri. Näin verkon yhteysasetukset ovat valmiit. UiFlow käyttää seuraavia toimintoryhmiä: mukana ovat ehtologiikka, WiFi-asetukset ja käyttöliittymäkomponentti.

Access Control -järjestelmän käyttämä MQTT Broker on HiveMQ:n kaikille käyttäjille tarjoama ilmainen välittäjä. Avaa selain ja siirry kohtaan Public Broker tarkistaaksesi välittäjän Host-osoitteen ja TCP-portin.
Avaa seuraavaksi UiFlow'n Advanced-valikko, määritä MQTT-isäntä ja ota MQTT-toiminto käyttöön, täytä välittäjän TCP-portti ja palvelin sekä aseta Clientille käyttäjänimi. Kun asetukset on määritetty, Core ottaa MQTT-palvelun käyttöön WiFi-yhteyden kautta. UiFlow käyttää seuraavia toimintoja.


Voit määrittää matkapuhelimen vastaanottamaan ja lähettämään MQTT-viestejä etsimällä GOOGLE PLAY -kaupasta tai Applen App Storesta sovelluksen IoT MQTT Panel, lataamalla sen ja avaamalla sen. IOT MQTT Panel on kevyt ja helppokäyttöinen MQTT-työkalu, joka sisältää valmiiksi määritettyjä käyttöliittymämalleja. Maksullinen versio tarjoaa matkapuhelimeen reaaliaikaiset ilmoitukset, jotka näkyvät ponnahdusilmoituksina uusien viestien saapuessa.

Kun olet avannut sovelluksen, määritä ensin Client aiemmin asetetun COREn välittäjän TCP-portin ja palvelimen (BrokerWeb) mukaan ja aseta myös käyttäjänimi. Muista lisätä toimintoihin Dashboard, muuten sitä ei voi luoda!

Kun Dashboard on luotu, rakenna seuraavaksi käyttöliittymän toimintomoduulit (Add panel). Meidän on luotava yhteensä kaksi toimintomoduulia: toinen on Text Log -moduuli kulunvalvonnan käynnistämien tapahtumien kirjaamiseen ja toinen on Switch-kytkin etäohjausta varten.

Vaihe 4: Kulunvalvontaloki
Luo kulunvalvontakirjauksen toiminto. Kun kulunvalvontajärjestelmä käynnistyy vahvistamaan henkilöllisyyden, vahvistustulokset lähetetään tähän kirjaukseen. Toimintaperiaatteena on luoda Topic (asetan sen tässä muotoon M5Stack_Log), jotta kulunvalvontajärjestelmän Core voi lähettää viestejä tähän Topic-osoitteeseen. Toimintomoduulin asetukset: säädä näytettävien viestien määrää ja fonttikokoa sekä aikaleimaa. Matkapuhelimen reaaliaikainen ilmoitustoiminto (Enable notification) on maksullinen. Kun asetukset on määritetty, viimeistele luominen painamalla SAVE.

Vaihe 5: Käytönvalvontatoiminto – etälukituksen avaus
Etäkytkentä: Toimintaperiaatteena on määrittää matkapuhelimeen Topic ja lähettää viesti (esimerkiksi lukituksen avaaminen tai lukitseminen) matkapuhelimen käyttöliittymän kytkimen tilan (ON/OFF) perusteella. Oven lukon Core lukee viestin tilaamalla matkapuhelimen Topic-kanavan, minkä jälkeen se voi ohjata oven lukon kytkintä.
Hook-toimintoryhmän alle voit sijoittaa Show received timestamp- ja Show sent timestamp -toiminnot tallentamaan ajankohdat. Matkapuhelimen reaaliaikainen ilmoitustoiminto (Enable notification) on maksullinen. Kun asetukset on määritetty, tallenna valitsemalla SAVE, jolloin luonti on valmis.

Varmista, että Uiflow on käytössä, etäohjaustoiminto on määritetty ja että käytönvalvonnan Coren tilausvälittäjän Topic (Lock_Action) on määritetty. Kun matkapuhelin aktivoidaan, lukituksen avaamisen aliohjelma (UNLOCK) suoritetaan oven lukon avaamiseksi ja käytönvalvontatieto lähetetään matkapuhelimen Topic-kanavaan (M5Stack_Log) nimellä Remote_OPEN. Huomaa, että nimi on kirjoitettava oikein, sillä väärä kirjainkoko estää viestin vastaanoton ja lähetyksen. Viestin nimi on Remote_OPEN. Huomaa, että nimi on kirjoitettava oikein, sillä väärä topic estää viestin vastaanoton tai lähetyksen. Uiflow käyttää seuraavia toimintoryhmiä: MQTT-toiminto, päätöksentekologiikan toiminto, tekstin tuontialiohjelma ja muita käytettävissä olevia toimintoja.

Etäohjaus aktivoi solenoidiventtiilin onnistuneesti, ja tulos näytetään Coren näytöllä. Matkapuhelimen lokimoduuli näyttää aikaleimalla varustetut tiedot.

Vaihe 6: Käytönvalvontatoiminto – RFID
Määritä RFID-käytönvalvontatoiminto lisäämällä ensin nykyisen MQTT-asetustoiminnon alle Main-silmukka pääohjelmaksi, joka käynnistää päätöksenteon. Lisää myös toiminto, joka käynnistää toiminnon, kun RFID-kortti tuodaan sen lähelle. Uiflow käyttää seuraavia toimintoryhmiä: MAIN-toiminnon luonti, päätöksentekologiikan toiminto ja RFID-toimintokirjasto.

Luo RFID-päätöksentekofunktio (RFID_decision) sekä RFID-aliohjelmat (RFID_OK) ja (RFID_Denied). Päätöksentekofunktio (RFID_decision) suorittaa RFID:n ollessa oikein suoritus-aliohjelman (RFID_OK) ja järjestelmäaliohjelman (UNLOCK) tai RFID:n ollessa väärin suoritus-aliohjelman (RFID_Denied) ja järjestelmäaliohjelman (LOCK).
Muista lisätä MQTT-viestien lähetystoiminto molempiin RFID-aliohjelmiin niiden valmistuttua. Oikea tai virheellinen tulos lähettää viestin Topic-aiheeseen (M5Stack_Log). RFID-tunnisteen UID voidaan hakea UiFlow’n RFID-toiminnolla. UiFlow käyttää seuraavia toimintoluokkia: RFID-aliohjelman luontitoiminto, päättelylogiikkatoiminto, RFID-funktiokirjasto, käyttöliittymäkomponentit, MQTT-toiminnot, teksti ja tuontialiohjelmatoiminnot.

Kun RFID-tunnistus onnistuu, solenoidiventtiili aktivoituu kerran ja Core näyttää oikean kortin. Jos kortin tunnistuksessa tapahtuu virhe, Core näyttää virheilmoituksen.
Matkapuhelimen lokimoduuli näyttää oikeat ja virheelliset tiedot sekä niiden aikaleimat.

Vaihe 6: Kulunvalvontatoiminto – salasanan syöttäminen näppäimistöllä
Määritä näppäinpainalluksiin perustuva salasanatoiminto lisäämällä näppäinpainallusten käynnistystoiminto pääohjelman (Main) silmukkaan. Se käynnistyy, kun näppäimistöön syötettyjen numeroiden määrä on vähintään 7. UiFlow käyttää seuraavia toimintoluokkia: toiminto, päättelylogiikkatoiminto, teksti ja näppäimistömoduulitoiminto.
Luo seuraavat toiminnot ja aliohjelmat: Password_decision, RFID_OK ja RFID_Denied. Password_decision-aliohjelmaa käytetään suoritettavana aliohjelmana (Type_OK) ja järjestelmäaliohjelmana (UNLOCK), kun salasana syötetään oikein, tai suoritettavana aliohjelmana (Type_Denied) ja järjestelmäaliohjelmana (LOCK), kun salasana syötetään väärin.
Kun olet suorittanut salasanan syöttämisen aliohjelmat, lisää MQTT-viestien lähetystoiminto molempiin aliohjelmiin riippumatta siitä, syötettiinkö salasana oikein vai väärin. Viesti lähetetään sitten Topic-aiheeseen (M5Stack_Log). UiFlow käyttää seuraavia toimintoluokkia: luotavat toiminnot ovat salasanan syöttämisen aliohjelma, päättelylogiikka, näppäimistömoduuli, käyttöliittymäkomponentti, MQTT, teksti ja tuontialiohjelma.

Solenoidiventtiili aktivoituu kerran ja Core näyttää oikean ilmoituksen, jos salasana syötetään oikein. Jos salasana syötetään väärin, Core näyttää virheilmoituksen.
Matkapuhelimen lokimoduuli näyttää oikeat ja virheelliset salasanat sekä niiden aikaleimat.

Yhteenveto
Tämä tosielämän kulunvalvontajärjestelmä hyödyntää useita teknologioita, kuten
RFID-tekniikkaa, sormenjälkitunnistusta, näppäinpainallusten tunnistusta ja muita moduuleja vankkojen laitteistoratkaisujen nopeaan kehittämiseen. Se käyttää MQTT-viestintäprotokollia ovien lukkojen etäavaamiseen ja kulunvalvontatietueiden luomiseen. Blockyn kehittyneiden toimintojen vuoksi esimerkiksi tekoälyyn perustuva kasvojentunnistus ei ole tällä hetkellä käytettävissä UiFlow’ssa. Aiomme kuitenkin ottaa lähitulevaisuudessa käyttöön kehittyneet YOLO-tunnistustoiminnot kuvavirran lisäämisen jälkeen.