Grove - 125KHz RFID Reader
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
この Grove-125KHz RFID Reader は、uem4100 RFIDカード情報を読み取るためのモジュールで、出力形式としてUartとWiegandの2種類をサポートしています。最大7cmの感知距離を持つ高感度を備えています。また、このモジュールには電子ブリック版も存在します。このモジュールは、IoT(モノのインターネット)やアクセス制御システムのプロジェクトに役立ちます。
RFIDリーダーを使用する際には、以下のモジュールを使用する必要があります:
バージョン
製品バージョン | 変更点 | リリース日 |
---|---|---|
Grove - 125KHz RFID Reader V1.0 | 初版 | 2015年10月 |
仕様
パラメータ | 値/範囲 |
---|---|
電圧 | 4.75-5.25V |
動作周波数 | 125 KHz |
最大感知距離 | 70mm |
TTL出力 | 9600ボーレート、8データビット、1ストップビット、検証ビットなし |
Wiegand出力 | 26ビットWiegand形式、1偶数検証ビット、24データビット、1奇数検証ビット |
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)をご参照ください。
対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記に記載されている対応プラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoを初めて使用する場合は、開始する前に[Arduinoの使い方](https://wiki.seeedstudio.com/ja/Getting_Started_with_Arduino/)をご覧になることを強くお勧めします。
Arduinoで遊ぶ
ハードウェア
- ステップ 1. 以下のものを準備してください:
Seeeduino V4.2 | ベースシールド | Grove - 125KHz RFIDリーダー |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. Grove - 125KHz RFIDリーダーをGroveベースシールドのポートD2に接続します。
- ステップ 3. Grove - ベースシールドをSeeeduinoに差し込みます。
- ステップ 4. USBケーブルを使用してSeeeduinoをPCに接続します。
Groveベースシールドがない場合でも、以下のようにGrove_Ultrasonic_RangerをSeeeduinoに直接接続することができます。
Seeeduino | Grove - 125KHz RFIDリーダー |
---|---|
5V | 赤 |
GND | 黒 |
D3 | 白 |
D2 | 黄 |
ソフトウェア
- ステップ 1. 以下のコードをArduino IDEにコピーしてアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法をご確認ください。
/*
コンピュータとSoftSerialシールド間のリンク
9600 bps 8-N-1で通信
コンピュータはハードウェアUARTに接続
SoftSerialシールドはソフトウェアUART:D2&D3に接続
*/
#include <SoftwareSerial.h>
SoftwareSerial SoftSerial(2, 3);
unsigned char buffer[64]; // シリアルポート経由で受信するデータ用のバッファ配列
int count = 0; // バッファ配列のカウンタ
void setup()
{
SoftSerial.begin(9600); // SoftSerialのボーレート
Serial.begin(9600); // Arduinoのシリアルポートのボーレート
}
void loop()
{
// ソフトウェアシリアルポートからデータが来ている場合 ==> SoftSerialシールドからデータが来ている
if (SoftSerial.available())
{
while(SoftSerial.available()) // データをchar配列に読み込む
{
buffer[count++] = SoftSerial.read(); // 配列にデータを書き込む
if(count == 64)break;
}
Serial.write(buffer, count); // データ送信が終了していない場合、バッファをハードウェアシリアルポートに書き込む
clearBufferArray(); // 配列に保存されたデータをクリアするためにclearBufferArray関数を呼び出す
count = 0; // whileループのカウンタをゼロに設定
}
if (Serial.available()) // ハードウェアシリアルポートにデータがある場合 ==> PCまたはノートブックからデータが来ている
SoftSerial.write(Serial.read()); // それをSoftSerialシールドに書き込む
}
void clearBufferArray() // バッファ配列をクリアする関数
{
// 配列のすべてのインデックスをNULLでクリア
for (int i=0; i<count; i++)
{
buffer[i]=NULL;
}
}
- ステップ 2. シリアルモニタを開くと、カード情報が以下のように表示されます:
Wiegandモード
(ジャンパーを右側の2つのピンに設定)
このモードに入るには、ジャンパーを「W」に設定する必要があります。
Seeeduino用のWiegandデモコードは、割り込みモードでWiegandデータを読み取るように設計されています。
Wiegandモードでは、出力データは26ビットでフォーマットされており、24ビットのカード情報と2ビットのパリティが含まれています。
ビット | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
- | PE | D | P0 | |||||||||||||||||||||||
- | - | E | 0 | - | ||||||||||||||||||||||
- | - | D2[7..0] | D1[7..0] | D0[7..0] | - |
- PEは偶数ビット、P0は奇数ビットです。
- Eは偶数に関与するデータビット、Oは奇数に関与するデータビットです。
- DX[7..0]は、Mifare@ Standard & Lightカードの読み取り専用IDに対応するデータビットです。
よくある質問(FAQs)
Q1: 出力をカード番号に変換する方法は?
A1: 以下の手順に従ってください。
- 例としてID: 0009776930を使用します。
- カード番号ID: 0009776930 ------- 10進数 [スタートビット(00) + カード番号(8桁)]
- 出力: 0700952F229F ------------- 16進数 [スタートビット(07h) + カード番号(8桁) + チェックサム]
- 10進数と16進数の変換にはオンラインの計算機が利用可能です。
Q2: タグを連続して読み取る方法は?
A2: RFIDリーダーは設定なしでタグを連続して読み取ることができます。タグをアンテナから2.5〜4cmの距離に保つと、リーダーはデータを連続して読み取ります。距離が2.5cm未満の場合、タグを動かさない限りリーダーはデータを1回だけ読み取ります。
リソース
- [デモ] Grove - 125KHz RFID Reader デモ
- [PDF] 適合宣言書
- [PDF] テストレポート
プロジェクト
Cayenne を使用した Arduino ベースのセキュリティプロジェクト: Arduino を使用したホームセキュリティプロジェクト。侵入者が検知された際に SMS/メールアラートを送信。認証済みの担当者には個別のメッセージを送信。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご用意しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。