Повышение безопасности мотоцикла с биометрической системой на Arduino
Компоненты и расходники
| Arduino Pro Mini (05) | × | 1 |
| Реле (generic) | × | 1 |
| Биометрический датчик отпечатков FPM10A | × | 1 |
| Модуль стабилизатора напряжения (Digilent) | × | 1 |
Инструменты
- Паяльник
- Бессвинцовый припой
- Электрическая изолента
- Кусачки (длинненосевые)
Приложения и сервисы
- Arduino Web Editor
О проекте
В условиях массовых угона мотоциклов мы разработали антиугонную систему на базе Arduino Pro Mini, которая связывает мотоцикл с цифровой регистрацией владельца через отпечаток пальца.
Автор: Canal Sandro Mesquita Roboticamente
Код
Код системы безопасности мотоцикла
/***************************************************
* Пример для оптического датчика отпечатков Adafruit
* Designed specifically to work with the Adafruit BMP085 Breakout
* -> https://www.adafruit.com/products/751
* TTL Serial, 2 пина. Adafruit инвестирует в открытый код — поддержите их покупкой!
* Written by Limor Fried/Ladyada for Adafruit Industries. BSD license.
****************************************************/
int chave = 0;
int verde = 5;
int azul = 4;
int vermelho = 6;
int rele = 7;
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
// pin #2 = IN от датчика (зелёный провод)
// pin #3 = OUT от Arduino (белый провод)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT);
digitalWrite(rele, 1); // реле выключено (активный LOW)
delay(100);
digitalWrite(azul, 1); // синий индикатор инициализации
finger.begin(57600);
// finger.verifyPassword() и finger.getTemplateCount() закомментированы
digitalWrite(azul, 0);
digitalWrite(vermelho, 1); // красный: ждём палец
digitalWrite(verde, 0);
}
void loop() {
if (getFingerprintIDez() == 1) {
chave = !chave; // переключаем состояние
delay(500);
}
digitalWrite(rele, !chave); // реле: 0 = включено (запуск двигателя)
digitalWrite(verde, chave); // зелёный = доступ разрешен
digitalWrite(vermelho, digitalRead(rele)); // красный = доступ запрещён
delay(50);
}
// Полные функции getFingerprintID() и getFingerprintIDez() из библиотеки Adafruit
// getFingerprintIDez() возвращает ID пальца или -1 при ошибке
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK: break;
case FINGERPRINT_NOFINGER: return p;
case FINGERPRINT_PACKETRECIEVEERR: return p;
case FINGERPRINT_IMAGEFAIL: return p;
default: return p;
}
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK: break;
case FINGERPRINT_IMAGEMESS: return p;
case FINGERPRINT_PACKETRECIEVEERR: return p;
case FINGERPRINT_FEATUREFAIL: return p;
case FINGERPRINT_INVALIDIMAGE: return p;
default: return p;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
// Serial.print("Found ID #"); Serial.print(finger.fingerID);
// Serial.print(" confidence "); Serial.println(finger.confidence);
return finger.fingerID;
}
return p;
}
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
// Serial.print("Found ID #"); Serial.print(finger.fingerID);
// Serial.print(" confidence "); Serial.println(finger.confidence);
return finger.fingerID;
}
Схема
Подключение: датчик FPM10A к SoftwareSerial (пины 2,3), реле на пин 7, индикаторы: синий (4), зелёный (5), красный (6). Питание через стабилизатор.
Производственный процесс
- TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- Многопозиционная система датчиков температуры для интеграции в умный дом
- Создание рулетки на 37 светодиодов с Arduino Nano
- Мониторинг состояния реки: Arduino-система контроля качества воды
- Мини-аркада на ATtiny85: Snake — ручная OLED-консоль своими руками
- Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
- Медное гальваническое покрытие: умная система на Arduino UNO
- NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
- Погодная станция на Arduino Nano: BMP280, DHT11, UV, DS3231, OLED 0.96″