Ger Koper’s blog
リモコンキーフォブはガレージのドアなどに一般的に使用されています。 また、車のドアの開放システムはそれらを使用します。 これらのデバイスのプロトコルは比較的標準的なようです。 ボタンの1つを押すと、一連の無線周波数(rf)パルスが送信され、その後ドア開口装置によって受信されます。 これらは、受信したコードシーケンスを内部に格納されたコードと比較し、ドアを開いたり閉じたりするときに等しくなります。 この原理は、照明の制御、気象観測所の情報の送信などにも使用されます。
この小さなレポートは、上記のように、いわゆるキーフォブの上にあります。 これらは現在、ウェブ上で豊富に利用可能です。 彼らは、彼らが別のキーフォブからプログラムすることができる機構を持っているという利点を持っています。 手順は比較的簡単ですが、いくつかの永続性が必要です:最終的には動作します:
- AボタンとBボタンを同時に押します。 LEDが点灯し、しばらくすると急速に点滅し始めます。 これは、キーフォブが消去され、ボタンを離すことができることを示します。
- いずれかのボタンを押すと、LEDは非常に短く一度だけ点滅します。 これは、コードが送信されないことを示します。
- これを”空の”キーフォブ番号1と呼びましょう。 コピーしたいキーフォブは2番です。
- キーフォブ2からキーフォブ1ボタンY(A、B、C、またはD)に、ボタンXのコードをコピーします。キーフォブ2の
- 押しボタンXはコード順序を送信していることを示すために、LED絶えず燃えます。
- キーフォブ1の押しボタンYは、そのLEDが最初の短い点滅を与え、その後オフのままになります。
- キー1のLEDが点滅し始めるまで、ボタンを押したままにしながら、二つのキーフォブを持ってきて、通常は前から前に押しますが、他の位置も動作することがあります。 その後、ボタンが解放されることがあります。
- キーフォブ1のNowボタンYを押すと、LEDが連続して点灯し、コードを送信していることを示します。 すべてがうまくいった場合、このコードはまた、キーフォブ2によって制御されたドアを活性化します。
- これは四つのボタンすべてに対して繰り返すことができます。 二つの異なるボタンのための同一のコードはまた、キーが文句を言うことはありません、プログラムすることができます。
注意すべき重要なのは、同様に見ているキーフォブは、類似しているにもかかわらず、異なるプロトコルを持つ可能性があることです。 必要に応じて、販売者の指示に従ってください。
上記のキーフォブの二つのボタンから制御できる二つのリレーを含む制御ユニットを購入することもできます。 これらの単位はまた前もってプログラムされた主フォブと来るがプログラムされる必要がある。 単位に制御モードを置くディップセレクターがある。 ここでは、単一のボタンがオンとオフの両方を切り替えることを使用します。 単位にリレーの隣にあり、リレーの状態を示す2つのLED’sがある:オンまたはオフ。 制御ボタンの近くに別のLEDがあります。 キーフォブからコード化されたrf信号を受信すると点滅します。
工場からエンコードされたコードとは異なるコードで動作したい場合は、次のように進みます
- LEDが点滅するまでボタンを押すとコードが消去されます。
- コードが受信されたことを示すためにLEDが点滅することがありますが、キーはリレーを切り替えることができなくなりました。
- ユニットのボタンを押すと、ユニットがプログラミングモードになり、LEDが点灯します。
- 最初にキーフォブを押して、リレー Aを制御するボタンを押します。 ボタンを離します。 LEDは点灯したままです。
- 今すぐキーフォブを押して、リレー Bを制御するボタンを押します。
- ユニットがプログラムされました。 二つのボタンを押すとリレー AとBがアクティブになります。
- 同じボタンを二度押すとリレー Aのみがプログラムされることに注意してください!
キーフォブとユニットで完全に異なるコードを使用するのは興味深いかもしれません。 そのようなものはgeorge7378によって書かれたinstructableによってRaspberry Piのために記述されています。 ボタンコードのトレースの例を以下に示します。
rf信号は、”ハイ”時間(通常は約0.5ms)の間にオンになり、”ロー”信号(約1ms)の間にオフになります。 これらのシーケンスは、約10msの間隔で繰り返されるため、ボタンを1秒ほど押すことによって数百のコードシーケンスが送信されます。 コードは簡単に読み取ることができ、短いハイの後に長いローが続くとバイナリ1と解釈されますが、長いハイの後に短いローが続くとバイナリ0と解釈されます。 したがって、バイナリ符号列は25ビット、ここでは1111 0000 0101 0110 0101 1110 1で構成されます。 これらの25ビットで可能な225=33,554,432の異なるコードがあります。
上記のinstructableで説明されている小さなPythonプログラムでは、独自のコードを入力するのは比較的簡単です。 17,2MHzの送信機に433cmのアンテナを使用すると、キーフォブのコーディングが非常に簡単になります。 特に、シーケンスの繰り返し回数を大きくする場合、つまりnum_ATTEMPTSを10から100に変更します。
この25ビットシーケンスではすでに多くの異なるコードが可能ですが、ビット数、”高”時間、”低”時間、繰り返し時間を自由に変えることができると想像すれば、 使用されるタイミングとコードには制限がありますが、特定のセットには多くのバリエーションが残っています。
instructableで説明されているプログラムに関するいくつかの発言。
- 送信と受信に同じGPIOポートを使用します。 両方のユニットを同時に接続できるように、異なるものを持つ方が簡単であることがわかりました。
- 最初の行でコード
#!/usr/bin/python
を使用し、たとえば
chmod +x TransmitRF.py
で実行可能にすると、プログラムを
./TransmitRF.py a_on
として単純に呼び出し、その操作を繰り返すことができます。ReceiveRFを使用するのではなく、
- 。py、キーフォブからコードシーケンスを読み取るためのプログラムは、私はSaleaeから私のロジック4デジタル+アナログロジックアナライザを使用することを好 これは、データを分析する際にはるかに自由を与えます。