最短翌日発送!高速大容量のモバイルWi-Fiルーターの詳細はこちら
DIY・電子工作

Raspberry Pi Zeroで簡易ドライブレコーダーを自作する

Raspberry Pi Zeroで自作したドライブレコーダーを設置した車 DIY・電子工作

※この記事には広告(アフィリエイトリンク)が含まれますのであらかじめご了承ください。

Raspberry Pi Zero WHで簡易的なドライブレコーダーを自作してみました。

ドラレコは既製品でも安価なものなら1万円以下で手に入ります。しかしそんなに頻繁に運転するわけでもないですし、特別ドラレコが欲しいというわけではなかったんですよね。

ただまあ今時ドラレコを搭載していないのも如何なものかと思わなくもないですし、ラズパイの中でももっとも安価なRaspberry Pi Zeroなら既製品よりも低コストで作れそうですし。何よりもコロナ禍で暇を持て余していたので、遊びと実益を兼ねて自作することにしました。

Raspberry Pi Zeroは流通量が少なく手に入れにくいのがネックですが、これなら最安3,000円程度で作れます。単純に録画したり監視カメラとして使用するだけなら、Raspberry Pi Zeroのスペックでも十分です。

実装する方法や搭載する機能はいろいろ考えられますが、とりあえずこの記事ではシンプルで簡単な作り方をまとめておきます。

スポンサーリンク
スポンサーリンク
  1. ラズパイでドライブレコーダーを自作するメリット
    1. 既製品を購入するよりも安価で作れる
    2. オリジナルのドラレコを作れる
    3. 不要になったら他の物に作り替えられる
  2. ラズパイでドライブレコーダーを自作するのに必要な物
    1. 絶対に必要な物
      1. Raspberry Pi Zero(無印/W/WH):660円~2,100円程度
      2. 32GB microSDHC:700円~3,000円程度
      3. Raspberry Pi Zero用カメラモジュール:800円~4,000円程度
      4. Raspberry Pi Zero用ケース:660円~2,000円程度
    2. 必要に応じて用意する物
      1. USBカーチャージャー
      2. モバイルバッテリー
      3. Raspberry Pi Zero固定用のスマホスタンド
  3. Raspberry Pi Zeroに接続したカメラで動画を撮影する
    1. カメラのデバイスファイルや対応フォーマットを確認する
    2. raspividコマンドで動画を撮影する
    3. raspividコマンドで動画を撮影するシェルスクリプトを作成する
    4. systemdでOS起動時にスクリプトを自動実行させる
      1. 自動実行させたいスクリプトを作成する
      2. ユニットファイルを作成する
      3. ユニットファイルを有効化する
      4. Raspberry Pi Zeroを再起動して自動実行されるか確認する
    5. Raspberry Pi Zeroをシャットダウンして安全に電源を切る方法
      1. GPIOピンの自作ボタンを取り付ける
      2. スマートフォンのテザリングでSSH接続する
      3. ラズパイをホットスポット化してSSH接続する
      4. UPSを搭載して自動的にシャットダウンさせる
      5. 遅延リレーを使用して自動的にシャットダウンする
  4. まとめ

ラズパイでドライブレコーダーを自作するメリット

実際にRaspberry Pi Zeroで撮影した動画がこちら。音声は録音しておらず、映像のみです。

ファイルサイズを抑えるためにビットレートを低めに設定していますが、これでも車間が狭くなれば前を走行している車のナンバープレートは十分捉えられるので、煽り運転をしてくるような輩には役立つのではないでしょうか。画質を優先してビットレートを上げれば、もっと鮮明な動画を撮影することも可能です。

とは言っても、わざわざラズパイでドラレコを自作するメリットがあるのか疑問に思われる方もいるかもしれません。

既製品を購入するよりも安価で作れる

