RFIDを使用したWindowsPCのロック/ロック解除
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 3 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
こんにちは!
PC /ラップトップがロックされるたびに、パスワードを入力してロックを解除することにうんざりしたことはありますか?私は毎日何度もそれをロックすることに慣れています、そして私がそれをロック解除したいときはいつでも、パスワード/ピンを何度も何度も入力することほど迷惑なことはありません。何かの必要性が不可欠になると、あなたはそれを手に入れる方法を見つけることを余儀なくされます。 「必要性は発明の母」ということわざにあるように、私の怠惰な心は、私がそれをロックしなければならないたびに、私のパーソナルコンピュータ/ラップトップのロックを解除する簡単で安価な方法を考え始めました。調べてみると、RC522RFIDモジュールが見つかりました。その時、RFIDシステムを作ることにしました。
RFID: 無線周波数識別(RFID)は、最も古い無線技術の1つです。 RFIDチップは、情報をデジタルで保存するために使用されます。情報は、電磁界や電波を介してオブジェクト間で共有できます。それほど高度ではないかもしれませんが、多くのメーカーは、いくら古くても、テクノロジーに真の可能性を見出しています。
このプロジェクトでは、RFIDカード/タグをフリックするだけでWindowsコンピューターをロック/ロック解除できる簡単なRFIDシステムを作成する方法を説明します。このシステムを導入すれば、ラップトップ/ PCをロックダウンするたびにロックを解除する手間が省けます。
<図> <図>このプロジェクトの中心は、 Arduino Pro Micro(またはArduino Leonardoを使用できます)です。 ATmega32U4 チップ。このプロジェクトでは、 ATmega32U4 を備えた開発ボードを選択することが非常に重要です。 チップ。このアプリケーションでは、Arduino Uno、Mega 2560、Pro Mini、ArduinoNanoなどの開発ボードを使用することはできません。詳細は以下の手順で行います。
プロトタイプの作成。
<図>回路をPCBにはんだ付けする前に、ブレッドボード上にプロトタイプを作成することをお勧めします。これは、接続をよりよく理解するのに役立ち、接続のリンク中に発生するエラーを修正できるようになります。このプロジェクトを考えると、プロトタイプの作成は大きな作業ではありません。いくつかの接続を行うだけで、コードをアップロードする準備が整います。接続については、以下で説明します。 Arduinoでは、ピンの多くは変更できません。このデバイスはSPIバスを使用するため、ピンを切り替えることはできません。ピン14、15、および16は図のように維持する必要があります。 RSTとSDAはユーザー指定です。
- RC-522 RFIDモジュールは、わずか 3.3ボルトの入力電圧用に設計されています 。これは非常に敏感なデバイスであるため、値を大きくするとモジュールが過熱して損傷する可能性があります。 Arduino Pro MicroからのVCCは、5ボルトの電源を提供します。回路図に示すように分圧器を作成し(または5 V〜3.3 Vの降圧モジュールを使用して)、3.3ボルトの供給電圧を作成します。 3.3V電源をRFIDモジュールのVCCに接続します。
- Arduinoのピン5へのRST。 (このピンはコードで変更できます。)
- GNDピンをアースに接続します。
- IRQピン-接続されていません。
- MISOからArduinoのピン14へ。
- Arduinoのピン16へのMOSI。
- Arduinoのピン15にSCKします。
- Arduinoのピン10へのSDA。 (これもユーザー定義のピンです。)
それだけです!、シンプルで簡単です。ケーブルを差し込むだけで、コードをアップロードしてデバイスをテストする準備が整います。
コード。
ATmega32u4チップを搭載したArduinoLeonardo / Microには、USB通信が組み込まれています。これにより、Leonardo / Microは接続されたコンピューターにマウスまたはキーボードとして表示されます。
私たちはkeyboard.hコアライブラリを使用して、arduinoが接続されたコンピューターにキーストロークを送信するようにします。
コードの動作は非常に簡単です。
- RFIDカード/タグのUIDとWindowsのパスワード/ PINがコードに保存されます。
- 正しいカードがRFIDリーダーに表示されると、arduinoはウィンドウをロックするためのキーストロークとウィンドウのロックを解除するためのパスワードを同時に送信します。
- ウィンドウがロックされた状態の場合、ウィンドウをロックするためのキーストロークは効果がなく、コマンドはロックされたコンピューターのロックを解除します。
- または、ウィンドウがすでにロック解除されている場合は、コマンドによってロックされます。 (ロック解除コードも同時に表示されますが、ロックとロック解除のキーストロークの間にわずかな遅延があるため、Windowsはロックコマンドの実行を開始し、その時点で表示されるロック解除コードコマンドを読み取りません。) >
自分で調べて使用するには、提供したコードに小さな変更を加える必要があります。
- プロトタイプをコンピューターに接続します。
- Arduino IDEを起動し、ここで指定したコードを開きます。
- ツールバーから[ツール]-> [ボード]に移動し、Arduino PromicroとArduinoLeonardoの両方でArduinoLeonardoを選択します。
- COMポートが選択されているかどうかを確認します。
- コードをarduinoにアップロードします。
- シリアルモニターを開きます(Ctrl + Shift + M)。
- カード/タグをスキャンします。
- シリアルモニターに表示される出力の最初の行は、カード/タグのUIDです。この値を書き留めます。
- ここで、コードエディタに戻り、文字列 " card1 の値を変更します。 「今メモしたUIDに(私のコードでは、41行目にあります)。
- コードの最後の部分に移動すると、「 Keyboard.print( "PASSWORD"); 」という行が見つかります。 "(コードの行番号80。)この値をWindowsのロック解除コードに変更します。
- 変更したコードをarduinoにアップロードします。
- カード/タグをスキャンしてプロトタイプをテストします。
これは、RFIDタグを使用してコンピューターにパスワードを入力するための基本的なコードです。コードを変更して、カードやタグを追加したり、さまざまなアプリケーションのカードごとに異なるパスワードを設定したりできます。
はんだ付け。
<図> <図> <図> <図>これは非常に小さくて単純な回路です。カスタムPCBを作成するために多くの時間を費やすよりも、これをプロトタイピングPCBボードにはんだ付けする方が適切です。
常にヘッダーを使用してarduinoとRFIDモジュールを接続します。そうしないと、はんだ付け中に長時間熱にさらされると、これらのボードが永久に損傷する可能性があります。
回路図に示すようにすべての接続をはんだ付けし、arduinoとRFIDモジュールをPCBボードに接続します。ケースを作るのに便利なように、直角のメスヘッダーを使用してRFIDモジュールをPCBボードに水平に接続しました。
はんだ付け後に接続が緩んだり、誤動作したりしないように、必ずデバイスをテストしてください。
エンクロージャーの作成。
<図> <図>ガレージで見つけた段ボール箱を使って簡単な囲いを作りました。同じ段ボールを使ってスタンドを作り、ケーブルを接続するためのケースとarduinoのLEDのために穴を開けました。次に、セットアップ全体をカーボンファイバーのテクスチャステッカーで包み、ボードのLEDが配置されている穴に半透明のダークステッカーを貼りました。
ケースを作ることは完全にあなたの想像力次第です。以下のコメントセクションであなたの考えを共有してください。
結果。
ビデオを見て、デバイスの動作を確認してください。
これは単なる趣味のプロジェクトであり、ホームユーザーにとって完璧に機能することを忘れないでください。個人的な使用のためにこれを実装する前に、潜在的なセキュリティの脆弱性を考慮してください。セキュリティを保証することはできません。
私たちの日常生活にRFID + keyboard.hを適用する可能性はたくさんあります。コンピューターをロック/ロック解除するために作成しました。あなたは何をするつもりですか?以下のコメントで教えてください!
ありがとうございます!
コード
- RFIDを使用したWindowsPCのロック/ロック解除。
RFIDを使用したWindowsPCのロック/ロック解除。 C / C ++
Arduinoコード。#include#include #include #define SS_PIN 10#define RST_PIN 5#define KEY_RETURN 0xB0 //リターンキーの16進値は0xB0です。 MFRC522 mfrc522(SS_PIN、RST_PIN); char Enter =KEY_RETURN; //リターンキーはEnter.Stringreadid; String card1 ="48b45a10";として宣言されています//この値をカードのUIDに変更します。 void setup(){Serial.begin(9600); Keyboard.begin(); SPI.begin(); mfrc522.PCD_Init();} void temp(byte * buffer、byte bufferSize)//カードuidを文字列データ型として格納する関数。{readid =""; for(byte i =0; i
回路図
製造プロセス