Tässä projektissa aiomme kehittää RFID- ja näppäimistöpohjaisen turvajärjestelmän. Tämä projekti toteutetaan käyttämällä 8051-mikrokontrolleria. RFID-tekniikkaa (radiotaajuuksien tunnistaminen ja havaitseminen) käytetään yleisesti kouluissa, korkeakouluissa, toimistoissa ja asemilla eri tarkoituksiin ihmisten todentamiseksi automaattisesti kelvollisilla RFID-tunnisteilla. Täällä tarkistamme RFID-tunnisteen ja siihen liittyvän salasanan järjestelmän suojaamiseksi.
Työskentely
Voimme jakaa koko turvajärjestelmän eri osioihin - Reader-osio, Näppäimistö, Ohjaus-osa, Ohjain-osa ja Näyttö-osio. Koko järjestelmän toiminta ja kunkin osan rooli voidaan ymmärtää seuraavasta lohkokaaviosta.
Lukijaosa: Tämä osa sisältää RFID: n, joka on elektroniikkalaite, jolla on kaksi osaa - yksi on RFID-lukija ja toinen on RFID-tunniste tai -kortti. Kun laitamme RFID-tunnisteen lähelle RFID-lukijaa, se lukee tunnistetiedot sarjaan. Tässä käyttämässämme RFID-tunnisteessa on 12-numeroinen merkkikoodi tai sarjanumero. Tämä RFID toimii 9600 bps: n siirtonopeudella.
Näppäimistö: Tässä olemme käyttäneet 4x4-matriisinäppäimistöä salasanan syöttämiseen järjestelmään.
Ohjausosa: 8051-mikrokontrolleria käytetään tämän RFID-pohjaisen turvajärjestelmän koko prosessin ohjaamiseen. Täällä 8051: n avulla vastaanotamme RFID-tietoja ja lähetämme tilaa tai viestejä LCD: lle.
Näyttöosa: 6x2 nestekidenäyttöä käytetään tässä projektissa viestien näyttämiseen siinä. Täältä näet opetusohjelman: LCD-liitäntä 8051-mikrokontrolleriin
Kuljettajan osa: Tässä osassa on moottorin ohjain L293D portin avaamiseksi ja summeri, jossa on BC547 NPN -transistori merkintöjä varten.
Kun henkilö laittaa RFID-tunnisteensa RFID-lukijaan, RFID lukee tunnisteen tiedot ja lähettää sen 8051-mikrokontrollerille ja sitten mikrokontrolleri vertaa näitä tietoja ennalta määriteltyihin tietoihin. Jos tiedot sovitetaan ennalta määritettyihin tietoihin, mikro-ohjain kysyy salasanaa ja salasanan syöttämisen jälkeen mikro-ohjain vertaa salasanaa ennalta määritettyyn salasanaan. Jos salasanan täsmäysportti avautuu, muuten LCD-näyttö näyttää pääsyn estetty ja summeri alkaa piipata joskus.
Piirikaavio ja selitys
Kuten yllä olevasta RFID-turvajärjestelmän piirikaaviosta näkyy, 16x2 LCD on kytketty nelibittisessä tilassa mikrokontrollerilla. LCD: n RS-, RW- ja EN-nastat on kytketty suoraan PORT 1 -nastanumeroihin P1.0, P1.1 ja P1.2. Nestekidenäytön D4-, D5-, D6- ja D7-nastat on kytketty suoraan portin 1 napoihin P1.4, P1.5, P1.6 ja P1.7. Moottorin ohjain on kytketty PORT-napoihin P2.4 ja P2.5. Ja summeri on kytketty P2.6: een PORT2: ssa. Ja näppäimistö on kytketty porttiin PORT0. Näppäimistörivi on kytketty kohtaan P0.4 - P0.7 ja sarakkeet on kytketty kohtaan P0.0 - P0.3.
Ohjelman selitys
Ohjelmoimalla 8051-mikrokontrolleri RFID-pohjaiseen turvajärjestelmään sisällytämme ensinnäkin otsikkotiedostot ja määrittelemme tulo- ja lähtönastan ja muuttujat.
#sisältää
Määritä sitten nastat näppäimistömoduulille.
sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit-rivi1 = P0 ^ 4; sbit-rivi2 = P0 ^ 5; sbit-rivi3 = P0 ^ 6; sbit-rivi4 = P0 ^ 7;
Tämän jälkeen olemme luoneet toiminnon viiveelle.
void delay (int itime) {int i, j; (i = 0; i
Sitten teemme jonkin toiminnon LCD: lle ja alustamme LCD-toiminnon, void lcd_init (void) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
Tässä meillä on jokin toiminto, jota olemme käyttäneet ohjelmassa. Tässä olemme määrittäneet 9600 bps: n siirtonopeuden 11,0592 MHz: n kristallitaajuudelle, ja fuction vastaanottoa varten seuraamme SBUF-rekisteriä datan vastaanottamiseksi.
void uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; paluu ch; }
Tämän jälkeen pääohjelmassa olemme alustaneet lcd: n ja Uartin ja sitten lukeneet RFID: n lähdön, kun siihen lisätään mitään tunnistetta. Tallennamme tämän merkkijonon matriisiin ja sovitamme sitten etukäteen etsittävän taulukon tietojen kanssa. Ja sitten sovita salasana.
if (strncmp (rfid, "160066A5EC39", 12) == 0) {näppäimistö (); if (strncmp (pass, "4201", 4) == 0) {hyväksy (); lcdcmd (1); lcdstring ("Käyttöoikeus myönnetty"); lcdcmd (0xc0);
Jos ottelu tapahtuu, ohjain avaa portin, muuten summeri käynnistyy ja LCD näyttää virheellisen kortin.