Tartalomjegyzék:

Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával: 4 lépés (képekkel)
Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával: 4 lépés (képekkel)

Videó: Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával: 4 lépés (képekkel)

Videó: Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával: 4 lépés (képekkel)
Videó: Cryptex CR-802 UHF nagy hatótávolságú kártyaolvasó kicsomagolás. Passzív kártyával 10 méter! 2024, November
Anonim
Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával
Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával

Mindannyian ismerjük a meglévő elektronikus szavazógépet, ahol a felhasználónak meg kell nyomnia egy gombot a szavazáshoz. De ezeket a gépeket kezdettől fogva kritizálták az edzés miatt. A kormány tehát ujjlenyomat-alapú szavazógép bevezetését tervezi, ahol a felhasználók az ujjlenyomat-benyomása alapján szavazhatnak. Ez a rendszer nemcsak megszünteti az ismétlődő szavazatok lehetőségét, hanem megakadályoz mindenféle manipulációt.

Ebben a projektben tehát egy biometrikus szavazógép prototípusát fogjuk elkészíteni az Arduino Uno, a TFT kijelző és az ujjlenyomat -érzékelő segítségével. Korábban az R305 ujjlenyomat-érzékelőt használtuk a NodeMCU-val egy biometrikus alapú jelenléti rendszer létrehozásához, de itt a fejlett GT-511C3 ujjlenyomat-érzékelőt fogjuk használni az Arduino-val.

1. lépés: A biometrikus szavazógép felépítéséhez szükséges összetevők

  • Arduino Uno
  • 2,4 hüvelykes TFT LCD kijelzővédő
  • GT-511C3 ujjlenyomat-érzékelő

Ezt a 2,4 hüvelykes TFT kijelzőt korábban az Arduino használta az IoT alapú éttermi menürendelési rendszer kiépítéséhez.

2. lépés: Áramkör diagram a biometrikus szavazógéphez Arduino használatával

Áramkör diagram biometrikus szavazógéphez az Arduino használatával
Áramkör diagram biometrikus szavazógéphez az Arduino használatával

A projekt áramköri diagramja nagyon egyszerű, mivel csak a TFT kijelzőt és az ujjlenyomat -érzékelő modult csatlakoztatjuk az Arduino Uno -hoz. Az ujjlenyomat -érzékelő VCC és GND csapjai az Arduino 5V és GND csapjaihoz, míg a TX és RX csapok az Arduino Uno digitális 11 -es és 12 -es tűihez vannak csatlakoztatva.

A 2,4 hüvelykes TFT LCD képernyő egy Arduino pajzs, és közvetlenül az Arduino Uno készülékre szerelhető, amint az az alábbi képen látható. A TFT kijelző 28 tűvel rendelkezik, amelyek tökéletesen illeszkednek az Arduino Uno -hoz, ezért az ujjlenyomat -érzékelőt az Arduino hátoldalán kellett forrasztani.

3. lépés: Forráskód és lépésenkénti kódmagyarázat

Az ujjlenyomat -szavazórendszer -projekt teljes kódja az Arduino használatával a cikk végén található; itt elmagyarázzuk a kód néhány fontos funkcióját.

A kód az SPFD5408, a Software Serial és az FPS_GT511C3 könyvtárakat használja. Az SPFD5408 könyvtár az eredeti Adafruit Library módosított változata. Ezek a könyvtári fájlok letölthetők az alábbi linkekről:

  • SPFD5408 Könyvtár
  • Szoftver sorozat
  • FPS_GT511C3

A könyvtárak beépítése és néhány fontos paraméter meghatározása után beléphetünk a programozási részbe. A program három részből áll. Az egyik a szavazógép felhasználói felületének létrehozása, a második a gombok érintési pontjainak megszerzése és a gombok érzékelése az érintés alapján, végül az eredmények kiszámítása és az Arduino memóriájába való mentése.

1. UI létrehozása:

Létrehoztam egy egyszerű felhasználói felületet három gombbal és a projekt nevével. A TFT kijelzőkönyvtár lehetővé teszi vonalak, téglalapok, körök, karakterek, húrok és még sok más rajzolását tetszőleges színben és méretben. Itt két téglalap alakú gomb jön létre a fillRoundRect és drawRoundRect függvények használatával. A tft.drawRoundRect függvény szintaxisa az alábbiakban található:

tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t sugár, uint16_t szín)

Ahol:

x0 = a téglalap alakú kiindulópont X koordinátája

y0 = Téglalap alakú kiindulópont Y koordinátája

w = a téglalap szélessége

h = A téglalap magassága

sugár = a kerek sarok sugara

szín = a Rendelet színe.

void drawHome ()