Amazonだと、いわゆる【令和最新版】のような無名の中華製ドライブレコーダーが5,000円程度で手に入ったりしますが、それなりに名の通ったメーカーの製品なら最低でも1万円程度はします。後方も撮影可能なリアカメラ搭載機となるとさらに価格が上がるでしょう。

その点、ラズパイならドラレコ本体を最安3,000円以下で自作することが可能です。

まあ実際にはUSBで電源を取るためのカーチャージャーや、車に取り付けるための器具も必要だったりしますが、最大でも8,000円くらいに見積もっておけば十分。手持ちの物が流用できれば、持ち出すお金はこれよりも少なく済みます。

オリジナルのドラレコを作れる

既製品だと仕様の範囲内の使い方しかできませんが、自作なら自由に機能を追加することができます。

例えばモバイルバッテリーから電源を取ることで運転中以外も監視カメラとして録画したり、あるいはWi-Fi経由で離れた場所にいてもリアルタイムで映像を見れるようにすることで、駐車中のセキュリティ対策に利用することも可能です。またUSB接続のWebカメラを増設すれば後方の撮影も可能になります。

もっと言えば音楽再生や音声アシスタントなど、普通のドラレコにはないような機能を追加することだって可能です。

私はUSBモデムを使ってLTE通信を可能にし、ドライブレコーダー兼モバイルWi-Fiルーターとして運用しようと画策していたりします。USBモデムは中古品を購入しましたが、これで車内にWi-Fi環境まで超格安で構築することができました。

Raspberry PiでUSBモデムのL-03Fを使用してLTEで通信する方法
車内でWi-Fiを利用するために当初はモバイルWi-FiルーターのFS030Wを車載してみましたが、電源がなかなかエンジンと連動してくれず。自動起動に失敗することが多いので、他の方法をいろいろと模索していたのですが。 ホームルーターのWiM...

ハードな使い方をするならRaspberry Pi 3Bや4Bといった上位モデルのラズパイを採用する必要はありますが、自作ドラレコの可能性は無限大と言っても良いでしょう。

不要になったら他の物に作り替えられる

実際に作って使ってみたけど満足できなかった、あるいは既製品に買い替えて不要になったというような場合、ラズパイならドラレコ以外の物に作り替えることができます。

最安構成なら3,000円もかからないですし、もし要らなくなったとしても無駄になるものはほぼありません。

既製品のドラレコは要らなくなったら基本的に丸ごと売るか捨てるかしかないですからね。そこまで必要性を感じていないけど試しに設置してみたいという場合、ラズパイで自作してみるのはアリな選択肢だと思います。

ラズパイでドライブレコーダーを自作するのに必要な物

ラズパイシリーズの中でも1番性能が低くて1番安価なRaspberry Pi Zeroを使用する前提で、ドラレコを自作するのに必要な物と費用の目安をざっくりとまとめておきます。

絶対に必要な物

ドラレコとして動かすために絶対必要な物、あるいは絶対ではないけどほぼほぼ必要な物は4つあります。

Raspberry Pi Zero(無印/W/WH):660円~2,100円程度

Raspberry Pi Zeroは税込660円から販売されています。ただし無印のRaspberry Pi ZeroはWi-FiやBluetoothといった無線機能が搭載されていないので、使い勝手はあまりよくありません。

遠隔で操作したり常時録画以外の使い方をしたいなら、無線機能が搭載されているRaspberry Pi Zero WやRaspberry Pi Zero WHの採用をおすすめします。

Wは無印に無線機能が搭載されたもの。WHはWにピンヘッダ、GPIOコネクタが搭載されたものです。

基本的にはWで十分、むしろケースへの収めやすさのことを考えるとWが良いのですが、Wは人気のため手に入れにくいかもしれません。

まあZero系で1番高価なRaspberry Pi Zero WHでも2,000円強で手に入るので、初めてマイコンを触るなら無印よりはWHを購入しておくのが無難でしょう。

32GB microSDHC:700円~3,000円程度

Raspberry Pi Zeroを動かすためにはOSを入れるmicroSDカードが必要です。

録画したデータも保存しないといけないのでなるべく大容量のmicroSDカードを採用したいところですが、Raspberry Pi Zeroの対応フォーマット的にmicroSDHC規格しか使えないため、容量は基本的に最大32GBとなります。

32GBより大容量のmicroSDカードはmicroSDXC規格となり、そのままだとRaspberry Pi Zeroでは扱えません。microSDXC規格でもmicroSDHCと同じFAT32にフォーマットしてやれば使えないことはありませんが、若干イレギュラーな使い方なので注意してください。

32GBのmicroSDHCなら国内正規品でも最安700円程度で購入可能です。

なお、がっつり使用するならドラレコ向けを謳っている耐久性が高い製品の採用をおすすめします。特にフラッメモリのタイプについてはTLCではなくMLCのものを選びましょう。

SDカードの寿命、つまり書き換え可能な回数について、一般的にTLCは約1,000回とされていますが、MLCはその10倍の約1万回とされています。少々価格が高くてもMLCの製品のほうが長く使えてコスパで上回るはずです。

私はTranscendのTS128GUSD350V-Eを使用しています。書き込めるデータ容量で寿命を表すTBWは最大170TB、フルHDで約30,000時間録画することが可能な計算です。

Raspberry Pi Zero用カメラモジュール:800円~4,000円程度

映像を録画したりストリーミングで配信するならカメラが必要です。

ラズパイ向けの公式カメラモジュールV2の価格は4,000円近くしますが、互換品ならAmazonで800円程度から手に入ります。

なおUSB接続のWebカメラで代用することは可能ですが、Raspberry Pi ZeroだとMicroUSBに変換しないと接続できませんし、専用のカメラモジュールよりもフレームレートが出にくかったりするのでおすすめはしません。

AliExpressだと送料込み500円以下のカメラモジュールが大量に転がっているので、時間がかかっても安く仕入れたいなら海外通販も検討してみると良いでしょう。

私はAmazonとAliExpressでいくつかのカメラモジュールを購入してきましたが、互換品で採用されているイメージセンサーはほとんどがOV5647で共通しているので、基本的にはどれを購入しても画質に大きな違いはないかと思われます。

ただしV2や一部の互換品はSONY製のイメージセンサーIMX219を積んでいるので、画質を重視するならIMX219搭載カメラモジュールから選ぶのが良いでしょう。また用途的に広角レンズのものがおすすめです。

なおRaspberry Pi Zeroにカメラモジュールを接続する場合、Zero専用のフレキシブルケーブルが必要なので注意してください。つまりRaspberyy Pi 4や3向けのフレキシブルケーブルは使用できません。

後述する公式ケースを購入するならフレキシブルケーブルが1本付属しているので、別途購入する必要はないです。

Raspberry Pi Zero用ケース:660円~2,000円程度

Raspberry Pi Zeroをコンピューターとして動かすだけならケースは不要ですが、実際は車に取り付けるとなると何かしらの入れ物が必要でしょう。

特にこだわりがなければ公式ケースをおすすめします。安価ですし、Raspberry Pi Zeroで使用可能なフレキシブルケーブルが1本付属するので、ケースにカメラモジュールを内蔵するなら別途フレキシブルケーブルを購入する必要はありません。

ただしRaspberry Pi Zero WHを使用する場合はGPIOピンが干渉するため、そのままでは公式ケースにカメラモジュールを内蔵できないという問題があるので注意してください。

私は当初、ニッパーでGPIOピンを切断するという荒業で無理矢理ケースに収めました。Raspberry Pi Zero Wや無印ならこのようなことをしなくても済むのですが…

いろいろ探してみましたがRaspberry Pi Zero WHでカメラモジュールを内蔵できるケースは市販されていなさそうです…というわけで、公式カメラモジュールV2を内蔵可能なケースを3Dプリンターで自作してみました。

もしこのケースが欲しいという方がいれば、近日中にWebサービスを利用して提供できるようにするつもりなので今しばらくお待ちください。3Dプリンターを所有している方向けにSTLデータも公開する予定です。

必要に応じて用意する物

必要に応じて用意すべき物についてもまとめておきます。

USBカーチャージャー

Raspberry Pi Zeroを動かすためには電源として使用可能なUSBポートが必要です。

それほど電力は要求しませんが、カーナビに搭載されているような最大0.5Aしか流せないデータ通信用のUSBポートだと流石に不足する恐れがあります。

シガーソケットやアクセサリーソケットをUSBポートに変換するUSBカーチャージャーがあると安心です。上位モデルのRaspberry Pi 4だと3Aまで要求しますが、Raspberry Pi Zeroなら1Aも流せれば十分でしょう。

安価なUSBカーチャージャーなら1,000円以下で手に入ります。

モバイルバッテリー

電源としてUSBカーチャージの代わりにモバイルバッテリーを使用することも可能です。

USBカーチャージャーだと、基本的にはエンジンがONになっている運転中しか録画できません。一応エンジンOFFのまま電源を取る方法もなくはないですが、そうするとバッテリーが上がってしまう恐れがあるので何の対策も施さずにやるべきではないでしょう。

駐車中も監視カメラとして使いたいなら、モバイルバッテリーなど他の電源を用意するのが簡単です。

もっとも、システムがある程度完成するまではモバイルバッテリーで運用したほうが良いかもしれません。アクセサリーソケットから給電する場合、シャットダウン作業を行わずにエンジンを停止すると最悪ラズパイのシステムを破損してしまう恐れがあるからです。

ラズパイの扱いに慣れて安全にシャットダウンできる仕組みを整えてから、アクセサリーソケットから電源を取ることをおすすめします。

ちなみにパススルー充電に対応しているモバイルバッテリーなら、USBカーチャージャーと併用することでモバイルバッテリーを充電しながらRaspberry Pi Zeroに給電できるので、電源を落とすことなく長時間録画し続けることが可能です。

Raspberry Pi Zero固定用のスマホスタンド

ドラレコとして撮影するなら車に固定するための器具が必要ですが、これについてはスマートフォン用の車載ホルダーやスタンドを流用するのが便利です。

Raspberry Pi Zeroの長辺は7cm強、一般的なサイズのスマホの横幅と同じくらいなので、ほとんどの製品が流用可能かと思います。

当初私はEXEA EC-208を購入してみましたが、ダッシュボードとの接地面が曲がる素材でできているので、取り付け場所を選ばないものの振動には弱いです。撮った動画を観てみると酔いそうになるほどブレてました…

これでもドラレコとしての役割は果たしてくれますが、あまり気持ちの良いものではありません。また両面テープ的な素材で接着するため、貼り直すと接着力が落ちやすいのも難点でした。角度調整については文句なしなのですが。

そこで次に下記のマルチスタンド…と同製品と思われる、昔某メーカーのイベントで貰ったスマホスタンドを使用してみました。これだと角度の調整はしにくいですが、耐震ジェルでダッシュボードに貼り付けることでブレの軽減を図ることも可能です。

最終的には広角レンズ仕様のカメラモジュールを搭載することにしたので、カメラホルダーを3Dプリンターで自作して、カメラモジュールだけフロントガラスに取り付けられるようにしました。

フレキシブルフラットケーブルのままだとラズパイ本体から離れた場所に設置することは難しいので、ラズパイとカメラモジュールは変換基板を利用してHDMIケーブルで接続してあります。ただしこの変換基板はRaspberry Pi Zeroでは使えないので、3Bや4Bなどのラズパイを用意しなくてはいけません。

ここまですると結構コストがかかってしまいますが、興味がある方は以下の記事も参考にどうぞ。

