M5Stack RFID-pohjainen älykäs kulunvalvontajärjestelmä

Älykkään teknologian aikakaudella pilvipohjaiset älykkäät viestintälaitteet ovat yleistyneet elämässämme. Tässä artikkelissa käytetään M5Stackin UiFlow-kehitysrajapintaa (Blocky) pilvipohjaisella tallennustoiminnolla varustetun kulunvalvontajärjestelmän toteuttamiseen. Järjestelmä sisältää neljä tunnistusmenetelmää: matkapuhelimella tapahtuvan etäavauksen, RFID-kortin, näppäilykoodin ja sormenjälkitunnistuksen. Kulunvalvontatiedot lähetetään MQTT-protokollan kautta.

 

Laitteiston määritys

 
Kulunvalvontajärjestelmässä käytetään M5Stack Faces -moduulipakettia. FACES-paketti koostuu ohjausytimestä (M5Stack Core) ja useista syöttölaitteista, kuten laskimesta, QWERTY-näppäimistöstä ja muista syöttölaitteista. Tässä tapauksessa näppäilyyn käytetään laskinnäppäimistömoduulia. Huomaa, että Faces-moduuli tulee vaihtaa varovasti: irrota se pitämällä kiinni moduulin molemmista sivuista, jotta nastat eivät vaurioidu. Ole varovainen Faces-moduulia vaihtaessasi, jotta nastat eivät vaurioidu.
 
Seuraavaksi määritetään kolme Unit-moduulia. Huomaa, että M5Stack RFID -moduuli käyttää I2C-tiedonsiirtorajapintaa, ja siihen voidaan muodostaa yhteys Coren vasemmanpuoleisen Port-A-portin kautta. M5Stack-sormenjälkitunnistusmoduuli käyttää UART-tiedonsiirtorajapintaa, ja siihen voidaan muodostaa yhteys Core-portin kautta. Huomaa, että Coren GPIO-liitännät voidaan kääntää Coren taakse, jossa näkyvät vastaavien liitäntöjen PIN-merkinnät. Myös Coren takana olevassa GPIO-moduulissa on vastaavien liitäntöjen PIN-merkinnät. Coren takaosan GPIO-liitäntä (GND, 5V, R2(16), T2(17)) ja M5Stack Relay Module ohjataan I/O-liitännöillä, ja ne yhdistetään Coren Port-B-porttiin (GND, 5V, DA(26), AD(36)).

 

 

Kun kolmen Unit-moduulin johdotus on valmis, relemoduuliin on tehtävä kuvan mukainen kytkentä solenoidilukon ohjaamiseksi. Tällä kertaa solenoidilukon käyttöjännitteen tulee olla DC 12 V. Huomaa, että M5Stack Relay Module tukee enintään DC 30 V:n ja 3 A:n tehonsyöttöä.

 

 

Kun relepiirin laitteisto on määritetty, ohjelman kirjoittamiseen käytetään virallista M5Stack-kehitysrajapintaa, UiFlow’ta. Koska nykyisen UiFlow-offline-isäntäversion päivitykset ovat hitaita, on suositeltavaa käyttää etäkirjoituksen Blocky-toimintoa, jos langattoman WiFin nopeus on riittävä. Seuraavaksi esitellään M5Stackin ohjelmien kirjoittaminen WiFi-yhteyden kautta. Seuraavassa osiossa esitellään ohjelmien kirjoittaminen M5Stack Coreen WiFi-yhteyden kautta.

 

UiFlow-asetukset

 
Laiteohjelmiston päivittäminen
Ennen yhteyden muodostamista lataa virallinen poltto-ohjelma (M5Burner) ja päivitä laiteohjelmisto uusimpaan versioon. Kun kaapeli on kytketty, poltto-ohjelma näyttää COM-portin numeron. Valitse uusin CORE UiFlow -laiteohjelmistoversio ja viimeistele asennus painamalla Burn.
 

 
Yhteyden muodostaminen
Kun laiteohjelmisto on päivitetty, vaihda Core ”Internet Mode” -tilaan, valitse ”Wi-Fi via AP” ja siirry sitten online-sivulle. Näet maapallokuvakkeen vilkkuvan.
 

 
Yhdistä kannettavan tietokoneen Wi-Fi-verkkoon kirjoittamalla SSID-nimi hakukenttään. Huomaa, että jokaisella Corella on eri nimi. Tässä esimerkissä nimi on M5-FB50. Kun yhteys on muodostettu, avaa selain ja kirjoita hakukenttään seuraava osoite: [192.168.4.1]. Siirryt online-asetussivulle. Syötä sen verkon SSID ja salasana, johon haluat muodostaa yhteyden.
 
