3
3

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.

クルマにバックカメラと液晶モニタを取り付けてみた:GL-AR150/OpenWRTとAmazon Dash ButtonとUSBハブを使って

Posted at

はじめに

クルマなんて動けばいい、少し前までそんなふうに思っていました。
最近老朽化でしかたなく車を買い替えたのですが、中古車購入で装備も十分とは言い難い状態、最初のうちは何も気にせず運転していました。
巷ではあおり運転が社会問題化、それで念の為フロントとリアに安価なドライブレコーダを取り付けたんですが、それがきっかけで少しクルマに興味を持ち始めたみたいです。

私も結構な年齢になってバックする時に少し不安があるので、まずはバックカメラと液晶モニタを取り付けることにしました。と言っても、バックライトからバックカメラの電源を取ったり、内装を剥がして配線とか怖くてできないので、もっとゆるい感じでの実装です。

せっかくなのでクルマのIoT化を少し意識したシステム構成にしてみました。

システム構成

  • 電源供給はUSBポート5Vですが、12V対応機器があるので、5Vを12VにDC/DC変換しています。
  • ダヴ Dash Buttonを押すと、30秒だけバックカメラの映像を液晶モニタに映します。
  • GL-AR150/OpenWRTから電源連動節電機能付きUSBハブをON/OFFして、バックカメラの電源制御をします。液晶モニタはバックカメラのON/OFFに連動します。
  • システム設定中はインターネット接続環境が必要ですが、済んでしまえばインターネット接続環境は必須ではありません。
商品名 購入時価格 数量 小計 備考
1 DBPOWER バックカメラ 高画質防水等級IP67/IP68 170度広角レンズ480TVL 車載カメラ 1,090円 1個 1,090円
2 LANMU USB 5V-9V/5V-12V DC電源供給ケーブル 電源ケーブルUSB→DC(外径5.5mm内径2.1mm) 799円 1個 799円 バックカメラ用電源ケーブル
3 iBUFFALO USB2.0リピーターケーブル (A to A) 5.0m ブラックスケルトン BSUAAR250BS 867円 1個 867円 バックカメラ用USB延長ケーブル
4 iBUFFALO 電源連動節電機能付き 4ポートセルフパワーハブ ブラック BSH4AE12BK 1,081円 1個 1,081円 バックカメラON/OFF用USBハブ
5 【ノーブランド品】2系統の映像入力 12V車用 ミニオンダッシュ液晶モニター 4.3インチ バック切替可能 1,340円 1個 1,340円
6 POWSEED 車載充電器 12W 3V 4.5V 5V 6V 7.5V 9V 12V 電圧自動調整 ユニバーサル カーチャージャー DCアダプター DC充電器 シガーソケットチャージャー シガーチャージャー メデラ パンプ スピーカー及びスマホ等マイクロUSBデバイスなど対応 交換代用電源アダプター (New Tips*8) 1,299円 1個 1,299円 液晶モニタ用電源アダプタ
7 GL-AR150 ar9331 150 150mbpsの無線lan無線ルータ無線lanリピータopenwrtのファームウェア外部/内部アンテナサポートpoeモジュール 2,612円 1個 2,612円
8 iBUFFALO 4ポート バスパワー スタンダードUSBハブ ブラック BSH4U25BK 546円 1個 546円 GL-AR150/OpenWRT USBポート増設用
9 Anker PowerDrive 2 (24W/4.8A 2ポート USBカーチャージャー) iPhone、Android、IQOS対応 (ブラック) 999円 1個 999円 GL-AR150/OpenWRT電源供給用
10 ダヴ Dash Button 100円 1個 100円 バックカメラON/OFF用
11 プレミアムレッド Dash Button 100円 1個 100円 GL-AR150/OpenWRTシャットダウン用
合計 10,833円

設置

バックカメラ(下)です。車内取り付けです。 液晶モニタです。
Dash Buttonです。車内で平面なところは意外と少ないです。 ダイソーで買ったクリアボックスに収納しています。助手席の足元に置いています。

