ラズパイ に 赤外線機能 を追加する

ラズパイ(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からの指示と連携させることができる。

コメント

タイトルとURLをコピーしました