Elektronikus zár arduino nanohoz. RFID zár készítése Arduino segítségével

Ebben a leckében megtanuljuk, hogyan készítsünk egy egyszerű rendszert, amely egy elektronikus kulccsal (Tag) nyitja a zárat.

A jövőben módosíthatja és bővítheti a funkcionalitást. Például adja hozzá az "új kulcsok hozzáadása és eltávolítása a memóriából" funkciót. Alapesetben vegyünk egy egyszerű példát, amikor egy egyedi kulcsazonosító előre be van állítva a programkódban.

Ebben az oktatóanyagban szükségünk lesz:

A projekt megvalósításához telepítenünk kell a könyvtárakat:

2) Most csatlakoztatnia kell egy hangjelzőt, amely jelet ad, ha a kulcs kiold és a zár kinyílik, és egy második jelet, ha a zár be van zárva.

A hangjelzőt a következő sorrendben csatlakoztatjuk:

Arduino Berregő
5V VCC
GND GND
5. tű IO

3) A szervót kioldó mechanizmusként fogják használni. Bármely szervo választható, attól függően, hogy milyen méreteket és erőket igényel, amelyeket a szervó hoz létre. A szervónak 3 tűje van:

Az alábbi képen tisztábban láthatja, hogyan csatlakoztattuk az összes modult:

Most, ha minden csatlakoztatva van, akkor folytathatja a programozást.

Vázlat:

#beleértve #beleértve #beleértve // "RFID" könyvtár. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // a címke számának decimális formátumban való tárolása Szervo szervo; void setup () (Serial.begin (9600); Serial.println ("Várakozás a kártyára..."); SPI.begin (); // inicializálás SPI / Init SPI bus.mfrc522.PCD_Init (); // inicializálás MFRC522 / Init MFRC522 card.servo.attach (6); servo.write (0); // állítsa a szervót zártra) void loop () (// Keressen új címkét, ha (! Mfrc522.PICC_IsNewCardPresent ()) ; ) // Válasszon ki egy címkét if (! Mfrc522.PICC_ReadCardSerial ()) (return;) uidDec = 0; // Adja ki a címke sorozatszámát.for (byte i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Nézzük meg közelebbről a vázlatot:

A kártya UID-jének (Tags) megtudásához meg kell írni ezt a vázlatot az arduino-ba, össze kell szerelni a fent leírt áramkört, és meg kell nyitni a konzolt (Serial port monitoring). Amikor a címkét az RFID-hez viszi, egy szám jelenik meg a konzolon

Az eredményül kapott UID-t a következő sorba kell beírni:

Ha (uidDec == 3763966293) // Hasonlítsd össze a címke Uid-jét, ha megegyezik a megadottal, akkor a szervo nyitja a szelepet.

Minden kártya egyedi azonosítóval rendelkezik, és nem ismétli önmagát. Így amikor elhozza azt a kártyát, aminek az azonosítóját a programban beállította, a rendszer szervo meghajtó segítségével nyitja meg a hozzáférést.

Videó:

Az Arduino a legjobb rendszer bármilyen hardver másolására. A legtöbb ötlet nem jöhetett volna létre nélküle. Régóta létezik egy ilyen gondolat: létrehozni egy speciális kombinációs zárat az arduinón. A megnyitáshoz le kell nyomni egy bizonyos billentyűt. Ebben az esetben a zárnak nem szabad kinyílnia, még akkor sem, ha ismeri a kívánt gombot. Megnyitásához bizonyos intervallumokat kell fenntartani az izommemória segítségével. Egy ilyen bűnöző nem tehet róla. De ez mind csak elmélet.

Összegyűjtéséhez egy speciális téglalap alakú impulzuseszközt, valamint több számlálót és egy kupacot kell használni. A kész eszköz azonban nagy méretű lenne, és kényelmetlen lenne a használata. Az ilyen gondolatok általában nem adnak nyugalmat. Ennek az álomnak az első lépése egy program létrehozása volt az Arduino számára. Ő lesz az, aki kombinációs zárként fog szolgálni. A megnyitáshoz nem egy, hanem több gombot kell megnyomnia, és ezt egyszerre kell megtennie. A kész áramkör így néz ki:

A képminőség nem a legjobb, de a földelés, D3, D5, D7, D9 és D11 csatlakozások vannak.

A kód alább látható:

Const int ina = 3; const int inb = 5; const int inc = 9; const int ledPin = 13; int i = 1000; bájt a = 0; bájt = 0; bájt c = 0; bájt d = 0; előjel nélküli hosszú idő = 0; // ne felejts el mindent, amit a millis () előjel nélküli long temp = 0-t vesz fel; // tárolás előjel nélküli hosszú bájtos kulcsban = (0, 0, 0, 0, 0, 0, 0, 0); // megfelelő kódok byte keyb = (1, 1, 1, 1, 0, 1, 0, 0); byte keyc = (1, 0, 1, 0, 1, 1, 1, 0); bájt k = 0; void setup () (pinMode (ina, INPUT_PULLUP); // 3 bemenet csatlakozik a gombokhoz pinMode (inb, INPUT_PULLUP); pinMode (inc, INPUT_PULLUP); pinMode (ledPin, OUTPUT); // beépített LED a 13. pin pinMode (7, OUTPUT); pinMode (11, OUTPUT); digitalWrite (7, LOW); // cserélje ki a földelt digitalWrite (11, LOW); idő = millis (); // az időzítéshez szükséges) void villog kétszer () ( // a LED dupla villogása digitalWrite (ledPin, HIGH); késleltetés (100); digitalWrite (ledPin, LOW); késleltetés (100); digitalWrite (ledPin, HIGH); késleltetés (100); digitalWrite (ledPin, LOW) késleltetés ( 200);) void loop () (if (k == 0) (kétszer villog (); // kód kérése) if (k == 8) (digitalWrite (ledPin, HIGH); késleltetés (3000); k = 0 ;) a = digitalRead (ina); // a jelszintek a gombokról olvashatók - lenyomva / nem nyomva b = digitalRead (inb); c = digitalRead (inc); késleltetés (100); // következő, ha - védelem hamis pozitív ellen, akkor nem kell használnia if ((digitalRead (ina) == a) && (digitalRead (inb) == b) && (digitalRead (inc) == c)) (if (a == keya [k]) (ha (b == billentyû [k]) (if (c == billentyûc [k]) (k ++; )))) if (k == 1) (if (d == 0) (idő = millis (); d ++;)) hőmérséklet = millis (); temp = hőmérséklet - idő; if (hőmérséklet> 10000) (k = 0; d = 0; idő = millis ();))

A kóddal kapcsolatos felesleges kérdések elkerülése érdekében néhány pontot tisztázni kell. A beállítási funkció a portok hozzárendelésére szolgál. A következő funkció az Input_Pullup, amely a tűfeszültség 5 V-tal történő növeléséhez szükséges. Ez egy ellenállással történik. Emiatt különféle rövidzárlatok nem lépnek fel. A nagyobb kényelem érdekében ajánlatos a kétszer villogó funkciót használni. Általában a különféle programok létrehozásakor más funkciókat is ki kell próbálnia.

A funkciók hozzárendelése után a jel kiolvasásra kerül a portokról. Ha megnyomja a gombot, azt az 1-es szám jelzi, ha nem - a 2. Továbbá az összes értéket elemzi. Például megjelent egy olyan kombináció, mint a 0,1,1. Ez azt jelenti, hogy az első gomb meg van nyomva, a másik kettő pedig nem. Ha minden érték igaz, akkor a 8-as feltétel is igaz. Ezt bizonyítja az előlapon világító LED. Ezután meg kell adnia egy konkrét kódot, amely az ajtó kinyitására szolgál.

A kód utolsó elemei a számlálóértékek visszaállítására szolgálnak. Ez a funkció akkor működik, ha az utolsó gombnyomás óta több mint 10 másodperc telt el. E kód nélkül minden lehetséges opciót fel lehetett sorolni, bár van belőlük jó néhány. Az eszköz létrehozása után tesztelnie kell. Több

A minap néztem a Csodálatos Pókembert, és az egyik jelenetben Peter Parker távolról kinyitja és becsukja a laptop ajtaját. Amint ezt megláttam, rögtön rájöttem, hogy nekem is kell egy ilyen elektronikus zár a bejárati ajtóra.