GL-AR150/OpenWRTのhub-ctrlを使い、USBハブの電源制御を行います。

一時的にGL-AR150/OpenWRTをインターネットに接続できるようにします。どのような接続環境でも構いません。GL-AR150とL-02CでLTEモバイルルータを作ってみたを参考にどうぞ。それからパッケージhub-ctrlをインストールします。

hub-ctrlでUSBハブをポート単位で電源制御できるようになります。Per-port power switching仕様だとできますが、それに対応したUSBハブがなかなかありません。iBUFFALO 電源連動節電機能付き 4ポートセルフパワーハブ ブラック BSH4AE12BKだと、USBハブ単位で電源制御できるのでそれを利用することにしました。

参考:

:one: パッケージhub-ctrlをインストールします。

root@GL-AR150:~# opkg update
root@GL-AR150:~# opkg install hub-ctrl

:two: USBデバイスの情報を確認します。困ったことに iBUFFALO BSH4AE12BK(電源連動節電機能付きハブ)、iBUFFALO BSH4U25BK(ただのハブ) どちらも "Genesys Logic, Inc. Hub" と認識されます。iBUFFALO BSH4U25BK(ただのハブ) に iBUFFALO BSH4AE12BK(電源連動節電機能付きハブ) をぶら下げているので、"Hub #0 at 001:004"が iBUFFALO BSH4AE12BK(電源連動節電機能付きハブ) とわかります。

root@GL-AR150:~# lsusb
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 1004:618f LG Electronics, Inc. Ally/Optimus One
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@GL-AR150:~# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 5, If 0, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 5, If 1, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 5, If 2, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 5, If 3, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M

:three: iBUFFALO BSH4AE12BK(電源連動節電機能付きハブ) "Hub #0 at 001:004"のポートをON/OFFしてみます。どれか一つのポートをON/OFFすると、すべてのポートがON/OFFになります。
"-P 1"はポート1、"-p 1"はON、"-p 0"はOFFになります。

root@GL-AR150:~# hub-ctrl -v
Hub #0 at 001:004
 INFO: ganged switching.
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
Hub #1 at 001:002
 INFO: ganged switching.
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0503 highspeed power enable connect
   Port 4: 0000.0503 highspeed power enable connect
Hub #2 at 001:001
 INFO: individual power switching.
 WARN: Port indicators are NOT supported.
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect

root@GL-AR150:~# hub-ctrl -b 001 -d 004 -P 1 -p 1 
root@GL-AR150:~# hub-ctrl -b 001 -d 004 -P 1 -p 0

:four: iBUFFALO BSH4AE12BK(電源連動節電機能付きハブ)をON/OFFするスクリプト**/root/bin/usbhub-switch.sh**を作成します。

root@GL-AR150:~# mkdir -p /root/bin
root@GL-AR150:~# vi /root/bin/usbhub-switch.sh
/root/bin/usbhub-switch.sh
#!/bin/sh

HUB=`/usr/bin/lsusb -v 2>/dev/null | grep ^Bus | grep "Genesys Logic, Inc. Hub" | head -1`
BUS=`echo $HUB | awk '{print $2}'`
DEV=`echo $HUB | awk '{print $4}' | sed -e "s/\(.*\)\:/\1/p;d"`

for i in 1 2 3 4
do
    if   [ "$1" == "on"  ]; then
        /usr/sbin/hub-ctrl -b $BUS -d $DEV -P $i -p 1
    elif [ "$1" == "off" ]; then
        /usr/sbin/hub-ctrl -b $BUS -d $DEV -P $i -p 0
    fi
done
root@GL-AR150:~# chmod 755 /root/bin/usbhub-switch.sh

:five: GL-AR150/OpenWRTの電源投入時はiBUFFALO BSH4AE12BK(電源連動節電機能付きハブ)がONになるので、OFFにするよう初期スクリプト**/etc/init.d/usbhub-switch**を作成します。つまり液晶モニタには何も表示されないようにします。

root@GL-AR150:~# vi /etc/init.d/usbhub-switch
/etc/init.d/usbhub-switch
#!/bin/sh /etc/rc.common

