Obsah:
- Krok 1: Součásti potřebné k sestavení biometrického hlasovacího zařízení
- Krok 2: Schéma zapojení pro biometrické hlasovací zařízení využívající Arduino
- Krok 3: Zdrojový kód a vysvětlení kódu krok za krokem
- Krok 4: Testování hlasovacího systému otisků prstů pomocí Arduina
Video: Biometrický hlasovací stroj na bázi otisku prstu využívající Arduino: 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Všichni víme o existujícím elektronickém hlasovacím zařízení, kde uživatel musí hlasovat stisknutím tlačítka. Ale tyto stroje byly od počátku kritizovány pro temperování. Vláda proto plánuje zavést hlasovací zařízení založené na otiscích prstů, kde by uživatelé mohli hlasovat na základě otisku prstu. Tento systém nejenže odstraní možnost duplicitních hlasů, ale také zabrání jakémukoli druhu manipulace.
V tomto projektu tedy postavíme prototyp biometrického hlasovacího zařízení pomocí Arduino Uno, TFT displeje a snímače otisku prstu. Dříve jsme použili snímač otisků prstů R305 s NodeMCU k vybudování biometrického docházkového systému, ale zde použijeme pokročilý snímač otisků prstů GT-511C3 s Arduino.
Krok 1: Součásti potřebné k sestavení biometrického hlasovacího zařízení
- Arduino Uno
- 2,4 "TFT LCD displej
- Snímač otisků prstů GT-511C3
Tento 2,4palcový TFT displej se dříve používal s Arduinem k vytváření objednávkového systému pro restaurace založené na IoT.
Krok 2: Schéma zapojení pro biometrické hlasovací zařízení využívající Arduino
Schéma zapojení pro tento projekt je velmi jednoduché, protože připojujeme pouze modul TFT displeje a snímače otisků prstů k Arduino Uno. VCC a GND piny snímače otisku prstu jsou připojeny k 5V a GND pinům Arduina, zatímco TX a RX piny jsou připojeny k digitálnímu pinu 11 a 12 Arduino Uno.
2,4 “TFT LCD obrazovka je Arduino Shield a lze ji přímo namontovat na Arduino Uno, jak ukazuje následující obrázek. TFT displej má 28 pinů, které se perfektně hodí do Arduino Uno, takže jsem musel připájet snímač otisků prstů na zadní straně Arduina.
Krok 3: Zdrojový kód a vysvětlení kódu krok za krokem
Úplný kód tohoto projektu hlasovacího systému pro otisky prstů pomocí Arduina je uveden na konci článku; zde vysvětlujeme některé důležité funkce kódu.
Kód používá knihovny SPFD5408, Software Serial a FPS_GT511C3. Knihovna SPFD5408 je upravenou verzí původní knihovny Adafruit. Tyto soubory knihovny lze stáhnout z níže uvedených odkazů:
- Knihovna SPFD5408
- Sériový software
- FPS_GT511C3
Po zahrnutí knihoven a definování některých důležitých parametrů se můžeme dostat do programovací části. Do tohoto programu jsou zapojeny tři sekce. Jedním z nich je vytvoření uživatelského rozhraní hlasovacího zařízení, druhým je získání dotykových bodů pro tlačítka a detekce tlačítek na základě dotyku a nakonec výpočet výsledků a jejich uložení do paměti Arduina.
1. Vytvoření uživatelského rozhraní:
Vytvořil jsem jednoduché uživatelské rozhraní se třemi tlačítky a názvem projektu. Knihovna displeje TFT vám umožňuje kreslit čáry, obdélníky, kruhy, znaky, řetězce a mnoho dalších libovolných preferovaných barev a velikostí. Zde jsou pomocí funkcí fillRoundRect a drawRoundRect vytvořena dvě obdélníková tlačítka. Syntaxe pro funkci tft.drawRoundRect je uvedena níže:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Kde:
x0 = X souřadnice počátečního bodu obdélníku
y0 = souřadnice Y počátečního bodu obdélníku
w = Šířka obdélníku
h = výška obdélníku
radius = poloměr zaobleného rohu
color = Color of the Rect.
void drawHome ()
{
tft.fillScreen (BÍLÁ);
tft.drawRoundRect (0, 0, 319, 240, 8, BÍLÁ); // Okraj stránky
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, BÍLÁ); //Hlasování
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, BÍLÁ); //Zapsat
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Výsledek
tft.drawRoundRect (10, 250, 220, 50, 8, BÍLÁ);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print („Hlasování“);
tft.setCursor (57, 29);
tft.print („Stroj“);
tft.setTextSize (3);
tft.setTextColor (BÍLÁ);
tft.setCursor (25, 82);
tft.print („Kandidát 1“);
tft.setCursor (25, 172);
tft.print („Kandidát 2“);
tft.setCursor (25, 262);
tft.print („Kandidát 3“);
}
2. Získání dotykových bodů a detekčních tlačítek:
Nyní ve druhé části kódu zjistíme dotykové body tlačítek a poté je použijeme k předpovědi tlačítka. Funkce ts.getPoint () se používá k detekci dotyku uživatele na displeji TFT. ts.getPoint uvádí nezpracované hodnoty ADC pro dotykovou oblast. Tyto hodnoty RAW ADC jsou poté převedeny na pixelové souřadnice pomocí funkce mapy.
TSPoint p = ts.getPoint ();
if (p.z> ts.pressureThreshhold)
{
p.x = mapa (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = mapa (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Nyní, protože známe souřadnice X a Y pro každé tlačítko, můžeme předpovědět, kde se uživatel dotkl, pomocí příkazu „if“.
if (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidát 1");
Když volič stiskne tlačítko kandidáta, bude požádán, aby naskenoval prst na senzoru otisku prstu. Pokud je povoleno ID prstu, volič může hlasovat. Pokud chce jakýkoli neregistrovaný uživatel hlasovat, modul otisku prstu nezjistí v systému své ID a na displeji se zobrazí „Litujeme, nemůžete hlasovat“.
if (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
if (id <200)
{
msg = "Kandidát 1";
hlasujte1 ++;
EEPROM.write (0, hlas1);
tft.setCursor (42, 170);
tft.print („Děkuji“);
zpoždění (3000);
drawHome ();
3. Výsledek:
Posledním krokem je získání počtu hlasů z paměti EEPROM a porovnání hlasů všech tří kandidátů. Vyhrává kandidát s nejvyšším počtem hlasů. Výsledek je přístupný pouze ze sériového monitoru a nebude zobrazen na obrazovce TFT.
vote1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
pokud (hlasovat)
{
if ((hlasovat1> hlasovat2 && hlasovat1> hlasovat3))
{
Serial.print („Can1 vyhrává“);
zpoždění (2000);
}
Krok 4: Testování hlasovacího systému otisků prstů pomocí Arduina
Chcete -li projekt otestovat, připojte Arduino Uno k notebooku a nahrajte daný kód. Jakmile je kód nahrán, na displeji TFT by se mělo zobrazit jméno kandidáta. Když někdo klepne na jméno kandidáta, zařízení požádá o naskenování skeneru otisků prstů. Pokud je otisk prstu platný, bude započítán hlas uživatele, ale v případě, že se vzor neshoduje se záznamy v databázi, přístup k odevzdání hlasu bude odepřen. Celkový počet hlasů pro každého kandidáta bude uložen do EEPROM a vyhraje kandidát s nejvyšším počtem hlasů.
Doufám, že se vám návod líbil a dozvěděli jste se něco užitečného. Pokud máte nějaké dotazy, dejte nám prosím vědět v sekci komentáře níže a také nás sledujte na Instructable pro další podobné zajímavé projekty.
Doporučuje:
Elektrický zámek dveří se snímačem otisků prstů a čtečkou RFID: 11 kroků (s obrázky)
Elektrický zámek dveří se čtečkou otisků prstů a čtečkou RFID: Projekt byl navržen tak, aby se vyhnul nutnosti používat klíče. K dosažení našeho cíle jsme použili optický snímač otisků prstů a Arduino. Existují však jednotlivci, kteří mají nečitelný otisk prstu a senzor jej nerozpozná. Pak přemýšlel o
Použití snímače otisků prstů pro docházku v kombinaci s řešením XAMP: 6 kroků (s obrázky)
Použití snímače otisků prstů pro docházku v čase v kombinaci s řešením XAMP: Pro školní projekt jsme hledali řešení, jak sledovat docházku studentů. Mnoho našich studentů přichází pozdě. Je to únavná práce kontrolovat jejich přítomnost. Na druhou stranu se hodně diskutuje, protože studenti často říkají
Stroj ATM využívající Arduino (otisk prstu+karta RFID): 4 kroky (s obrázky)
Bankomat využívající Arduino (otisk prstu+karta RFID): Dobrý den, přátelé, vrátil jsem se s novou myšlenkou automatu ATM využívajícího Arduino. Může být nápomocný ve venkovských oblastech, kde bezhotovostní služby nejsou možné. Je to malý nápad. Doufám užili jste si to
Výukový program snímače otisku prstu Arduino: 6 kroků (s obrázky)
Výukový program snímače otisku prstu Arduino: Vážení přátelé, vítám vás u dalšího kurzu! Dnes budeme stavět zajímavý projekt Arduino, který používá modul snímače otisků prstů. Bez dalšího zdržování začněme! Vždy jsem chtěl vyzkoušet modul snímače otisku prstu v
Jak oklamat systém zabezpečení otisků prstů stejně snadno jako ABC: 12 kroků (s obrázky)
Jak oklamat systém zabezpečení otisků prstů stejně snadno jako ABC: Tento návod vám ukáže, jak oklamat systém zabezpečení otisků prstů stejně snadno jako ABC. IBM nikdy nechtěla, abyste o tom věděli. funguje také pro většinu systému zabezpečení otisků prstů. Například: např. dveře, mobilní telefon …. Tyto pokyny jsou dodávány s