Kis trükközéssel összeállítottam egy működőképes okoszár modellt. Ebben a cikkben elmondom, hogyan állítottam össze.

1. lépés: Anyagok listája





Az Arduino elektronikus zárának összeszereléséhez a következő anyagokra lesz szüksége:

Elektronika:

  • 5V fali adapter

Alkatrészek:

  • 6 csavar a reteszhez
  • karton
  • vezetékek

Eszközök:

  • forrasztópáka
  • ragasztópisztoly
  • fúró
  • fúró
  • kísérleti lyukfúró
  • írószer kés
  • számítógép Arduino IDE programmal

2. lépés: hogyan működik a zár

Az ötlet az, hogy kulcs nélkül ki tudom nyitni vagy becsukni az ajtót, anélkül, hogy odamennék hozzá. De ez csak az alapötlet, mert tehetünk hozzá egy kopogásérzékelőt is, hogy egy speciális kopogásra reagáljon, vagy hangfelismerő rendszert!

A reteszhez csatlakoztatott szervokar a Bluetooth modulon keresztül kapott parancsokkal zár (0 °) és nyit (60 °).

3. lépés: Bekötési rajz


Először csatlakoztassuk a szervót az Arduino táblához (megjegyzendő, hogy bár van Arduino Nano kártyám, a tűelrendezés pontosan ugyanaz az Uno táblán).

  • a szervó barna vezetéke földelve van, az Arduinón földeljük
  • a piros vezeték plusz, az Arduino 5V-os csatlakozójára kötjük
  • narancssárga vezeték - a szervo forrásának kimenete, csatlakoztatjuk az Arduino 9. érintkezőjéhez

Azt tanácsolom, hogy tesztelje a szervót, mielőtt folytatná az összeszerelést. Ehhez a példákban szereplő Arduino IDE programban válassza a Sweep lehetőséget. Miután meggyőződtünk a szervó működéséről, csatlakoztathatjuk a Bluetooth modult. A Bluetooth modul rx érintkezőjét az Arduino tx tűjéhez, a modul tx tűjét pedig az Arduino rx tűjéhez kell csatlakoztatnia. De még ne tedd! Ha ezek a csatlakozások meg vannak forrasztva, többé nem tudsz kódokat feltölteni az Arduino-ra, ezért először töltsd le az összes kódot, és csak utána forraszd a csatlakozásokat.

Íme a modul és a mikrokontroller kapcsolási rajza:

  • Rx modul - Tx Arduino tábla
  • Tx modul - Rx kártyák
  • A modul Vcc (pozitív) - 3,3 V Arduino kártya
  • A föld csatlakozik a földhöz (föld a földhöz)

Ha a magyarázat zavarónak tűnik, kövesse a mellékelt kapcsolási rajzot.

4. lépés: Teszt

Most, hogy minden alkatrész működésben van, győződjünk meg arról, hogy a szervo képes mozgatni a csavart. Mielőtt felszerelném a reteszt az ajtóra, összeraktam egy próbadarabot, hogy megbizonyosodjak a szervó elég erősségéről. Eleinte úgy tűnt, hogy gyenge a szervóm, és egy csepp olajat tettem a csavarba, utána jól működött. Nagyon fontos, hogy a mechanizmus jól csússzon, különben fennáll a veszélye, hogy beszorul a szobájába.

5. lépés: az elektromos alkatrészek háza



Úgy döntöttem, hogy csak a kontrollert és a Bluetooth modult teszem a tokba, a szervót pedig kint hagyom. Ehhez egy kartonlapon karikázzuk be az Arduino Nano tábla körvonalát, és adjunk hozzá 1 cm helyet a kerülete körül, és vágjuk ki. Ezt követően a tok további öt oldalát is kivágtuk. Az elülső falon egy lyukat kell vágnia a vezérlő tápkábeléhez.

A tok oldalainak méretei:

  • Alsó - 7,5x4 cm
  • Borító - 7,5x4 cm
  • Bal oldalfal - 7,5x4 cm
  • Jobb oldalfal - 7,5x4 cm
  • Elülső fal - 4x4 cm (rés a tápkábel számára)
  • Hátsó fal - 4x4 cm

6. lépés: Alkalmazás

A vezérlő vezérléséhez Android vagy Windows kütyü szükséges beépített Bluetooth-al. Almás eszközökön még nem volt lehetőségem tesztelni az alkalmazás működését, talán szükség lesz néhány illesztőprogramra.

Biztos vagyok benne, hogy néhányuknak van lehetősége kipróbálni ezt. Android esetén töltse le a Bluetooth Terminal alkalmazást, Windows esetén pedig a TeraTerm alkalmazást. Ezután csatlakoztatnia kell a modult az okostelefonhoz, a név legyen linvor, a jelszó legyen 0000 vagy 1234. Amint a párosítás létrejött, nyissa meg a telepített alkalmazást, adja meg az opciókat, és válassza a "Kapcsolat létrehozása (nem biztonságos)" lehetőséget. . Az okostelefon mostantól egy Arduino soros monitor, vagyis kommunikálhat a vezérlővel.

Ha 0-t ír be, az ajtó bezárul, és az „Ajtó zárva” üzenet jelenik meg az okostelefon képernyőjén.
Ha beírja az 1-et, az ajtó nyitva lesz, és az "Ajtó nyitva" üzenet jelenik meg a képernyőn.
Windows rendszeren a folyamat ugyanaz, kivéve, hogy telepítenie kell a TeraTerm alkalmazást.

7. lépés: szerelje fel a csavart


Először csatlakoztatnia kell a szervót a reteszhez. Ehhez vágja le a dugókat a meghajtó házának rögzítőfuratairól. Ha feltesszük a szervót, akkor a rögzítő lyukak egy szintben legyenek a retesszel. Ezután a szervokart a retesznyílásba kell helyezni, ahol a retesz fogantyúja volt. Ellenőrizze, hogyan mozog a zár a tokban. Ha minden rendben van, rögzítse a szervokart ragasztóval.

Most lyukakat kell fúrnia az ajtóban lévő csavarokhoz. Ehhez rögzítse a reteszt az ajtóhoz, és ceruzával jelölje meg a csavarlyukakat az ajtólapon. A megjelölt helyeken kb. 2,5 cm mély csavarlyukakat kell fúrni, majd rögzíteni kell a csavarokkal. Ellenőrizze újra a szervót.

8. lépés: Teljesítmény


Az eszköz befejezéséhez tápegységre, kábelre és mini usb csatlakozóra lesz szüksége az Arduino csatlakoztatásához.
Csatlakoztassa a tápegység földelő érintkezőjét a mini usb port földelő érintkezőjéhez, csatlakoztassa a piros vezetéket a mini usb port piros vezetékéhez, majd vezesse a vezetéket a zártól az ajtópántig és onnan a konnektorig.

9. lépés: Kód

#include Servo myservo; int poz = 0; int állapot; int zászló = 0; void setup () (myservo.attach (9); Serial.begin (9600); myservo.write (60); késleltetés (1000);) void loop () (if (Serial.available ()> 0) (állapot = Serial.read (); flag = 0;) // ha az állapot "0", az egyenáramú motor kikapcsol, ha (állapot == "0") (myservo.write (8); késleltetés (1000); soros. println ("Ajtó zárva");) else if (állapot == "1") (myservo.write (55); késleltetés (1000); Serial.println ("Ajtó zárolva");))

10. lépés: Az Arduino Lock befejezése

Élvezze a távirányítós zárat, és ne felejtse el "véletlenül" bezárni barátait a szobába.

A mai lecke arról, hogyan használjunk RFID-olvasót Arduino-val egy egyszerű zárrendszer létrehozásához, egyszerű szavakkal - egy RFID-zárat.

Az RFID (English Radio Frequency IDentification, rádiófrekvenciás azonosítás) az objektumok automatikus azonosításának módszere, amelynek során az úgynevezett transzponderekben vagy RFID címkékben tárolt adatokat rádiójelek segítségével olvassák vagy írják. Bármely RFID rendszer egy olvasóból (olvasóból, olvasóból vagy lekérdezőből) és egy transzponderből (más néven RFID címke, néha az RFID címke kifejezés is használatos) áll.

