吴忠躺衫网络科技有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>如何使用Arduino制作生物特征投票機

如何使用Arduino制作生物特征投票機

2022-11-22 | zip | 0.05 MB | 次下載 | 免費

資料介紹

描述

我們都知道現有的電子投票機,用戶必須按下按鈕才能投票。但這些機器從一開始就被批評為回火。因此,政府正計劃引入基于指紋的投票機,用戶可以根據他/她的指紋印象投票。該系統不僅可以消除重復投票的可能性,還可以防止任何形式的操縱。

所以在這個項目中,我們將使用 Arduino Uno TFT 顯示屏和指紋傳感器構建生物識別投票機的原型。我們之前使用帶有 NodeMCU 的 R305 指紋傳感器來構建基于生物特征的考勤系統,但在這里我們將使用帶有 Arduino 的高級 GT-511C3 指紋傳感器。

構建生物特征投票機所需的組件

這款 2.4 英寸 TFT 顯示屏以前與 Arduino 一起用于構建基于物聯網的餐廳菜單訂購系統。

使用 Arduino 的生物識別投票機電路圖

pYYBAGN3MgyAV4jqAAB7oqgwPPw630.jpg
?

該項目的電路圖非常簡單,因為我們僅將 TFT 顯示屏和指紋傳感器模塊與 Arduino Uno 連接。指紋傳感器的 VCC 和 GND 引腳連接到 Arduino 的 5V 和 GND 引腳,而 TX 和 RX 引腳連接到 Arduino Uno 的數字引腳 11 和 12。

2.4” TFT LCD 屏幕為 Arduino Shield,可直接安裝在 Arduino Uno 上,如下圖所示。TFT 顯示屏有 28 個引腳,非常適合 Arduino Uno,所以我不得不將指紋傳感器焊接在 Arduino 的背面。

源代碼和分步代碼說明

這篇使用 Arduino 的指紋投票系統項目的完整代碼在文末給出;這里我們解釋一下代碼的一些重要功能。

該代碼使用 SPFD5408、軟件串行和FPS_GT511C3庫。SPFD5408 庫是原始 Adafruit 庫的修改版本。這些庫文件可以從下面給出的鏈接下載

在包含庫并定義一些重要參數之后,我們可以進入編程部分。該計劃涉及三個部分。一是創建投票機的用戶界面,二是獲取按鈕的接觸點并根據觸摸檢測按鈕,最后計算結果并將它們保存到 Arduino 的內存中。

1. 創建用戶界面:

我創建了一個帶有三個按鈕和項目名稱的簡單 UI。TFT 顯示庫允許您繪制線條、矩形、圓形、字符、字符串以及更多任何喜歡的顏色和大小。這里使用 fillRoundRect 和 drawRoundRect 函數創建了兩個矩形按鈕。tft.drawRoundRect 函數的語法如下:

tft.drawRoundRect(int16_t x0,int16_t y0,int16_t w,int16_t h,int16_t 半徑,uint16_t 顏色)

在哪里:

x0=矩形起點的X坐標

y0=矩形起點的Y坐標

w = 矩形的寬度

h = 矩形的高度

radius=圓角的半徑

color = 矩形的顏色。

無效drawHome()

{

tft.fillScreen(白色);

tft.drawRoundRect(0, 0, 319, 240, 8, WHITE); //頁面邊框

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

tft.drawRoundRect(10, 70, 220, 50, 8, WHITE); //投票

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

tft.drawRoundRect(10, 160, 220, 50, 8, 白色); //注冊

tft.fillRoundRect(10, 250, 220, 50, 8, GOLD); //結果

tft.drawRoundRect(10, 250, 220, 50, 8, 白色);

tft.setCursor(65, 5);

tft.setTextSize(3);

tft.setTextColor(青色);

tft.print("投票");

tft.setCursor(57, 29);

tft.print("機器");

tft.setTextSize(3);

tft.setTextColor(白色);

tft.setCursor(25, 82);

tft.print("候選人 1");

tft.setCursor(25, 172);

tft.print("候選人 2");

tft.setCursor(25, 262);

tft.print("候選人 3");

}

2. 獲取接觸點和檢測按鈕:

現在在代碼的第二部分,我們將檢測按鈕接觸點,然后使用這些點來預測按鈕。ts.getPoint() 函數用于檢測用戶對 TFT 顯示屏的觸摸。ts.getPoint 給出了觸摸區域的原始 ADC 值。然后使用 map 函數將這些 RAW ADC 值轉換為像素坐標。

TSPoint p = ts.getPoint();

如果(pz > ts.pressureThreshhold)

