Tartalomjegyzék:
- 1. lépés: A biometrikus szavazógép felépítéséhez szükséges összetevők
- 2. lépés: Áramkör diagram a biometrikus szavazógéphez Arduino használatával
- 3. lépés: Forráskód és lépésenkénti kódmagyarázat
- 4. lépés: Az ujjlenyomat -szavazórendszer tesztelése Arduino használatával
Videó: Ujjlenyomat -alapú biometrikus szavazógép Arduino használatával: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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:
Biometrikus autóbejegyzés - valódi kulcs nélküli autó: 4 lépés
Biometrikus autóbejegyzés - Igazi kulcs nélküli autó: Néhány hónappal ezelőtt a lányom megkérdezte tőlem, hogy a modern autók miért nincsenek felszerelve biometrikus beviteli rendszerrel, ha még egy mobiltelefon is rendelkezik ezzel. Azóta azon dolgozott, hogy végrehajtsa ugyanazt, és végül sikerült valamit telepítenem és tesztelnem a T
Elektromos ajtózár ujjlenyomat -olvasóval és RFID -olvasóval: 11 lépés (képekkel)
Elektromos ajtózár ujjlenyomat -olvasóval és RFID -olvasóval: A projekt célja a kulcsok használatának elkerülése volt, a cél eléréséhez optikai ujjlenyomat -érzékelőt és Arduino -t használtunk. Vannak azonban olyan személyek, akiknek olvashatatlan ujjlenyomatuk van, és az érzékelő nem ismeri fel. Aztán gondolkodni egy
Biometrikus személyes napló: 5 lépés (képekkel)
Biometrikus személyes napló: Ez az ügyes kis eszköz ujjlenyomat -érzékelővel rendelkezik, így személyre szabott hordozható tokban rögzítheti hűvös dolgait. Naplót és tollat, valamint terveket tartok az új projektjeimhez. 3D nyomtatott tokkal rendelkezik, és Arduino nano -t használ. Remek ajándék ötlet
ATM gép Arduino használatával (ujjlenyomat+RFID kártya): 4 lépés (képekkel)
ATM-gép Arduino használatával (ujjlenyomat+RFID kártya): Helló barátaim, új ötlettel jövök az Arduino-t használó ATM-ről. Hasznos lehet vidéki területeken, ahol a készpénz nélküli szolgáltatások nem lehetségesek. Ez egy kis ötlet. Remélem élvezted.Kezdjük el
Arduino ujjlenyomat -érzékelő bemutatója: 6 lépés (képekkel)
Arduino ujjlenyomat -érzékelő bemutatója: Kedves barátaink, üdvözöljük egy másik oktatóanyagban! Ma egy érdekes Arduino projektet fogunk felépíteni, amely ujjlenyomat -érzékelő modult használ. Minden további késedelem nélkül kezdjük el! Mindig is ki akartam próbálni az ujjlenyomat -érzékelő modult