Ez az oktatóanyag egy Arduino-ból származó RFID-címkét fog használni. A készülék beolvassa minden egyes RFID tag egyedi azonosítóját (UID), amelyet az olvasó mellé helyezünk, és megjeleníti az OLED kijelzőn. Ha a címke UID-je megegyezik az Arduino memóriájában tárolt előre meghatározott értékkel, akkor a „Unlocked” üzenetet fogjuk látni a kijelzőn. Ha az egyedi azonosító nem egyezik meg az előre meghatározott értékkel, akkor a "Feloldva" üzenet nem jelenik meg - lásd az alábbi fotót.

A zár zárva van

A zár nyitva van

A projekt létrehozásához szükséges részletek:

  • RFID olvasó RC522
  • OLED kijelző
  • Kenyér deszka
  • Vezetékek

További részletek:

  • Akkumulátor (powerbank)

A projektelemek összköltsége körülbelül 15 dollár volt.

2. lépés: RFID olvasó RC522

Minden RFID-címkéhez tartozik egy kis chip (fehér kártya a képen). Ha a zseblámpát erre az RFID-kártyára irányítja, egy kis chipet és egy tekercset láthat, amely körülveszi. Ez a chip nem rendelkezik akkumulátorral, amely áramot termel. Ennek a nagy tekercsnek a segítségével vezeték nélkül kap áramot az olvasótól. Egy ilyen RFID-kártya akár 20 mm-es távolságból is olvasható.

Ugyanez a chip található az RFID-kulcstartó címkéiben is.

Minden RFID-címke egyedi számmal rendelkezik, amely azonosítja azt. Ez az OLED-kijelzőn megjelenő UID. Ezen UID kivételével minden címke tárolhat adatokat. Ez a kártyatípus akár 1000 adat tárolására is képes. Lenyűgöző, nem? Ezt a funkciót ma nem fogják használni. Ma már csak egy adott kártya UID alapján történő azonosítása érdekel. Az RFID-olvasó és a két RFID-kártya ára körülbelül 4 USD.

3. lépés: OLED kijelző

Ez az oktatóanyag 0,96 hüvelykes 128x64 I2C OLED monitort használ.

Ez egy nagyon jó kijelző az Arduino-val való használatra. Ez egy OLED kijelző, ami azt jelenti, hogy alacsony az energiafogyasztása. Ennek a kijelzőnek az áramfelvétele kb. 10-20mA, és ez a pixelek számától függ.

A kijelző felbontása 128 x 64 pixel, és apró. Két megjelenítési lehetőség van. Az egyik monokróm, a másik pedig az oktatóanyagban használthoz hasonlóan két színt tud megjeleníteni: sárga és kék. A képernyő teteje csak sárga, az alsó pedig kék lehet.

Ez az OLED kijelző nagyon fényes, és nagyszerű és nagyon szép könyvtárral rendelkezik, amelyet az Adafruit fejlesztett ki ehhez a kijelzőhöz. Ezen kívül a kijelző I2C interfészt használ, így az Arduinohoz való csatlakozás hihetetlenül egyszerű.

Csak két vezetéket kell csatlakoztatnia, a Vcc és a GND kivételével. Ha még nem ismeri az Arduino-t, és olcsó és egyszerű kijelzőt szeretne használni projektjében, kezdje el itt.

4. lépés: csatlakoztassa az összes részletet

Az Arduino Uno táblával való kommunikáció nagyon egyszerű. Először is csatlakoztassa a tápfeszültséget az olvasóhoz és a kijelzőhöz.

Legyen óvatos, az RFID olvasót az Arduino Uno 3,3 V-os kimenetére kell csatlakoztatni, különben megsérül.

Mivel a kijelző 3,3 V-on is tud működni, mindkét modul VCC-jét a kenyérsütőtábla pozitív sínjére kötjük. Ez a busz ezután csatlakozik az Arduino Uno 3,3 V-os kimenetéhez. Ezután mindkét földet (GND) csatlakoztatjuk a kenyérlap földelő buszához. Ezután csatlakoztatjuk a kenyérlap GND buszát az Arduino GND-hez.