Kun yhteys on muodostettu onnistuneesti, selaimessa näkyy seuraava kuva. Coren näytön vasemmassa yläkulmassa sijaitsevat Wi-Fi- ja online-kuvakkeet näkyvät vihreinä, ja etäyhteydessä käytetty API-avain näkyy alareunassa. Tämän määrityksen ansiosta Core voi käyttää SSID-tunnusta ja salasanaa ja muodostaa verkkotilan avulla suoran Internet-yhteyden. Jos käytössä on useita tukiasemia, luetteloa voi selata valitsemalla Setup > Server. Useita tukiasemia käytettäessä niitä voi käyttää myös valitsemalla Setup > Server.
Avaa seuraavaksi tietokoneen selain, muodosta Internet-yhteys uudelleen, siirry UiFlow'n verkkoversioon, syötä API KEY, valitse Coren tyyppi ja paina ”OK”.
 
 
Alareunan tilapalkissa näkyy parhaillaan yhdistetyn laitteen API KEY sekä teksti ”Connected”, mikä osoittaa etäyhteyden onnistuneen ja Blocky-lohkoilla ohjelmoinnin voivan alkaa.

 
Vaihe 1: Blockyn määrittäminen

 
Ennen Blocky-ohjelmoinnin aloittamista on tuotava tällä kertaa käytettävän Unit-moduulin kirjasto. Napsauta näytön vasemmassa alakulmassa olevaa plusmerkkiä. Valitse sitten relemoduulille portti B, sormenjälkimoduulille portti C ja RFID-moduulille portti A. Vahvista valittu moduuli painamalla näytön oikeassa alakulmassa olevaa OK-painiketta.
 
 
Kun moduuli on tuotu, se näkyy vasemmassa näyttöpaneelissa. Avaa Unit-valikko ja varmista, että moduuli on tuotu oikein.
 
 
Vaihe 2: Aliohjelmien kirjoittaminen kulunvalvontajärjestelmän yleiseen käyttöön
 
Kun moduuli on tuotu, kirjoita ensin muutama aliohjelma, joita kulunvalvontajärjestelmässä käytetään toistuvasti, jotta ohjelmasta ei tulisi liian pitkä.

1.Järjestelmän oletustila (STAY):

Minkä tahansa ohjelman suorittamisen jälkeen järjestelmä palaa tähän oletusohjelman tilaan. Tähän on rakennettu näppäinpainallusten näyttötoiminto ja AC:n tyhjennystoiminto. Etsi AC-painikkeen alkuarvo (intial value) ja määritä toiminto, joka suoritetaan painiketta painettaessa. Uiflow käyttää seuraavia toimintoryhmiä: Build-toiminto, päätöslogiikkatoiminto, näppäimistön syöttötoiminto, käyttöliittymäkomponentti ja releen palautus.

 

2.AVAUS: Toiminto, joka suoritetaan, kun henkilöllisyys on vahvistettu oikein RFID-tunnistuksella, sormenjälkitunnistuksella, salasanan syötöllä tai kaukosäätimellä. Releen turvallisen toiminnan varmistamiseksi rele kytketään automaattisesti pois päältä 3 sekunnin kuluttua sen päällekytkemisestä. Uiflow käyttää seuraavia toimintoryhmiä: Build-toiminto, summeri, päätöslogiikkatoiminto, käyttöliittymäkomponentti sekä releen päällekytkentä ja palautus.

 

 

3.LUKITUS: Toiminto, joka suoritetaan, kun RFID-tunnistus, sormenjälkitunnistus, salasanan syöttö, kaukosäädin tai muu vastaava on vahvistanut henkilöllisyyden oikein. Uiflow käyttää seuraavia toimintoja: Build-toiminto, summeri, päätöslogiikkatoiminto ja käyttöliittymäkomponentti.

 

 

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.

 

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

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.