Raspberry PiのカメラモジュールをHDMIケーブルで接続する
ラズパイに専用のカメラモジュールを接続するために通常はFFC、フレキシブルフラットケーブルを使用しますが、これが何かと使いにくいです。 私はラズパイで自作したドラレコにUSB型データ通信端末やUPSモジュールを搭載しているため、車内でも特に...

Raspberry Pi Zeroに接続したカメラで動画を撮影する

必要な物が揃ったら、実際に手を動かしてドラレコを作っていきましょう。

Raspberry Pi Zeroの初期設定については、下記の記事にまとめてあります。raspi-configでカメラ機能を有効化するところまで済ませてください。

Raspberry Pi OS、旧Raspbianのインストールと初期設定
新型コロナウイルスにかかる緊急事態宣言で外出を自粛していた頃、唐突にRaspberry Piで何かを作ってみたくなりまして。思い付きでドライブレコーダーを自作してみました。 そのRaspberry Pi Zero WHに実装したコマンドやら...

カメラのデバイスファイルや対応フォーマットを確認する

まず初めにカメラのデバイスファイルを確認しておきます。

下記のコマンドを実行して、使用するカメラのデバイスファイルを調べましょう。カメラを1台しか接続していなければ普通は/dev/video0かと思います。

$ v4l2-ctl --list-devices

mmal service 16.1 (platform:bcm2835-v4l2):
        /dev/video0

デバイスファイルを特定しておくと、下記のコマンドでサポートしている動画のフォーマットを表示することが可能です。

$ v4l2-ctl -d /dev/video0 --list-formats
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'YU12' (Planar YUV 4:2:0)
        [1]: 'YUYV' (YUYV 4:2:2)
        [2]: 'RGB3' (24-bit RGB 8-8-8)
        [3]: 'JPEG' (JFIF JPEG, compressed)
        [4]: 'H264' (H.264, compressed)
        [5]: 'MJPG' (Motion-JPEG, compressed)
        [6]: 'YVYU' (YVYU 4:2:2)
        [7]: 'VYUY' (VYUY 4:2:2)
        [8]: 'UYVY' (UYVY 4:2:2)
        [9]: 'NV12' (Y/CbCr 4:2:0)
        [10]: 'BGR3' (24-bit BGR 8-8-8)
        [11]: 'YV12' (Planar YVU 4:2:0)
        [12]: 'NV21' (Y/CrCb 4:2:0)
        [13]: 'BGR4' (32-bit BGRA/X 8-8-8-8)

ラズパイで動画を撮影する方法として、FFmpegを使用してリアルタイムでハードウェアエンコードする方法がよく紹介されていますが、特にRaspberry Pi Zeroだとフレームレートがあまり出ないのでドラレコには不向きな気がします。

しかしハードウェアエンコードなんてしなくても、H.264をサポートしているカメラモジュールを使用すれば、専用の動画撮影コマンドraspividを実行することで簡単にH.264動画を撮影することが可能です。

安価なUSB接続のWebカメラだとH.264をサポートしていなかったりしますが、私が確認した限りではラズパイ向けのカメラモジュールはどれもH.264をサポートしているので、基本的にraspividで録画することをおすすめします。

raspividコマンドで動画を撮影する

とりあえずraspividで動画を撮影する方法について確認しておきましょう。

もっともシンプルに書くなら、-oで出力ファイル名のみを指定してこのように記述します。なお指定した名前のファイルが既に存在する場合は実行に失敗するので注意してください。

$ raspivid -o test.h264

このように何も指定せずに実行すると5秒の動画ファイルが生成されます。

拡張子がH.264と扱いにくい形式ですが、一応このままでもVLCなどの動画プレーヤーで再生することが可能です。H.264からMP4に変換する方法については後述しますので、とりあえず撮影と再生に成功したならこのまま進めます。

