工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

指紋認証センサーでバイク盗難を防ぐ - Arduinoバイオメトリックセキュリティシステム

部品と材料

部品 数量 備考
Arduino Pro Mini (05) 1 小型・低消費電力
リレーモジュール 1 イグニッション/スターター遮断用
指紋認証センサー FPM10A 1 シリアル通信(TTL)
電圧レギュレーターモジュール 1 バイク電源(12V)から5V/3.3V生成用

必要な工具

アプリとオンラインサービス

プロジェクト概要

バイク盗難が多発する中、Arduino Pro Miniを用いて「指紋認証によるエンジン始動認証システム」を開発しました。登録済みの指紋のみでエンジンが始動するようにし、不正な始動を防ぎます。Canal Sandro Mesquita Roboticamenteによるプロジェクトです。

ソースコード

バイク防犯システム スケッチ

/***************************************************
 * Adafruit光学式指紋センサー用スケッチ
 * Adafruit BMP085 Breakout向けに設計
 * TTLシリアル通信(2ピン必要)
 * Written by Limor Fried/Ladyada for Adafruit Industries
 * BSD license
 ***************************************************/
int chave = 0;
int verde = 5;    // 緑LED
int azul = 4;     // 青LED
int vermelho = 6; // 赤LED
int rele = 7;     // リレー制御

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

// pin #2 = センサーからの入力 (緑線)
// pin #3 = 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); // リレー初期状態: OFF(エンジン遮断)
  delay(100);
  
  digitalWrite(azul, 1); // 青LED点灯: 初期化中
  finger.begin(57600);   // センサー通信開始
  
  // パスワード検証はコメントアウト済み
  finger.getTemplateCount();
  // Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  
  digitalWrite(azul, 0);
  digitalWrite(vermelho, 1); // 赤LED点灯: 待機中(指紋未認証)
  digitalWrite(verde, 0);
}

void loop() {
  if (getFingerprintIDez() == 1) { // 指紋認証成功
    chave = !chave; // トグル: ON↔OFF
    delay(500);
  }
  digitalWrite(rele, !chave);      // リレー制御(chave=1で導通=エンジン始動許可)
  digitalWrite(verde, chave);      // 緑LED: 認証済み表示
  digitalWrite(vermelho, digitalRead(rele)); // 赤LED: 未認証表示
  delay(50);
}

// 詳細版指紋取得関数(デバッグ用)
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(" with confidence of "); Serial.println(finger.confidence);
    return finger.fingerID;
  }
  return p;
}

// 簡易版:認証成功でID返却、失敗で-1
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(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID;
}

回路図

指紋認証センサーでバイク盗難を防ぐ - Arduinoバイオメトリックセキュリティシステム

指紋センサーの緑線→Arduino D2、白線→D3。リレーでイグニッションラインまたはスターターモーター回路を遮断/接続します。電源はバイクの12Vからレギュレーターで降圧して供給します。

動作説明

実装のポイント

製造プロセス

  1. TinyML言語検出器:Edge ImpulseとArduino Nano 33 BLE Senseで「はい」を多言語判別
  2. Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
  3. スマートホーム連携向けマルチポジション温度センサーシステム
  4. Arduino Nanoで37LEDルーレットゲームを自作:ヨーロピアンスタイル完全再現
  5. 川の健康を見守る:Arduinoベース水質監視システム「MyRiver」
  6. ATtiny85ミニアーケード:スネークゲーム - 手のひらサイズOLEDゲーム機の製作
  7. ポータブル距離検出器:Arduino Nano自作キット(HC-SR04、18650電源、3Dプリントケース付き)
  8. 銅メッキプロジェクト:Arduino UNOで作るスマート電気メッキシステム
  9. Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
  10. Arduino Nano製ウェザーステーション:気圧・温湿度・UV・時計表示付き
  11. Arduinoシフトレジスタで美しい光のシーケンスを作成