Оглавление:
- Шаг 1. Компоненты, необходимые для создания биометрической машины для голосования
- Шаг 2: Принципиальная схема биометрической машины для голосования с использованием Arduino
- Шаг 3. Исходный код и пошаговое объяснение кода
- Шаг 4: Тестирование системы голосования по отпечатку пальца с помощью Arduino
Видео: Биометрическая машина для голосования на основе отпечатков пальцев с использованием Arduino: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Все мы знаем о существующей электронной машине для голосования, в которой пользователь должен нажать кнопку, чтобы отдать голос. Но эти машины с самого начала подвергались критике за закалку. Таким образом, правительство планирует внедрить машину для голосования по отпечаткам пальцев, где пользователи могут голосовать на основе отпечатка своего отпечатка пальца. Эта система не только устранит возможность дублирования голосов, но и предотвратит любые манипуляции.
Итак, в этом проекте мы собираемся построить прототип биометрической машины для голосования с использованием Arduino Uno, TFT-дисплея и датчика отпечатков пальцев. Ранее мы использовали датчик отпечатков пальцев R305 с NodeMCU для создания системы посещаемости на основе биометрических данных, но здесь мы будем использовать усовершенствованный датчик отпечатков пальцев GT-511C3 с Arduino.
Шаг 1. Компоненты, необходимые для создания биометрической машины для голосования
- Ардуино Уно
- Экран 2,4 дюйма TFT LCD
- Датчик отпечатков пальцев GT-511C3
Этот 2,4-дюймовый TFT-дисплей ранее использовался с Arduino для создания системы заказа меню ресторана на основе Интернета вещей.
Шаг 2: Принципиальная схема биометрической машины для голосования с использованием Arduino
Принципиальная схема для этого проекта очень проста, поскольку мы подключаем только TFT-дисплей и модуль датчика отпечатков пальцев к Arduino Uno. Контакты VCC и GND датчика отпечатков пальцев подключены к контактам 5V и GND Arduino, а контакты TX и RX подключены к цифровым контактам 11 и 12 Arduino Uno.
ЖК-экран TFT с диагональю 2,4 дюйма представляет собой экран Arduino Shield и может быть установлен непосредственно на Arduino Uno, как показано на рисунке ниже. TFT-дисплей имеет 28 контактов, которые идеально подходят для Arduino Uno, поэтому мне пришлось припаять датчик отпечатков пальцев на задней стороне Arduino.
Шаг 3. Исходный код и пошаговое объяснение кода
Полный код этого проекта системы голосования по отпечаткам пальцев с использованием Arduino приведен в конце статьи; здесь мы объясняем некоторые важные функции кода.
В коде используются библиотеки SPFD5408, Software Serial и FPS_GT511C3. Библиотека SPFD5408 - это модифицированная версия исходной библиотеки Adafruit. Эти файлы библиотеки можно загрузить по приведенным ниже ссылкам:
- Библиотека SPFD5408
- Программное обеспечение Последовательный
- FPS_GT511C3
После включения библиотек и определения некоторых важных параметров мы можем перейти к программной части. В этой программе задействованы три секции. Один из них - создание пользовательского интерфейса машины для голосования, второй - получение точек касания для кнопок и обнаружение кнопок на основе касания и, наконец, вычисление результатов и их сохранение в памяти Arduino.
1. Создание UI:
Я создал простой интерфейс с тремя кнопками и названием проекта. Библиотека TFT-дисплея позволяет рисовать линии, прямоугольники, круги, символы, строки и многое другое любого предпочтительного цвета и размера. Здесь две прямоугольные кнопки создаются с помощью функций fillRoundRect и drawRoundRect. Синтаксис функции tft.drawRoundRect приведен ниже:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Где:
x0 = координата X начальной точки прямоугольного
y0 = координата Y начальной точки прямоугольного
w = Ширина прямоугольного
h = Высота прямоугольника
radius = Радиус скругленного угла
color = Цвет прямоугольника.
void drawHome ()
{
tft.fillScreen (БЕЛЫЙ);
tft.drawRoundRect (0, 0, 319, 240, 8, БЕЛЫЙ); // Граница страницы
tft.fillRoundRect (10, 70, 220, 50, 8, ЗОЛОТО);
tft.drawRoundRect (10, 70, 220, 50, 8, БЕЛЫЙ); //Голосование
tft.fillRoundRect (10, 160, 220, 50, 8, ЗОЛОТО);
tft.drawRoundRect (10, 160, 220, 50, 8, БЕЛЫЙ); //Зарегистрироваться
tft.fillRoundRect (10, 250, 220, 50, 8, ЗОЛОТО); //Результат
tft.drawRoundRect (10, 250, 220, 50, 8, БЕЛЫЙ);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
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 дает необработанные значения АЦП для затронутой области. Эти значения RAW ADC затем преобразуются в пиксельные координаты с помощью функции карты.
TSPoint p = ts.getPoint ();
если (p.z> ts.pressureThreshhold)
{
p.x = карта (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = карта (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Теперь, когда мы знаем координаты X и Y для каждой кнопки, мы можем предсказать, где пользователь коснулся, используя оператор «if».
if (p.x> 70 && p.x 10 && p.y МИН ДАВЛЕНИЕ && p.z <МАКСИМАЛЬНОЕ ДАВЛЕНИЕ)
{
Serial.println («Кандидат 1»);
Когда избиратель нажимает кнопку кандидата, ему будет предложено отсканировать палец на датчике отпечатков пальцев. Если finger ID авторизован, избиратель может голосовать. Если какой-либо Незарегистрированный пользователь хочет проголосовать, модуль отпечатков пальцев не обнаружит его идентификатор в системе, и на дисплее появится сообщение «Извините, вы не можете проголосовать».
если (fps. IsPressFinger ())
{
fps. CaptureFinger (ложь);
int id = fps. Identify1_N ();
если (id <200)
{
msg = "Кандидат 1";
голосование1 ++;
EEPROM.write (0, голос1);
tft.setCursor (42, 170);
tft.print («Спасибо»);
задержка (3000);
drawHome ();
3. Результат:
Последний шаг - получение подсчета голосов из памяти EEPROM и сравнение голосов всех трех кандидатов. Побеждает кандидат с наибольшим количеством голосов. Результат можно получить только с монитора последовательного порта и не будет отображаться на экране TFT.
голосование1 = EEPROM.read (0);
голосование2 = EEPROM.read (1);
голосование3 = EEPROM.read (2);
если (голос)
{
если ((голосование1> голосование2 && голосование1> голосование3))
{
Serial.print («Can1 Wins»);
задержка (2000);
}
Шаг 4: Тестирование системы голосования по отпечатку пальца с помощью Arduino
Чтобы протестировать проект, подключите Arduino Uno к ноутбуку и загрузите указанный код. После загрузки кода на TFT-дисплее должно отображаться имя кандидата. Когда кто-то нажимает на имя кандидата, устройство попросит отсканировать сканер отпечатков пальцев. Если отпечаток действителен, то голос пользователя будет засчитан, но в случае, если шаблон не соответствует записям в базе данных, в доступе для голосования будет отказано. Общее количество голосов за каждого кандидата будет сохранено в EEPROM, и победит кандидат, набравший наибольшее количество голосов.
Надеюсь, вам понравился урок и вы узнали что-то полезное. Если у вас есть какие-либо вопросы, сообщите нам об этом в разделе комментариев ниже, а также подпишитесь на нас на Instructable, чтобы увидеть больше таких интересных проектов.
Рекомендуемые:
Модуль отпечатков пальцев + STONE TFT-LCD: 3 шага
Модуль отпечатков пальцев + STONE TFT-LCD: В этом месяце я планировал разработать проект дверного замка с отпечатком пальца. Когда я выбрал модуль идентификации по отпечатку пальца, проект был приостановлен. Однако я подумал, что раз уж был куплен модуль идентификации по отпечатку пальца, я бы упростил
Ящик для защиты отпечатков пальцев: 4 шага
Ящик с отпечатками пальцев: вы забывчивый человек? Вы часто забываете взять с собой ключи? Если ответ на вопрос - да. Тогда вы должны сделать свой собственный ящик для защиты от отпечатков пальцев !!! Ваш отпечаток пальца - единственное, что есть на свете. Таким образом, вам не придется
Система посещаемости на основе отпечатков пальцев и RFID с использованием Raspberry Pi и базы данных MySQL: 5 шагов
Система посещаемости на основе отпечатков пальцев и RFID с использованием Raspberry Pi и базы данных MySQL: видео этого проекта
Использование датчика отпечатков пальцев для учета рабочего времени в сочетании с решением XAMP: 6 шагов (с изображениями)
Использование датчика отпечатков пальцев для определения посещаемости в сочетании с решением XAMP: для школьного проекта мы искали решение, как отслеживать посещаемость учащихся. Многие наши студенты приходят поздно. Проверять их присутствие - утомительная работа. С другой стороны, ведется много дискуссий, потому что студенты часто говорят
Учебное пособие по датчику отпечатков пальцев Arduino: 6 шагов (с изображениями)
Учебное пособие по датчику отпечатков пальцев Arduino: Дорогие друзья, добро пожаловать в еще один учебник! Сегодня мы собираемся создать интересный проект Arduino, в котором используется модуль датчика отпечатков пальцев. Без промедления, приступим! Я всегда хотел попробовать модуль датчика отпечатков пальцев в