撮影してみてカメラの向きが上下反転していた場合は-vf、左右反転していた場合は-hfを付け加えることで正常な向きに補正されるはずです。また-rotで角度を指定して回転させることもできます。

$ raspivid -o test.h264 -rot 180

正しい方向で撮影できるようになったら-wと-hで解像度、-tで撮影時間、-fpsでフレームレート、-bでビットレートを指定してみましょう。

$ raspivid -o test.h264 -rot 180 -w 1280 -h 720 -t 10000 -fps 30 -b 2000000

撮影時間はミリ秒で指定するため、-t 10000だと10秒の動画を生成します。ただし-t 0で時間を指定しなければずっと録画し続けることが可能です。Ctrl+Cで録画を停止します。

解像度やビットレートを上げれば高画質な動画を撮影できますが、それに比例してファイルサイズも大きくなるので注意しましょう。

この時点で既にRaspberry Pi Zeroはドラレコとして使えるような気がしますが、実際はraspividの実行中にWi-Fiから切断されるとコマンドラインが閉じられるために録画も停止してしまいます。車内にWi-Fi環境が整っている場合はともかく、そうでないならもう一工夫が必要です。

raspividコマンドで動画を撮影するシェルスクリプトを作成する

Raspberry Pi Zeroがネットワークから切断されてもraspividを停止しないようにするために、まずコマンドを実行するシェルスクリプトを作成します。

$ sudo nano test.sh

スクリプトの中身は1行目におまじないを入れて、後は基本的にコマンドラインに直接打ち込んでた内容をそのままコピペすればOKです。

ただせっかく自動的に実行させても、出力ファイル名が被ってると録画できません。そこで出力ファイル名が被らないように設定しないといけないわけですが、ここではdateコマンドを利用して日時で保存することにします。

#!/bin/sh

raspivid -o `date '+%Y%m%d-%H%M'`.h264 \
-rot 180 -w 1280 -h 720 -t 10000 -fps 30 -b 2000000

これならスクリプト実行時の日付時刻をファイル名として出力するので、出力ファイル名が被ることはまずあり得ないでしょう。

作成したスクリプトを実行するには

$ sh test.sh

を打ち込めばOKです。

スクリプトを実行して、コマンドラインに打ち込んだ場合と同じ結果が得られるか確認しておきましょう。

systemdでOS起動時にスクリプトを自動実行させる

作成したスクリプトをサービスとしてシステム管理デーモンのsystemdに登録します。

この設定を行っておくとRaspberry Pi Zeroの起動と同時にスクリプトを自動的に実行させることが可能です。

またSSH経由でスクリプトを実行した場合はSSH接続を切断するとスクリプトも停止してしまいますが、サービスとしてバックグラウンドで実行させておけばそんな問題も防げます。

自動実行させたいスクリプトを作成する

まずは自動実行させたいスクリプトを/optに作成します。

$ sudo nano /opt/test.sh

今回は録画時間を指定しないように記述してみます。

#!/bin/sh

raspivid -o `date '+%Y%m%d-%H%M'`.h264 \
-rot 180 -w 1280 -h 720 -t 0 -fps 30 -b 2000000

作成したらスクリプトに実行権限を与えておきます。

$ sudo chmod 0755 /opt/test.sh

ユニットファイルを作成する

このスクリプトをサービスとしてsystemdに登録するため、ユニットファイルを作成します。

$ sudo nano /etc/systemd/system/test.service
[Unit]
Description = test

[Service]
ExecStart = /opt/test.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

Descriptionはユニットファイルの説明です。これは自由に記述して構いません。

ExecStartに登録したいスクリプトを記述します。

Restartはalwaysを設定しておくことで、プロセスが不意に終了しても再起動させることが可能です。再起動する条件として異常終了した場合のみ、あるいは逆に正常終了した場合のみなどを設定することも可能ですが、通常はalwaysで良いでしょう。例外として後述するsystemctlコマンドで停止した場合のみ再起動されません。