{

像素 = 地圖(像素,TS_MAXX,TS_MINX,0, 320);

py = map(py, TS_MAXY, TS_MINY, 0, 240);

//Serial.print("X:");

//Serial.print(px);

//Serial.print("Y:");

//Serial.print(py);

現在,由于我們知道每個按鈕的 X 和 Y 坐標,我們可以使用“if”語句預測用戶觸摸的位置。

如果 (px > 70 && px < 120 && py > 10 && py < 220 && pz > 最小壓力 && pz < 最大壓力)

{

Serial.println("候選 1");

When a voter presses the candidate button, he will be asked to scan the finger on the fingerprint sensor. 如果手指 ID 被授權,則允許投票者投票。如果任何非注冊用戶想要投票,則指紋模塊將不會檢測到其 ID 進入系統,顯示屏將顯示“對不起,您無法投票”。

如果(fps.IsPressFinger())

{

fps.CaptureFinger(假);

int id = fps.Identify1_N();

如果(id <200)

{

msg = "候選人 1";

投票1++;

EEPROM.write(0, vote1);

tft.setCursor(42, 170);

tft.print("謝謝");

延遲(3000);

畫家();

3. 結果:

最后一步是從 EEPROM 存儲器中獲取選票并比較所有三個候選人的選票。得票最高的候選人獲勝。結果只能從串行監視器訪問,不會顯示在 TFT 屏幕上。

vote1=EEPROM.read(0);

投票2=EEPROM.read(1);

vote3=EEPROM.read(2);

如果(投票)

{

如果((投票 1 > 投票 2 && 投票 1 > 投票 3))

{

Serial.print("Can1 獲勝");

延遲(2000);

}

使用 Arduino 測試指紋投票系統

要測試項目,請將 Arduino Uno 連接到筆記本電腦并從此處上傳代碼代碼上傳后,TFT 顯示屏應顯示候選人的姓名。當有人點擊候選人姓名時,機器會要求掃描指紋掃描儀。如果指紋有效,則用戶投票將被計算在內,但如果指紋與數據庫的記錄不匹配,則拒絕投票。每個候選人的總票數將存儲在 EEPROM 中,得票最多的候選人將獲勝。

我希望你喜歡這個教程并學到了一些有用的東西。如果您有任何疑問,請在下面的評論部分告訴我們,并在Hackster.io上關注我們以獲取更多此類有趣的項目。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1A7159和A7139射頻芯片的資料免費下載
  2. 0.20 MB   |  55次下載  |  5 積分
  3. 2PIC12F629/675 數據手冊免費下載
  4. 2.38 MB   |  36次下載  |  5 積分
  5. 3PIC16F716 數據手冊免費下載
  6. 2.35 MB   |  18次下載  |  5 積分
  7. 4dsPIC33EDV64MC205電機控制開發板用戶指南
  8. 5.78MB   |  8次下載  |  免費
  9. 5STC15系列常用寄存器匯總免費下載
  10. 1.60 MB   |  7次下載  |  5 積分
  11. 6模擬電路仿真實現
  12. 2.94MB   |  4次下載  |  免費
  13. 7PCB圖繪制實例操作
  14. 2.92MB   |  2次下載  |  免費
  15. 8零死角玩轉STM32F103—指南者
  16. 26.78 MB   |  1次下載  |  1 積分

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  141次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  137次下載  |  免費
  7. 4A7159和A7139射頻芯片的資料免費下載
  8. 0.20 MB   |  55次下載  |  5 積分
  9. 5PIC12F629/675 數據手冊免費下載
  10. 2.38 MB   |  36次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  19次下載  |  免費
  13. 7PIC16F716 數據手冊免費下載
  14. 2.35 MB   |  18次下載  |  5 積分
  15. 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統EMC試驗方法及要求
  16. 1.97 MB   |  8次下載  |  10 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
线上百家乐玩法| 百家乐官网马宝| 千亿国际| 云博备用网址| 明陞M88| 曼哈顿娱乐城信誉| 天下足球网| 灵山县| 怎么玩百家乐官网能赢钱| 香港百家乐官网赌场| 百家乐官网五湖四海娱乐平台 | 澳门百家乐官网网上赌城| 博彩百家乐官网画谜网| 2024年九运| 百家乐翻天youtube| 送彩金百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城 老品牌值得您信赖| 大发888怎么注册不了| 香港六合彩85期开奖结果| 百家乐官网保单详图| 百家乐官网技论坛| 百家乐官网筹码托盘| 百家乐六合彩| 大发888游戏平台下载| bet365主页| 百家乐官网现金网排名| 百家乐官网博彩金| E世博百家乐官网的玩法技巧和规则 | 百家乐官网在线直播| 百家乐官网电子游戏试| 破解百家乐打路单| 广州百家乐官网筹码| 百家乐纯数字玩法| 大发888有银钱的吗| 香港六合彩彩图| 网络百家乐官网模拟投注| 属虎和属龙合伙做生意| 御匾会百家乐的玩法技巧和规则 | 怎么玩百家乐能赢钱| 百家乐园云鼎赌场娱乐网规则| 大发888娱乐城下栽|