4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SiriとRaspberryPiの連携によるテレビの電源オン・オフを実現する

Posted at

#この記事の概要

SiriショートカットのSSH機能を用いてRaspberryPi経由で、音声により確実なテレビの電源オン・オフを実現する。
Siriを利用するがSSHが使える環境であれば、iPhone以外でも利用可能であると考える。

NatureRemoなどの赤外線を利用するコントローラでテレビ電源のオン・オフを行う場合、オン・オフが同じ赤外線信号を利用しているため、確実な電源オン・オフができない。

赤外線を利用する場合は電源をオフにしたい場合でも、テレビの電源が元からオフになっていると、オンになってしまうという欠点がある。

テレビが電源オン・オフの状況に関わらず、常に確実な電源オン・オフを実現するようにする。

#環境

  • iOS 12.4.1
  • Raspberry Pi zero WH(Raspbian 10.0)
  • REGZA J8
  • Siriショートカット(App Storeでインストール)

#前提条件

  • ネットワークに繋がった状態のRaspberryPiの準備
  • HDMI CECに対応したテレビ(HDMIの連動機能を備えたテレビ。最近のテレビであればほとんどのものは対応)

#設定方法
##Raspberry Piの設定
###ネットワーク設定

  • DHCPにより払い出されているIPアドレスの確認

ifconfig
下記ではWifiを使用しているのでwlan0の中の
inet 192.168.11.60 netmask 255.255.255.0
をメモしておく

Raspbian
pi@raspberrypi:~ $ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.60  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::f02d:e7a5:404c:e957  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:40:8b:b7  txqueuelen 1000  (イーサネット)
        RX packets 8516  bytes 2877130 (2.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 158  bytes 31002 (30.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • デフォルトゲートウェイを調べる
    route
    下記では192.168.11.1がデフォルトゲートウェイに当たる
Raspbian
pi@raspberrypi:~ $ route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         192.168.11.1    0.0.0.0         UG    302    0        0 wlan0
192.168.11.0    0.0.0.0         255.255.255.0   U     302    0        0 wlan0
  • nano /etc/dhcpcd.confを実行しテキスト編集する

#WLAN0
interface wlan0
static ip_address=192.168.11.60/24←上記で調べたIPとサブネットの記載
static routers=192.168.11.1←上記で調べたデフォルトゲートウェイを設定
static domain_name=8.8.8.8
static domain_name_servers=8.8.8.8

Raspbian
pi@raspberrypi:~ $ nano /etc/dhcpcd.conf

#WLAN0
interface wlan0
static ip_address=192.168.11.60/24
static routers=192.168.11.1
static domain_name=8.8.8.8
static domain_name_servers=8.8.8.8
  • 再起動

sudo reboot

###SSHの設定

Raspbian
sudo systemctl enable ssh
sudo systemctl start ssh

###cec-clientのインストール

Raspbian
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install cec-utils -y

##Raspberry Piとテレビの接続
テレビとRaspberry PiをHDMIにて接続

##Siriショートカットに登録
###テレビ電源オン用のショートカットを作成
コマンドには下記を記載
echo 'on 0' | cec-client -s

IMG_5373.PNG

###テレビ電源オフ
###テレビ電源オン用のショートカットを作成
コマンドには下記を記載
echo 'standby 0' | cec-client -s

IMG_5374.PNG

#参考サイト
Raspberry PiとテレビをHDMI接続してテレビのON/OFFを確認する

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?