OLED kijelző → Arduino

SCL → Analóg Pin 5

SDA → Analóg Pin 4

RFID olvasó → Arduino

RST → Digitális Pin 9

IRQ → Nincs csatlakoztatva

MISO → Digitális tű 12

MOSI → Digitális tű 11

SCK → Digitális tű 13

SDA → Digitális Pin 10

Az RFID olvasó modul az SPI interfészt használja az Arduinóval való kommunikációhoz. Ezért az Arduino UNO hardveres SPI-csapjait fogjuk használni.

Az RST érintkező a 9-es digitális érintkezőhöz kerül. Az IRQ érintkező leválasztva marad. A MISO tű a 12-es digitális tűhöz megy. A MOSI érintkező a 11-es digitális tűhöz. Az SCK érintkező a 13-as digitális tűhöz, végül az SDA érintkező a 10-es digitális tűhöz.

RFID olvasó csatlakoztatva. Most az OLED kijelzőt az Arduino-hoz kell csatlakoztatnunk az I2C interfész segítségével. Tehát a kijelzőn lévő SCL érintkező az 5-ös érintkező analóg érintkezőjéhez, a kijelzőn lévő SDA pedig az analóg 4-es érintkezőhöz kerül. Ha most bekapcsoljuk a projektet és az RFID-kártyát az olvasó mellé helyezzük, láthatjuk, hogy a projekt jól működik.

5. lépés: Projekt kód

Ahhoz, hogy a projektkódot lefordíthassuk, bele kell foglalnunk néhány könyvtárat. Először is szükségünk van az MFRC522 Rfid könyvtárra.

A telepítéshez lépjen a következőre: Vázlat -> Könyvtárak hozzáadása -> Könyvtárak kezelése(Könyvtárvezetés). Keresse meg az MFRC522-t és telepítse.

Szükségünk van még az Adafruit SSD1306 könyvtárra és az Adafruit GFX könyvtárra a leképezéshez.

Telepítse mindkét könyvtárat. Az Adafruit SSD1306 könyvtár némi módosításra szorul. Menjen a mappába Arduino -> Könyvtárak, nyissa meg az Adafruit SSD1306 mappát, és szerkessze a könyvtárat Adafruit_SSD1306.h... Írja megjegyzésbe a 70. sort és törölje a 69. sort, mert a kijelző felbontása 128x64.

Először deklaráljuk az RFID-címke értékét, amelyet az Arduino-nak fel kell ismernie. Ez egy egész számok tömbje:

Int kód = (69,141,8,136); // UID

Ezután inicializáljuk az RFID olvasót és megjelenítjük:

Rfid.PCD_Init (); display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Ezt követően a loop funkcióban 100 ms-onként ellenőrizzük a címkét az olvasón.

Ha van címke az olvasón, leolvassuk az UID-jét és kinyomtatjuk a kijelzőre. Ezután összehasonlítjuk az éppen beolvasott címke UID-jét a kódváltozóban tárolt értékkel. Ha az értékek megegyeznek, kinyomtatjuk az UNLOCK üzenetet, ellenkező esetben ezt az üzenetet nem jelenítjük meg.

If (egyezik) (Serial.println ("\ nIsmerem ezt a kártyát!"); PrintUnlockMessage ();) else (Serial.println ("\ nIsmeretlen kártya");)

Természetesen ezt a kódot módosíthatja úgy, hogy 1-nél több UID értéket tároljon, így a projekt több RFID-címkét ismer fel. Ez csak egy példa.

Projekt kód:

#beleértve #beleértve #beleértve #beleértve #define OLED_RESET 4 Adafruit_SSD1306 kijelző (OLED_RESET); #define SS_PIN 10 #define RST_PIN 9 MFRC522 rfid (SS_PIN, RST_PIN); // Az MFRC522 osztály példánya :: MIFARE_Key key; int kód = (69,141,8,136); // Ez a tárolt UID int codeRead = 0; String uidString; void setup () (Serial.begin (9600); SPI.begin (); // Init SPI bus rfid.PCD_Init (); // Init MFRC522 display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicializálás a 0x3D I2C címmel (128x64-hez) // Törölje a buffer.display.clearDisplay (); display.display (); display.setTextColor (FEHÉR); // vagy FEKETE; display.setTextSize (2); display.setCursor (10,0); display.print ("RFID Lock"); display.display (); ) void loop () (if (rfid.PICC_IsNewCardPresent ()) (readRFID ();) késleltetés (100);) void readRFID () (rfid.PICC_ReadCardSerial (); Serial.print (F ("\ nPICC típus:")) ); MFRC522 :: PICC_Type piccType = rfid.PICC_GetType (rfid.uid.sak); Serial.println (rfid.PICC_GetTypeName (piccType)); // Ellenőrizze, hogy a klasszikus MIFARE típus PICC-je-e! = PICMT2! : PICC_TYPE_MIFARE_1K && piccType! = MFRC522 :: PICC_TYPE_MIFARE_4K) (Serial.println (F ("A címkéje nem MIFARE Classic típusú.")); return;) clearUID (); return;) clearUID (); Szkennelt PICC "s UID:"); printDec (rfid.uid.uidByte, rfid.uid.size); uidString = Karakterlánc (rfid.uid.uidByte) + "" + Karakterlánc (rfid.uid.uidByte) + "" + Karakterlánc (rfid. uid.uidByte) + "" + Karakterlánc (rfid.uid.uidByte); printUID (); int i = 0; logikai egyezés = igaz; while (i

6. lépés: a végeredmény

Amint az a leckéből látható - egy kis pénzért RFID-olvasót is hozzáadhat projektjeihez. Ezzel az olvasóval egyszerűen létrehozhat biztonsági rendszert, vagy például érdekesebb projekteket hozhat létre, így az USB-lemezről csak a feloldás után olvashatók az adatok.

Ez a projekt moduláris, pl. különböző elemeket csatlakoztathat / leválaszthat, és különböző funkciókat kaphat. A fenti képeken a teljes funkcionalitású opció látható, nevezetesen:

  • Záró mechanizmus... Az ajtó NYITÁSÁRA és ZÁRÁSÁRA szolgál. Ez a projekt három különböző mechanizmus alkalmazását fedi le:
    • Szervo. Vannak nagyok, vannak kicsik. Nagyon kompakt és nehéz csavarral nagyszerű lehetőség
    • Az autóajtózár elektromos meghajtása. Nagy és erős dolog, de csak őrült áramlatokat eszik
    • Mágneses retesz. Jó lehetőség, mert összecsapja magát

    A firmware-beállításokban három típus közül választhat (beállítás zár_típus)

  • Belül gomb... Az ajtó belülről történő NYITÁSÁRA, ZÁRÁSÁRA szolgál. Felhelyezhető az ajtókilincsre (tenyér vagy ujj oldalra), magára az ajtóra, vagy az ajtófélfára
  • Gomb kívül... Az ajtó zárására, valamint az energiatakarékosságból való felébresztésre szolgál. Felhelyezhető az ajtókilincsre (tenyér vagy ujj oldalra), magára az ajtóra, vagy az ajtófélfára
  • Végállomás hogy becsukja az ajtót. A zár automatikus bezárására szolgál, amikor az ajtó becsukódik. Lehetnek:
    • Tapintat gomb
    • Hall szenzor + mágnes magán az ajtón
    • Reed kapcsoló + mágnes magán az ajtón
  • Titok elérheti a reset gombot... A jelszó visszaállítására / új jelszó megadására / új kulcs / kombináció memorizálására szolgál, stb. Valahol a tokban lehet elrejtve
  • Fénykibocsátó dióda munka jelzésére. RGB LED, piros és zöld színek használatosak (keverve sárgát adnak):
    • Zölden világít - a zár NYITVA van. Megég, hogy ne felejtse el becsukni az ajtót
    • Folyamatos sárga – a rendszer felébredt, és jelszó megadására vár
    • Pirosan villog - az akkumulátor lemerült