Typeはプロセスの起動タイプを設定するオプションです。simpleがデフォルトで、メインプロセスとして登録します。

WantedByは弱く依存するユニットを記述します。噛み砕いて説明すると、multi-user.targetの起動時にtest.serviceの起動も試みてほしい、ということです。多くのサービスがmulti-user.targetに紐付いていて、OS起動時にまとめて実行されます。

ユニットファイルを有効化する

ユニットを定義できたら、サービスを有効化するために下記のコマンドを実行してください。

$ sudo systemctl enable test.service

ちなみに拡張子を省略してtestと記述してもOKです。

正常に有効化されていれば、下記のコマンドを入力するとバックグラウンドでサービスが実行されます。

$ sudo systemctl start test.service

実行後、動画ファイルが生成されているか確認してみましょう。

サービスの状態は下記のコマンドで確認することができます。

$ sudo systemctl status test.service

またサービスを手動で停止したい場合は下記のコマンドを実行してください。

$ sudo systemctl stop test.service

Raspberry Pi Zeroを再起動して自動実行されるか確認する

一通り動作の確認ができたら、Raspberry Pi Zeroを再起動してみましょう。OSの起動と同時にサービスも起動して、動画撮影がスタートするはずです。

ここまでの作業が完了すれば、一応ドラレコとして使える物に仕上がっています。実際に車載して使ってみて、解像度やビットレートを調整してください。

ただし普通にraspividコマンドを実行すると1つの巨大な動画ファイルが生成されてしまうので、特にWi-Fi経由でデータを取り出そうとするとかなり時間がかかります。また拡張子がH.264と扱いにくい形式なので、使用する動画プレーヤーによっては正常に再生できないなんてこともあるかもしれません。

この問題の解決策もいろいろ考えられますが、私はFFmpegへパイプ入力して動画ファイルの分割&変換処理を自動的に実行させることで対策しています。

raspividコマンドの基本的な使い方をマスターしたら、こちらの記事も参照してみてください。

ラズパイドラレコで録画した動画をFFmpegでH.264からMP4へ自動変換する
ラズパイで簡易的なドライブレコーダーを作る方法として、先日カメラモジュールを使用してraspividコマンドで動画を録画する方法を紹介しました。 raspividコマンドを実行すれば、性能が低いRaspberry Pi Zeroでもそれなり...

Raspberry Pi Zeroをシャットダウンして安全に電源を切る方法

電源を切る場合、安全のために必ずRaspberry Pi Zeroをシャットダウンしてからにしましょう。

わざわざ自宅のWi-Fiに繋いでPCからSSH接続しなくても、もっと簡単にシャットダウンする方法がいくつかあります。

GPIOピンの自作ボタンを取り付ける

もっともメジャーなのはGPIOピンに自作ボタンを取り付ける方法です。

ボタンを押すだけでシャットダウンのコマンドを送信して、後はエンジンを停止すれば安全に電源を切ることができます。

ただ見た目と使いやすさを両立させるのは難しいかもしれません。私はやったことがないのであくまでもイメージですが…配線や基盤を剥き出しにしないで整えるのはハードルが高い気がします。

スマートフォンのテザリングでSSH接続する

自宅のWi-Fiに繋がなくても、スマホのWi-FiテザリングやBluetoothテザリングでもスマホでSSH接続してコマンドを実行することが可能です。

車庫に自宅のWi-Fiが届くならテザリングする必要もなく、スマホさえあれば可能なので、自作ボタンを取り付けるよりも圧倒的に簡単です。見た目が悪くなることもありません。

ラズパイでBluetoothテザリングを利用する方法についてはこちらの記事を参照してください。

Raspberry PiをBluetoothテザリングでスマートフォンと接続する方法
ラズパイに限らず、無線でインターネットを利用する方法と言えばWi-Fiを思い浮かべる方が大半かと思いますが、双方の端末が対応していればBluetoothでインターネットに繋ぐことも可能です。 Bluetoothで通信するメリットは省電力であ...

