3

Python スレッドで動作する 433MHz-Sender または -Receiver を取得する方法はありますか?

NinjablocksのものとAdafruitのものを試しました。しかし、問題は、これらがすべて c または c++ スクリプトであり、stdout に出力され、出力の終わりがないことです。また、Unix-FIFO を介してそれらをパイプしようとしましたが、プログラムを閉じる (Ctrl + C) までデータが送信されません。システムの最も重要な部分。

433 MHz 送信機/受信機は、Raspberry PI (バージョン B、Rev 2.0) の GPIO に接続されています。

私の目標は、いくつかの 433 MHz センサー (および i2c または spi 経由で接続されたいくつかのセンサーは既に動作しています) を取得することです。これは、いくつかのルールを計算する Python スクリプトで動作します (たとえば、リビングルームでモーションが検出されたとき、および日没と日の出の間、ライトをオンにする; 温度が 20°C を下回ったときに暖房をオンにするなど)

私は小さなプログラムを書きました:

import RPi.GPIO as io
data = [] * 10000
while not interrupted:
  data.append(io.input(rxPin))
  io.wait_for_edge(rxPin, io.BOTH

すべての Edge が認識されるため、コードは 1010101010101 のような出力を期待していました。私の次のステップは、エッジ間の時間を測定し、その時間に基づいて、それが短い 1/0 か長い 1/0 かを判断することでした (433MHz は、短い 1 長い = = 1 長い 1 短いようにエンコードされているようです)。 0 = 0 またはその逆) しかし、出力は次のようなものでした: 0110011001000000010110010 などなので、Python スレッドには 1 と 0 がいくつか欠けていると思います。

私のプログラムでワイヤレス入力を取得するアイデアはありますか?

4

1 に答える 1