\r\n\r\n
自分だけが鍵を持っている見えない鍵に近づき、触ることもなくそれを開ける。クールなサウンド?今日は、Arduinoをバックボーンに、安価な部品を使って、RFIDを使った簡単なスマートロックを作ってみましょう。
このプロジェクトの背景にある技術は、すでに多くの産業で使われています。RFID(Radio Frequency Identification)は、カードやドングルのチップに格納されたデータを識別し、スキャンされたタグのリストと比較するもので、最新のオフィスや公共交通機関を利用する人なら、日常的に使っているのではないだろうか。
Mifare MFRC522リーダーモジュールを使ってテスト回路を作り、入退室や鍵の開閉を制御する予定です。マスターキーカードを使って、異なるタグへのアクセスを追加または削除し、システムで何が起こっているかを伝えるシンプルなLED読み取り装置を作る予定です。
最後に、ロックとしてソレノイドを追加し、Arduinoを使って安全にトリガーし、オフにするためにMOSFETを追加します。
MFRC522リーダーは、RC522チップにデータを読み書きし、このデータをArduinoのEEPROMに保存することができます。特にホームセキュリティシステムに関連するDIYのセットアップに最適です。DIYのアラームシステムやDIYの防犯カメラシステムにも使えそうですね。
このセットアップの主役は、安価なMFRC522モジュールで、s50チップを搭載したカードとフォブが付属し、それぞれに固有の永久識別番号(UID)が保存されています。どちらも形状が違うだけで、機能的には同じものです。
まずArduino IDEのライブラリマネージャでMFRC522のライブラリを検索し、インストールします。または、ライブラリをダウンロードし、librariesフォルダに手動でインストールすることも可能です。Arduinoを初めて使う方は、この入門書が役に立つかもしれません。
また、このライブラリにはFritzingの図が含まれており、Arduinoにモジュールを取り付ける方法を示すために注釈を付けています。
注意:このボードは5Vではなく3.3Vで動作していますので、正しいピンに接続するよう注意してください。
設定をテストするために、ファイル > Example> MFRC522> DumpInfo から DumpInfo スケッチを開き、Arduino ボードにアップロードしてください。シリアルモニターを開き、RFIDオブジェクトをリーダーにかざしてください。このような画面が表示されるはずです。
読み上げた内容に間違いがあった場合
MIFARE_Read() failed: Timeout in communication或いは
PCD_Authenticate() failed: Timeout in communication心配しないでください。これは、すべてのデータを読み取るのに十分な時間、タグをリーダーに向かってかざさなかったことを意味する場合があります。カードのUIDさえ取得できれば(タグがリーダーの範囲に入れば読み取れる)、今回のプロジェクトではうまくいくでしょう。読み取れない場合は、回線を確認し、再度お試しください。
モジュールが動作することが確認できたので、残りのコンポーネントを追加しましょう。コンポーネントは以下のように接続します。
この設定で、ArduinoからMOSFETにHighの信号を送るたびに、ソレノイドに電流を流すことができるようになります。Arduinoに12V以上の電圧を供給するには降圧トランスが必要ですが、より強力で重いソレノイドを使用することを止めることはできません。MOSFETのデータシートもよく見て、オーバーロードにならないように注意してください。
まとめると、このようになります。
必要ないのですが、廃材の木製ドアロックを模した小さなキットを作りました。
回路ができたので、次はArduinoのスケッチを作成します。便利なことに、MFRC522のライブラリにはAccess Controlというサンプルスケッチが付属しており、やりたいことがほぼ実現できています。Arduinoをパソコンに接続し、Arduino IDEでファイル > Example> MFRC522> Access Controlを開きます。
サンプルスケッチとライブラリの両方のGitHubページには、豊富な情報が掲載されています。数行の修正で済みます。または、このGitHubから私たちが修正したコードをダウンロードすることもできます。
まず、共通アノードを使用したRGB LEDの単一回路のスケッチが設計されていますが、これは使用しませんので、この部分だけコメントアウトしてください。
//#define COMMON_ANODEここで、LEDのピンをスケッチで定義されたピンに合わせます。
#define redLed 3 // Set Led Pins#define greenLed 4#define blueLed 2リレー端子(今回はMOSFETを使用していますが)を設定に合わせて変更する必要があります。
#define relay 5 // Set MOSFET Pin後日、鍵が開いている時間を簡単に変更できるように、そのための変数を作成します。
int lockDelay=10000; // lock stays open for 10 seconds.あと1つだけ変えればいいんです。ループメソッドの一番下、if文に隠れているのが付与されたメソッド呼び出し(300)です。lockDelay変数を使用するように変更する必要があります。
granted(lockDelay); // Open the door lock for lockDelay durationスケッチを新しい名前で保存し、Arduinoにアップロードします。終了したら、シリアルモニタを開きます。初めて行う場合は、何かをマスターカードとしてスキャンするように要求されます。カードをカードリーダーにかざすと、シリアルモニターにカードのUIDが表示され、「Everything Ready」というメッセージが表示されます。
それだ!マスターキーの準備ができました。Arduinoボードをコンピュータから抜きます。マスターキーの詳細は、電源を切った後もArduinoのEEPROMに保存されます。
最後に配線をざっとチェックして、すべて揃っていることを確認し、12V電源を接続します。このとき、ソレノイドのデューティーサイクルに注意する必要があることを述べておきます。このテストに使った安物のソレノイドは、デューティサイクルが100%ではないので、長い間ロックされた状態にはならないはずです。常時設定にするには、100%デューティサイクルのソレノイドバルブを使用します。さらに、電源を切ってもロックされたままのノーマルクローズ(NC)ソレノイドバルブもあります。これは、システムをバイパスしようとする人は、単にプラグを抜くことができないということでもあるのです
回路に電源が入ると青いLEDが点灯し、デバイスが動作していることを示します。マスターカードをカードリーダーに置くと、管理モードになり、3つのLEDが点滅します。点滅しているときに、別のカードやフォブをリーダーの上にかざすと、アクセスを追加したり削除したりすることができます。アクセスを許可すると緑色に点滅し、取り上げると青色に点滅します。管理モードを終了するには、再度メインカードを使用します。
あとは、カードやリーダーにアクセスできるフォブを持っていくと、緑色に点滅して開錠します。赤色に点滅した場合は、アクセスが拒否されています
このアイテムは、DIYでRFIDデバイスを使用する際の手始めとしては最適ですが、最も安全なセットアップとは言えません。玄関先でこの仕掛けをすることはお勧めしません。
機構全体を箱に組み立てて、ソレノイドでロックすればいいんです。ビスケットを箱に詰めて、マスターキーでアクセスできる人とできない人を決めます。ビスケットマスターになろう
ソレノイドを完全に取り外して、その代わりにRFIDで作動するLEDストリップを追加することができます。同じ方法で、アクセス権のあるカードやフォブをリーダーに持たせて、Wi-Fiパスワードなどのデータを小画面に表示させることができます。
ご家庭でRFIDを利用されたことがありますか? 以下のコメント欄で、あなたのプロジェクトを教えてください。
画像引用元:Annmarie Young via Shutterstock.com