ラズパイ(rapsbery pi)に赤外線の外部ユニットを接続し、赤外線リモコンで操作する各種家電をラズパイからコントロールできるようにする。
最終的には、これをGoogleNest(Home)から指示できるように連携するようにする。
環境
ラズパイと赤外線リモコン を購入する。
python でプログラムを作成する。
raspi連携の赤外線リモコンをコントロールするためのpythonツールが提供されています。
こういうものもあるようです。
ソースコード
提供されているpythonツールを少しアレンジさせてもらって、赤外線情報データのファイルを渡すと、赤外線送信するようにしたものを作成する。
赤外線情報データの作成方法は、こちら。
#!/usr/bin/python3
#coding: utf-8
#
# ビット・トレード・ワン社提供のラズベリー・パイ専用 学習リモコン基板(型番:ADRSIR)用のツール をベースにさせていただいております。
import os
import smbus
bus = smbus.SMBus(1)
# This must match in the Arduino Sketch
SLAVE_ADDRESS = 0x52
data_numH = 0x31
data_numL = 0x32
data_numHL = [0x00,0x31,0x32]
data_num = 10
memo_no = 0
block = []
#command
W2_data_num_write = 0x29 #bus-write(ADR,cmd,3)
W3_data_write = 0x39 #bus-read(ADR,cmd,n)
T1_trans_start = 0x59 #bus-write(ADR,cmd,1)
def trans( filename ):
f = open(filename,'r')
block2 = f.read()
f.close()
str_tmp = ""
int_tmp = []
for i in range(len(block2)//2):
str_tmp = block2[i*2] + block2[i*2+1]
int_tmp.append( int(str_tmp, 16))
data_num = len(int_tmp)//4 #for test
data_numHL = [0x31,0x32] #for test
data_numHL[0] = data_num//256
data_numHL[1] = data_num%256
bus.write_i2c_block_data(SLAVE_ADDRESS, W2_data_num_write , data_numHL) #=
data_numHL = [0x31,0x32,0x33,0x34] #for test
for i in range(data_num):
data_numHL[0] = int_tmp[i*4+0]
data_numHL[1] = int_tmp[i*4+1]
data_numHL[2] = int_tmp[i*4+2]
data_numHL[3] = int_tmp[i*4+3]
bus.write_i2c_block_data(SLAVE_ADDRESS, W3_data_write , data_numHL) #=
memo_no = [0x00 ] #for dummy
bus.write_i2c_block_data(SLAVE_ADDRESS, T1_trans_start,memo_no ) #=
この実装をしておけば、このようにSlackからの指示と連携させることができる。
コメント