ラズパイをホットスポット化してSSH接続する

逆にラズパイをホットスポット化してSSH接続する方法もあります。

さらにUSBモデムを接続してこれをWANにすれば、ラズパイをモバイルWi-Fiルーターとして運用することも可能です。USBモデムは中古のL-03FやL-03Dなら3,000円から5,000円程度で手に入ります。

この方法なら車内にWi-Fi環境も構築できて一石二鳥です。

Raspberry Piで車載用のモバイルWi-Fiルーターを自作してみた
車載用のモバイルWi-Fiルーターをラズパイで自作したので、その作り方をまとめておきました。 今まで複数のモバイルWi-Fiルーターやホームルーターを車載してきましたが、どれもこれも今一つで。最終的にドラレコとして運用しているラズパイにUS...

UPSを搭載して自動的にシャットダウンさせる

最終的に私はUPSを採用することにしました。

専用のUPSモジュールで電源監視を行うことで、USBによる給電が停止するとバッテリー駆動に切り替わり、自動的にシャットダウンさせることが可能です。これなら何も考えず普通にエンジンを止めても安全にラズパイの電源を落とせます。

強いて言えば、夏場の高温になりやすい車内にリチウムイオン電池などのバッテリーを放置するのは危険なので、設置場所や温度管理については注意してください。

実際に私が使用したUPS PIcoの記事についてはこちらを参照してください。UPS PIcoの入手難易度が高いのと、夏季の車内に放置するのはおすすめできませんが…

Raspberry PiにUPS PIcoを搭載して安全にシャットダウンする
ラズパイをドライブレコーダーとして車載して運用する際に気を付けたいのが電源周りです。 普通にアクセサリーソケットから電源を取ればエンジンの始動と同時に自動的に起動させることが可能ですが、エンジンを止める際はシャットダウン処理を行わずにブツ切...

遅延リレーを使用して自動的にシャットダウンする

ドラレコを作った当時はまだこの方法を発見していなかったので採用しませんでしたが、遅延リレーを使用する方法ならUPSよりも圧倒的に安全にシャットダウンすることが可能です。

エンジンOFFを検知してシャットダウンコマンドを実行するリレーと、シャットダウン完了を見計らって電源を切断するタイマー付き遅延リレーの2つを組み合わせることで、安全にラズパイの電源を落とせます。

車から常時電源とACC電源を取り出す必要があったりそれなりに手間はかかりますが、そこのコストを度外視すればもっともおすすめの方法です。

車載したラズパイを遅延リレーで安全にシャットダウンする方法
最近になってようやくRaspberry PiとOpenAuto Proを使って本気でAndroid Auto搭載カーナビを自作しようとしてる筆者ですが、Raspberry Piを車載するにあたって非常に悩んだのが電源です。 ACC電源から給...

まとめ

以上、Raspberry Pi Zeroを使って簡易的なドライブレコーダーを自作する方法についてまとめました。

単純に動画を撮影するだけなら非常に簡単なので、必要な物さえ揃えれば誰でもすぐに作ることができますよ。

なお現在はRaspberry Pi 4Bを使用してAndroid Auto搭載カーナビの自作に勤しんでいるので、興味がある方はOpenAuto Proの記事もぜひ。

コメント

  1. ヨッシー より:

    大変楽しく拝見しております。

    ご案内の通り、raspberry pi zero にプログラムを行いました。
    wifi環境では動作しますが、車内のwifiが切れた状態では
    動画ファイルができません。wifi環境下では ./ にファイルが
    作られます。プログラムを確認しましたが、間違いはないようでした。
    何かヒントがありましたら,お手すきの時にでも、ご教授をいただけますよう、
    お願いいたします。

    ありがとうございました。

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