Ezen elemek bármelyike ​​kizárható a rendszerből:

  • Levesszük a végkapcsolót. A beállításoknál lévő firmware-ben azt is kikapcsoljuk (beállítás tail_button). Most a zár bezárásához meg kell nyomnia a gombot
  • Eltávolítjuk a külső gombot. A beállításokban lévő firmware-ben azt is letiltjuk (beállítás wake_button). Most már nem kell felébreszteni a rendszert, magától felébred (az energiafogyasztás valamivel magasabb). És már nincs záró gomb az ajtó elején, és szükségünk van egy végálláskapcsolóra. Vagy a zár a fene
  • Eltávolítjuk a belső gombot. Ez az opció szekrényekhez és széfekhez alkalmas. A beállításokban semmit nem kell módosítani
  • Eltávolítjuk a LED-et. A beállításokban semmit nem kell módosítani
  • A hozzáférés visszaállító gomb az első használat után kiforrasztható, vagy átírhatja a kódot saját magának
  • Ajtó zárva, KÍVÜL nyomva - ébredjen fel, várja meg a jelszót / RFID címke / elektronikus kulcs / ujjlenyomat
  • Az ajtó zárva, a rendszer felébredt, várja a jelszó megadását. Az idő állítható (beállítás alvási idő)
  • Az ajtó be van zárva, jelszó / címke / kulcs be van írva stb. - nyisd ki
  • Ajtó zárva, BELÜL nyomva - nyitva
  • Ajtó nyitva, megnyomva KÍVÜL - zárva
  • Ajtó nyitva, BELÜL nyomva - zárva
  • Az ajtó nyitva van, a VÉGE lenyomva - bezárva

A zár biztosítja az akkumulátoros működést alacsony energiatakarékos üzemmódban (bekapcsolás kikapcsolás: beállítás sleep_enable), nevezetesen:

  • Ébredjen fel néhány másodpercenként, kövesse az ESEMÉNY (opcionális, ha nincs kívül gomb. A beállításban engedélyezheti wake_button)
  • Néhány percenként ellenőrizze az Akum feszültségét (be / ki beállítás akkumulátor_monitor)
  • Ha az Akum lemerült (a feszültség a beállításban van beállítva bat_low):
    • nyissa ki az ajtót (opcionális, a firmware-ben konfigurálható open_bat_low)
    • megtiltja a további nyitást és zárást
    • a gombok megnyomásakor a piros LED villog
    • hagyja abba az ESEMÉNY figyelését (azaz adja meg a jelszót / címkét stb.)

Amikor a rendszer ébren van, nyomja meg a jelszómódosítás gombot (rejtett gomb). beleesünk jelszóváltási mód:
Írja be a jelszót a számokból ( MAXIMUM 10 SZÁMJEGY!!!)

  • Ha megnyomja a * gombot, a jelszó a memóriába kerül, és a rendszer kilép a jelszó módosításából
  • Ha megnyomja a # gombot, a jelszó visszaáll (újra beírhatja)
  • Ha 10 másodpercig nem nyom meg semmit, automatikusan kilépünk a jelszómódosítási módból, a jelszó régi marad

Amikor a rendszer ébren van (gombokkal ébredt fel, vagy az alvás le van tiltva), nyomja meg a * gombot a jelszóbeviteli módba való belépéshez
Ha a rendszer alszik, és időnként felébred az ESEMÉNY ellenőrzésére, nyomja meg a * gombot és tartsa lenyomva, amíg a piros LED ki nem gyullad
Jelszó beviteli mód:

  • A jelszó feldolgozása úgy történik, hogy a helyes jelszót csak a helyes számsor begépelésekor számolja a rendszer, vagyis ha a jelszó 345, akkor tetszőleges számot írhat be, amíg meg nem jelenik a 345-ös sorozat, azaz. 30984570345 nyitja a zárat, amint az 345-ben ér véget.
  • Ha a jelszót helyesen adta meg, az ajtó kinyílik
  • Ha nem nyom meg semmit, 10 másodperc elteltével a rendszer visszatér normál (készenléti) üzemmódba
  • Ha megnyomja a # gombot, azonnal kilépünk a jelszóbeviteli módból
  • Ha a jelszó beviteli módban megnyomja a jelszó megváltoztatására szolgáló titkos gombot, akkor abból is kilépünk