コロナウィルス時代のリモートカメラ

投稿者: | 3月 1, 2020

中国の動画とかみているとやたら、FaceTimeやSkypeなどでテレビ電話をしている。こういうときやっぱり顔をみて話したい。
一方、ないとは思うが入院とかしちゃったとき。。。家に帰りたいが帰れない。。。家を覗いてほっとしたい。
実は結構簡単な方法で実現可能なんです。家にライブカメラを置いて、そとから覗く方法。緊急で記載しているので、体裁、説明不足は申し訳ない。

こんな環境。つまりAppleTVとかiPad、あるいはHomePadがある家ならラズパイとカメラだけで簡単に実現。

Blog1

 

改めて、必要な構成と環境。以下が最終的な環境

Blog2

つまり、ラズパイとカメラを置けばOK。全てを同じセグメントに置くことというのは、Appleの仕様だから使えているのであれば別に気にすることはないと思う。Apple TVは、画面機能を使っているわけではないのでテレビに接続されていなくても動く。(何のためのApple TVかはわからないけどw)

必要なもの

インターネット回線(当たり前)

以下のうち、1つ以上のデバイス
Apple TV
   Apple TV HD以降。第3世代はダメ。TVOSは13にしておく。設定は不要

HomePod
   最新のOSにしておく。設定は不要
iPad
  iPadOS13が使えるもの。電池が切れないように常に充電しておく必要がある。また、これだけ設定が必要。
ホームでホームハブを有効にしておく。 

E780F2C8 28C3 4A5E B576 445E74106B14

とにかく家のWIFIなどで使える状態にしておけばいい。HomePodはWifiが外れるときがあるし、iPadは、最初のアクセスはスリープから復帰するのに時間がかかるので2回目のアクセスで動作する。手軽さ、価格、サイズもApple TVがお勧め。
  
上記のうち2台あると1台がマスターでもう1台がスタンバイになる。iOSのホームアプリで、Apple TVやHomePadは表示されるので確認をしておく。iPadは表示されないので注意。

 

ラズパイ関連で必要なもの

 

Raspberry Pi
 Raspberry Pi 2以降ならいいかも。Zeroとかはもしかしたらパワーが足りないかもしれません。
ケース
 まぁ、裸だと不格好だし。自分のはカメラだけダラーんと出ています。
Raspbery Pi用の電源アダプタ
 これは説明不要
SDHCカード 4GB以上
 録画はしないので、それほど容量はいらない。

面倒ならこんなキットもあり。

Raspbery Piの純正カメラ
 USBカメラでも動くかもしれないけど。。。純正カメラはかなり高解像度
 Rasbery Piについているカメラコネクターに接続しておく。

トータルで1万円くらいできると思う。

 

ラズパイの構築

ここが一番面倒?な作業かもしれない。ただ、ほぼコピペで動く状態で記載するので難しいことはないと思う。

OSは、Raspbianを使う。詳しくはここを参照

流れは、Cameraの設定、HomeBridgeのインストール、Homebridgeの設定となる。

1. Cameraの設定

以下のコマンドを実行

sudo -i
cat << ‘EOF’ >> /boot/config.txt

#Camera Only
start_x=1
gpu_mem=128
gpu_mem_512=128
EOF
cat << ‘EOF’ >> /etc/modules
bcm2835-v4l2
EOF
sudo modprobe bcm2835-v4l2

いったん再起動

再起動後、カメラが利用可能になっているかを確認。
vcgencmd get_camera
supported=1 detected=1と返ってくればOK。

 

2. HomeBridgeをインストール

ここが一番面倒。なかなかうまくいかない箇所
以下のコマンドを実行する。

sudo -i
cd
apt -y install libavahi-compat-libdnssd-dev git pkg-config autoconf automake libtool libx264-dev libomxil-bellagio-dev

git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
./autogen.sh
./configure –prefix=/usr/local –enable-shared –enable-static
make -j4
sudo make install
sudo ldconfig
cd ..

git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
./configure –prefix=/usr/local –arch=armel –target-os=linux –enable-omx-rpi –enable-nonfree –enable-gpl –enable-libfdk-aac –enable-mmal –enable-omx –enable-libx264 –enable-decoder=h264 –enable-network –enable-protocol=tcp –enable-demuxer=rtsp
make -j4
sudo make install
cd ..

v4l2-ctl -d 0 –set-fmt-video=width=640,height=480 –set-parm=10
usermod -a -G video homebridge

mkdir homebridge
cd homebridge
wget https://nodejs.org/dist/v12.14.0/node-v12.14.0-linux-armv7l.tar.xz
tar -xvf node-v12.14.0-linux-armv7l.tar.xz
cd node-v12.14.0-linux-armv7l/

sudo cp -R * /usr/local/
cd ..
rm -rf node-v12.14.0-linux-armv7l/
cd
node -v
sudo npm install -g homebridge –unsafe-perm
cd /usr/local/lib/node_modules/homebridge
npm install –unsafe-perm mdns
npm install -g homebridge-camera-ffmpeg
npm rebuild –unsafe-perm
mkdir /var/homebridge
useradd –system homebridge –home-dir /var/homebridge
chown homebridge:homebridge /var/homebridge/

 

2. HomeBridgeの設定

設定ファイルをいくつか編集する。

vi /etc/default/homebridge
# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more
# You can display this via systemd’s journalctl: journalctl -f -u homebridge
# DEBUG=*

vi /etc/systemd/system/homebridge.service
[Unit]
Description=Node.js HomeKit Server
After=syslog.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Homebridgeの設定をhomebridgeユーザで作成する。
su homebridge -s /bin/bash

usernameは、ラズパイのMACアドレスにしておく。特に意味はないかもしれないけど。
ip aで表示されるので、それを記載
pinは、iOSのHomeアプリで登録するためのpinなので忘れないようにしておく。

vi /var/homebridge/config.json
{
“bridge”: {
“name”: “Homebridge”,
“username”: “B8:27:EB:XX:YY:ZZ”,
“port”: 51826,
“pin”: “031-46-100”
},
“description”: “HomeBridge”,
“accessories”: [],
“platforms”: [{
“platform”: “Camera-ffmpeg”,
“cameras”: [{
“name”: “piCam”,
“uploader”: false,
“videoConfig”: {
“source”: “-re -f video4linux2 -i /dev/video0”,
“stillImageSource”: “-re -f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1”,
“maxStreams”: 2,
“maxWidth”: 1920,
“maxHeight”: 1080,
“maxFPS”: 30,
“vcodec”: “h264_omx”
}
}]
}]
}

iOSでホームアプリから登録

キャプチャはあまりないのだが、ここでデバイス を登録する。ホームアプリで自動登録ができないので、Homebridgeの設定で記載したPinコードを(この場合は、031-46-100)を入力する。

UntitledImage

UntitledImage

登録が完了すれば画面は見えるようになる。スリープに入っているかもしれないので、何回か表示させてみるとリアルタイムで映る。

設置場所はこんな感じ。テレビの下がおすすめ。どうせ食いついているのでw

UntitledImage

 

 

 

 

カテゴリー: 未分類

コメントを残す