Raspberry Piカメラが なかまになりたそうに こちらをみている。
(見ているのではなく、目の前の怪しい人を写してるだけ)
カメラモジュールを接続したRaspbbery Pi(以下、Piカメラと呼称致します)を、スマートフォンで操作したいと思います。
スマートフォンでカメラの映像を確認しながら、写真の撮影・動画の録画・タイムラプスの撮影が可能です。
いつでもどこでも、Wi-Fiアクセスポイントが無い屋外でも、スマートフォンで操作できるように、Raspberry PiをWi-Fiアクセスポイント(親機)として設定するところがポイントです。
Raspberry Piの機種はWi-Fi内蔵のRaspberry Pi 3を使用します。RaspbianはStretch版の設定方法になります。
スマートフォンで操作できるようにRaspberry Piを設定
RPi-Cam-Web-Interfaceのインストール
Raspberry PiへRPi-Cam-Web-Interfaceをインストールすることで、Webブラウザによるカメラの操作が可能になります。
- こちらの記事を参考に、RaspbianとRPi-Cam-Web-Interfaceをインストールします。
ご自宅など、Wi-Fiアクセスポイント(親機)がある場所で、スマトフォンから操作したい場合は、以上で設定完了です。
ここから先は、アクセスポイントが無い場所でも操作できるように、Raspberry PiをWi-Fi親機にする設定になります。
Wi-Fiに固定IPアドレスを設定
次に、Wi-Fiの子機設定を停止して、固定IPアドレスを割り当てます。
- /etc/wpa_supplicant/wpa_supplicant.confを編集します。networkの設定があれば、ssid, psk, key_mgmtの各行に#をつけて無効化します。
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf - PiカメラをWi-Fi親機にする場合のIPアドレスを決めます。プライベートIPアドレスを利用します。例として、次の内容で設定します。
- PiカメラのIPアドレス:172.20.0.1
- サブネットマスク:24ビット(255.255.255.0)
- /etc/dhcpcd.confを編集します。
sudo nano /etc/dhcpcd.conf次の1行を追加します。
denyinterfaces wlan0 - /etc/network/interfaces.d/iface-wlan0ファイルを作成します。
sudo nano /etc/network/interfaces.d/iface-wlan0allow-hotplug wlan0 iface wlan0 inet static address 172.20.0.1 netmask 255.255.255.0 network 172.20.0.0 broadcast 172.20.0.255 # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
※17.12.30変更:Raspberry PiをWi-Fiアクセスポイントにするこちらの記事を参考に、固定IPアドレスの設定方法を変更しました。こちらのほうがhostapdの動作が安定するようです。
hostapdとisc-dhcp-serverインストール
Wi-Fiアクセスポイント化にhostapd、スマートフォンへのIPアドレス配布にisc-dhcp-serverを使用します。
- apt-getでインストールします。
sudo apt-get install hostapd isc-dhcp-server
hostapdの設定
こちらの記事を参考に設定しました。
- /etc/hostapd/hostapd.confを作成します。
ssid, channel, wpa_passphraseを決めて入力します。sudo nano /etc/hostapd/hostapd.confinterface=wlan0 driver=nl80211 ssid=<piカメラを親機にする場合のssidを入力します> hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=<パスフレーズを入力します> - /etc/default/hostapdを編集します。DAEMON_CONFを設定します。
sudo nano /etc/default/hostapdDAEMON_CONF="/etc/hostapd/hostapd.conf"
isc-dhcp-serverの設定
- /etc/dhcp/dhcpd.confを編集します。domain-name,rangeは適宜変更して下さい。サブネットマスクが24ビットの場合、subnetはIPアドレスの4オクテット目を0にしたもの、IPbroadcast-addressは255にしたものになります。
sudo nano /etc/dhcp/dhcpd.confauthoritative; option domain-name "pi3cam.local"; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 7200; subnet 172.20.0.0 netmask 255.255.255.0 { range 172.20.0.128 172.20.0.191; option routers 172.20.0.1; option broadcast-address 172.20.0.255; } - /etc/default/isc-dhcp-serverを編集します。INTERFACESv4を設定します。
sudo nano /etc/default/isc-dhcp-serverINTERFACESv4="wlan0"
isc-dhcp-serverの起動に失敗する対策
※17.12.30追記:wlan0の固定IPアドレス設定の方法を変えたため、以下の11~15番の設定は不要です。動作が不安定な場合の参考情報となります。
これで再起動すれば完成!・・・と思ったら、isc-dhcp-serverがうまく起動しません。
原因は、固定IPアドレスの割当を行うdhcpcdよりも先にisc-dhcp-serverが起動してしまい失敗しているようです。
systemdで依存関係を設定すれば良さそうですが、isc-dhcp-serverはinit.dで起動するために、依存関係を設定するのに手間がかかるようですが・・・・
こちらの記事を参考に、isc-dhcp-serverの起動に失敗した場合、自動再起動するようにsystemdの設定を行いました。
- Raspberry Piを再起動すると・・・isc-dhcp-serverの起動に失敗しているようです。再起動後、手動で起動するかどうか確認します。
sudo systemctl restart isc-dhcp-server - isc-dhcp-serverのsystemd設定ファイルを作成します。
sudo cp /run/systemd/generator.late/isc-dhcp-server.service /etc/systemd/system/ - /etc/systemd/system/isc-dhcp-server.serviceファイルを編集します。[Service][Install]セクションに次の内容を追加・変更します。
sudo nano /etc/systemd/system/isc-dhcp-server.service[Service] Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target - systemdの設定を反映し、isc-dhcp-serverのサービスを再登録します。
sudo systemctl daemon-reload sudo systemctl enable isc-dhcp-server.service - 再起動後、isc-dhcp-serverがちゃんと起動している事を確認します。

動作確認
Piカメラを起動するとWi-Fiアクセスポイントとして動作します。
スマートフォンにisc-dhcp-serverで設定したIPアドレスが割当られます。
WebブラウザからPiカメラにアクセスできます。IPアドレスを入力するか、Windows10やiPhoneの場合はホスト名.localでアクセスできるようです。
Wi-Fiを内蔵したRaspberry Pi 3の登場で、スマートフォンとRaspberry Pi 3を直接接続していろいろと操作できる時代になりました。
Raspberry Piとスマートフォンは、ともに電源ケーブルさえあれば動かし続けられます・・・複雑な配線から開放され、極めてシンプルになった印象です。
カメラ以外のデバイスをRaspberry Piに搭載して、スマートフォンで操作する場合にも、上記の設定は応用できそうです。
早速接続して、いろいろと遊んでみましょう!












コメントを残す