START=99
STOP=99

boot() {
    echo boot
    /root/bin/usbhub-switch.sh off
}

start() {        
    echo start
}                 

stop() {          
    echo stop
}
root@GL-AR150:~# chmod 755 /etc/init.d/usbhub-switch
root@GL-AR150:~# /etc/init.d/usbhub-switch enable

ダヴ Dash Buttonを押すと、バックカメラの映像を30秒間液晶モニタに表示するようにします。プレミアムレッド Dash Buttonを押すと、GL-AR150/OpenWRTをシャットダウンするようにします。

参考:

:one: スマホのAmazonショッピングアプリでAmazon Dash Buttonの設定をします。

一時的にGL-AR150/OpenWRTをインターネットに接続できるようにします。
スマホもAmazon Dash Buttonも、Wi-FiネットワークでGL-AR150/OpenWRTのWi-Fiアクセスポイントを指定します。

具体的な設定方法はラズパイがないとAmazon Dash Buttonをハックできない、そんなふうに考えていた時期が私にもありましたの、【設定→:two:Amazon Dash Buttonのセットアップ】に書かれています。

:two: Amazon Dash ButtonのMACアドレスを調べます。

Amazon Dash Buttonを押すと、ARPテーブルにそのMACアドレスが登録されるので、それを控えます。どれかわからない場合はMACアドレス検索でチェックし、**Amazon Technologies Inc.**と出ればOKです。

root@GL-AR150:~# arp
IP address       HW type     Flags       HW address            Mask     Device
192.168.3.109    0x1         0x2         aa:aa:aa:aa:aa:aa     *        eth0
192.168.3.1      0x1         0x2         bb:bb:bb:bb:bb:bb     *        eth0
192.168.8.246    0x1         0x0         cc:cc:cc:cc:cc:cc     *        br-lan
192.168.8.247    0x1         0x0         dd:dd:dd:dd:dd:dd     *        br-lan

:three: Amazon Dash Buttonを押して、IPアドレスが新規割当または更新されたら、スクリプト**/root/bin/dnsmasq-script.sh**を実行するようにします。

root@GL-AR150:~# cp -p /etc/dnsmasq.conf /etc/dnsmasq.conf.org
root@GL-AR150:~# vi /etc/dnsmasq.conf
### Add 1 line at the end of the file ###
dhcp-script=/root/bin/dnsmasq-script.sh

:four: スクリプト**/root/bin/dnsmasq-script.sh**を作成します。

root@GL-AR150:~# vi /root/bin/dnsmasq-script.sh
/root/bin/dnsmasq-script.sh
#!/bin/sh

/bin/echo `/bin/date +"%F %T"` $* >> /tmp/dnsmasq.script.log

MAC_ADDR_DOVE="cc:cc:cc:cc:cc:cc"
MAC_ADDR_PREMIUM_RED="dd:dd:dd:dd:dd:dd"

if [ "$2" == ${MAC_ADDR_DOVE} -a "$4" == "WINC-00-00" ]; then
    /root/bin/usbhub-switch.sh on
    sleep 30
    /root/bin/usbhub-switch.sh off
elif [ "$2" == ${MAC_ADDR_PREMIUM_RED} -a "$4" == "WINC-00-00" ]; then
    /sbin/poweroff
fi
root@GL-AR150:~# chmod 755 /root/bin/dnsmasq-script.sh

:five: GL-AR150/OpenWrtを再起動し、ダヴ Dash Buttonを押したら、バックカメラの映像が液晶モニタに表示されるか確認します。更にプレミアムレッド Dash Buttonを押したら、GL-AR150/OpenWrtがシャットダウンされるか確認します。

root@GL-AR150:~# reboot

課題

  • これでバックカメラが使えるようになりましたが、やはりDash Button ひと押しなしが便利です。これを何とか自動化させたいです。

これから

  • GL-AR150/OpenWRTにL-02Cを繋げてLTE通信できる環境ができているので、まだまだいろんなことができそうです。(=^・^=)
3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?