2020年最初の記事ですね。今年も色々作っていきます!

使用機材

pigpioの導入

まずはGPIOピンを制御するためにpigpioを導入

$ sudo apt install pigpio python3-pigpio

デーモンを起動する

$ sudo systemctl enable pigpiod.service
$ sudo systemctl start pigpiod

赤外線学習用のコードをダウンロード

終わったら赤外線学習用のコードをダウンロードする。

$ curl http://abyz.me.uk/rpi/pigpio/code/irrp_py.zip | zcat > irrp.py

なぜか私の環境だとタイムアウトするのでMacでダウンロード、unzipしてラズパイにscpした。

失敗した理由がわかりました。IP固定するために色々いじってた結果DNSサーバーの指定をしていなかった?っぽかったです。 多分このままでもうまくいきます。

配線

全景

ブレッドボード

配線細かく書きたいんですけどめんどくさいので割愛。写真見てなんとかしてください()

赤外線学習の準備

これで17ピンを出力に、18ピンを入力に設定する。

$ echo 'm 17 w   w 17 0   m 18 r   pud 18 u' > /dev/pigpio

信号記録

$ python3 irrp.py -r -g18 -f codes air_con:on --no-confirm --post 50
オプション 意味
-r 受信した信号を記録するモード
-g18 GPIO18を使って信号を受信する
-f codes 受信した信号を出力するファイル名を指定する
–no-confirm 確認のために同じ信号を2回要求しない
–post 50 50ms無信号の場合に信号が終わったと判断する
air_con:on 信号の識別子。わかりやすい名前をつける

参照元 : エアコンのリモコン信号を解析する ~デコード編~ - Qiita

信号発信

このコードだけネット上に落ちていたので参照先がなく、曖昧です。

$ python3 irrp.py -p -g17 -f codes air_con:on
オプション 意味
-p 送信モード?
-g17 GPIO17を使って信号を発信する?
-f codes 発信するファイル名を指定する
air_con:on 信号の識別子。さっきのやつ