{

tft.fillScreen (FEHÉR);

tft.drawRoundRect (0, 0, 319, 240, 8, FEHÉR); // Oldalszegély

tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);

tft.drawRoundRect (10, 70, 220, 50, 8, FEHÉR); //Szavazás

tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);

tft.drawRoundRect (10, 160, 220, 50, 8, FEHÉR); // Beiratkozás

tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Eredmény

tft.drawRoundRect (10, 250, 220, 50, 8, FEHÉR);

tft.setCursor (65, 5);

tft.setTextSize (3);

tft.setTextColor (CYAN);

tft.print ("Szavazás");

tft.setCursor (57, 29);

tft.print ("Gép");

tft.setTextSize (3);

tft.setTextColor (FEHÉR);

tft.setCursor (25, 82);

tft.print ("1. jelölt");

tft.setCursor (25, 172);

tft.print ("2. jelölt");

tft.setCursor (25, 262);

tft.print ("3. jelölt");

}

2. Az érintési pontok és az érzékelőgombok beszerzése:

Most a kód második szakaszában észleljük a gomb érintési pontjait, majd ezekkel a pontokkal megjósoljuk a gombot. ts.getPoint () függvény a TFT kijelző érintésének érzékelésére szolgál. ts.getPoint megadja a nyers ADC értékeket az érintett területhez. Ezeket a RAW ADC értékeket a térkép funkció segítségével Pixel -koordinátákká alakítják át.

TSPoint p = ts.getPoint ();

ha (p.z> ts.pressureThreshhold)

{

p.x = térkép (p.x, TS_MAXX, TS_MINX, 0, 320);

p.y = térkép (p.y., TS_MAXY, TS_MINY, 0, 240);

// Sorozatnyomat ("X: ");

// Sorozatnyomat (p.x);

// Sorozatnyomat ("Y: ");

// Sorozatnyomat (p.y);

Most, hogy ismerjük az egyes gombok X és Y koordinátáit, az „if” utasítás segítségével meg tudjuk jósolni, hogy a felhasználó hol érintette meg.

ha (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)

{

Serial.println ("1. jelölt");

Amikor a választópolgár megnyomja a jelölt gombot, felkérik, hogy vizsgálja meg az ujját az ujjlenyomat -érzékelőn. Ha az ujj -azonosító engedélyezett, akkor a választópolgár szavazhat. Ha bármely nem regisztrált felhasználó szavazni szeretne, akkor az ujjlenyomat-modul nem fogja észlelni az azonosítóját a rendszerben, és a kijelzőn megjelenik a „Sajnáljuk, hogy nem szavazhat” felirat.

ha (fps. IsPressFinger ())

{

fps. CaptureFinger (hamis);

int id = fps. Identify1_N ();

ha (id <200)

{

msg = "1. jelölt";

szavazat1 ++;

EEPROM.write (0, szavazat1);

tft.setCursor (42, 170);

tft.print ("Köszönöm");

késleltetés (3000);

drawHome ();

3. Eredmény:

Az utolsó lépés a szavazatszámlálás az EEPROM memóriából, és mindhárom jelölt szavazatának összehasonlítása. A legtöbb szavazatot kapott jelölt nyer. Az eredmény csak a soros monitorról érhető el, és nem jelenik meg a TFT képernyőn.

szavazás1 = EEPROM.read (0);

szavazás2 = EEPROM.read (1);

szavazás3 = EEPROM.read (2);

ha (szavazás)

{

ha ((szavazás1> szavazás2 && szavazás1> szavazat3))

{

Serial.print ("Can1 nyer");

késleltetés (2000);

}

4. lépés: Az ujjlenyomat -szavazórendszer tesztelése Arduino használatával

A projekt teszteléséhez csatlakoztassa az Arduino Uno -t a laptophoz, és töltse fel a megadott kódot. A kód feltöltése után a TFT kijelzőn fel kell tüntetni a jelölt nevét. Amikor valaki megérinti a jelölt nevét, a készülék felkéri az ujjlenyomat -leolvasót. Ha az ujjlenyomat érvényes, akkor a felhasználói szavazatot számba vesszük, de abban az esetben, ha a minta nem egyezik az adatbázis rekordjaival, a szavazáshoz való hozzáférés megtagadásra kerül. Az egyes jelöltek összes szavazatát az EEPROM tárolja, és a legtöbb szavazatot kapott jelölt nyer.

Remélem tetszett az oktatóanyag, és tanultál valami hasznosat. Ha bármilyen kérdése van, kérjük, ossza meg velünk az alábbi megjegyzés rovatban, és kövessen minket az Instructable -on is, ha további érdekes projekteket szeretne.

Ajánlott: