Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Повышение безопасности мотоцикла с биометрической системой на Arduino

Компоненты и расходники

Arduino Pro Mini (05) × 1
Реле (generic) × 1
Биометрический датчик отпечатков FPM10A × 1
Модуль стабилизатора напряжения (Digilent) × 1

Инструменты

Приложения и сервисы

О проекте

В условиях массовых угона мотоциклов мы разработали антиугонную систему на базе 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;
}

Схема

Повышение безопасности мотоцикла с биометрической системой на Arduino

Подключение: датчик FPM10A к SoftwareSerial (пины 2,3), реле на пин 7, индикаторы: синий (4), зелёный (5), красный (6). Питание через стабилизатор.

Производственный процесс

  1. TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
  2. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  3. Многопозиционная система датчиков температуры для интеграции в умный дом
  4. Создание рулетки на 37 светодиодов с Arduino Nano
  5. Мониторинг состояния реки: Arduino-система контроля качества воды
  6. Мини-аркада на ATtiny85: Snake — ручная OLED-консоль своими руками
  7. Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
  8. Медное гальваническое покрытие: умная система на Arduino UNO
  9. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  10. Погодная станция на Arduino Nano: BMP280, DHT11, UV, DS3231, OLED 0.96″