気の向くままに辿るIT/ICT/IoT
IoT・電子工作

自作スマートテレビドアホン構想

ホーム前へ次へ
Orange Piって?

自作スマートテレビドアホン構想

自作スマートテレビドアホン構想

2025/02/11

 頭の中を巡っていたRaspberry Piによる自作見守りカメラや定点カメラ、監視・防犯カメラ兼自作ドアホン構想から1本化し、Orange Pi Zero 3/ESP32 S3カメラによる自作テレビドアホンに至るまでの話。

テレビドアホン自作までの経緯

 電気の知識があったら、自分であれこれできたら楽しいだろうなと長年、思っていた中、ラズパイでサーバを構築してみてから、ふと電子工作やIoTという話題に触れ、ArduinoやESP32も知ってみると、これって自分でも電気や電子に近づけるんじゃ?という高揚感からすぐにのめり込んだのが約8年前のこと。

 電子工作を始めるにあたって最初にたてた大きな目標の1つがテレビドアホン、近そうな目標としたのが鳥よけ装置でした。

 鳥よけ装置は、早々にできた一方、ドアホンに至っては、なんと早、8年近く経過、長い道のりではありましたが、音声応答のみなインターホンの自作すらピンとこなかった自身にとっては、全て必要な時間でした。

 その間、ドアホンを買ってしまうと自作する気が失せてしまうため、とは言え、すぐには作れそうもないが、さすがにノックに依存し続けるのもなんかなと思い始めた5年ほど前にワイヤレスドアベルを設置。

 併用という発想が全くなかった当時、インターホンではなく、Wi-Fiドアベルにしたのは、音声機能だけだと魅力というか必要性を感じなかった上、特に取り外す際、資格も必要なくできるから。

 最近になって、ようやくドアホン構想もほぼ煮詰まって技術的にもできそうかなと思えてきたものの、検証には時間がかかりそうな気がしていた折、いざ、ほぼ出来てみると、やはり、相応のテストはしておいた方が...と思うに至りました。

 そうした中、ちょうど設置含めリーズナブルなものを見つけた数ヶ月前、既にドアホンもほぼほぼ完成していながら、(壁を少し削れば入る、入れば中には収まるも)スイッチボックス内に自作子機を入れることができないという、うっかりミスなハプニングもあって、あったらあったで流用しつつ、増設するのもありかとドアベルに代え、有線な音声のみのインターホンを設置。

 そして、遂に自作品であるテレビドアホンが完成、相応にテストした結果、Goサインを出しても良いかなと思えた次第。

 足掛け8年もかかったものの、当時から現在に至るまで英語圏含め、自作例は、あってWalkie-Talkieプロジェクトなどのインターホンかあって音声なしのカメラくらいと思われ、機能満載ドアホンとして初の自作と言えそうで、より作りがいもあって良い感じだなと。

 国内でビデオドアホンの市販品を見てもPanasonicとアイホン(aiphoneであってiPhoneじゃない)くらいで有線は電気工事士資格が要り、これが不要なのは、無線タイプで乾電池8本仕様とか...。

 海外ではWi-Fi、充電池タイプと思しきものが多数も、取り付けにあたり、国内ドアホン用スイッチボックス規格に(合わないだろうけど)合うのか不明。

 映像などの保存もmicroSDカードとか、クラウドサーバとかは憚られ、そういう点からも自作一択でしょと。

 ある程度のコストには目を瞑った結果、2万円程度かかりましたが。

 それでも光回線、Wi-Fi環境、サーバ/NASやVPN、運用し始めた自作スマートロックもあって他とも共用でき、利便性も高いからと導入したPoEスイッチングハブ、PoEエクステンダなどのベース環境あってのことではありつつ、機能的には市販品に比べれば激安と言えるでしょう。

 ただ、数百円〜数千円、あって1万円程度と市販品より安価に続々と自作スマートガジェットを製作してきた中、もっとコストダウンを図ることもできたとは思いますが、実装面の簡便性とより早い完成を優先させた恰好です。

ドアホン全体像

 ドアホン自作構想の実現可能な構成イメージがある程度できてきた当初は、コスパ面でドアホン親機専用機は作らず、パソコンでこれを代替、複数の内、何れかのパソコンが起動中のみ利用するつもりでした。

 また、子機は嵩のあるスイッチボックスカバーを加工してカメラ含め構造物をスイッチボックス内に収めるつもりでしたが、前述の通り、スイッチボックス内に入らないというハプニング発生もありつつ、子機共々音声のみのインターホンを設置するとにし、メロディを流用、ボタンをハックした上で別の筐体にカメラなどを仕込むことに。

 既存インターホンには、入力はあれど出力のメーク接点がなく、補助音響設備などの出力接点も使えるにしてもESP32ボード等を仲介して無線送信...より、ボタンハックの方が良いかなと。

 既に運用中ではありつつも必要都度起動のVPNサーバ経由で外からスマホというパターンも考えてはいたものの、スマホアプリは作っていないのでワンストップで操作できないため、できるけど実用には耐えない上、後述のように映像に関して制限が出てくるのでドアホン応答には向かないかなと。

 ただ、PCを起動していない時、起動していてもそばにいない場合、そもそも在宅していない場合等々を考えるとサーバのみに依存するのではなく、一時ストレージを持たせる意味でもドアホン専用に親機はあった方が良いなと思い直しました。

 そこで表示のみのモニタ+物理ボタンよりもタッチパネルでしょということで、そうだとすると、せめてスマホと同程度の6インチ、映像だけでなく、ある程度の大きさのボタン配置も考慮すると、それ以上は欲しいかな...。

 タッチパネルについては、市販の完成品ではなく、裸のタッチパネルディスプレイとLCDコントローラーなら結構安価なようでした。

 が、タッチパネルではないものの、以前、壊れたノートPCの液晶の再利用をしてみようとRaspberry Pi 3 Model B+とノートPC液晶他でパソコン化にチャレンジしたことが。

 当初は表示もできたのですが、ある時点から突然できなくなり、コントローラーボードを追加購入したもののダメ、フレキの断線だったのか、尤も壊れたノートの液晶、液晶自体も寿命だった可能性もありますし、タッチパネルでもできるのか不明、仮にできたとして再チャレンジについては躊躇中。

 加えてLANや会話に参加するとなれば、別途ラズパイなどSBCが要るよね、でも、ラズパイは品薄・価格高騰している、急激な円安後、円高方向に大きく戻る兆しもない中、さて、どうしたものか。

 いや、待てよ?タッチディスプレイは買う必要はあるものの、SBCと言えば、ハードのみならずソフトまで何から何まで大陸製で心配は残るものの、同ガジェット用にと考え買って結果宙に浮いたOrange Pi Zero 3 RAM4GBを使って作っても良いか...。

 でも、最も避けるべき類いの使いみちかな...。

 と思っていた矢先、防犯カメラ&ドアホン用として仕込み中だったラズパイ3B+を、うっかり、ショートさせて壊してしまい、自作スマートスピーカーで使用中の3B+に代えるべく、Orange Pi Zero 3にJulius/Open JTalkスマートスピーカーを移行したことで、この時は、この案は自ずと消滅と思っていました。

 そんな折、探した結果、こなれた価格の7インチでIPSなタッチパネルを発見。

 手持ちで6インチとか6.xインチのスマホよりちょっと大きいくらいだけど、まぁいいかと思って買ってみると7インチでもその差は思いの外、大きく、なかなか満足の行くサイズだったので、これを採用することに。

 となれば、SBCもいる、RAM容量は大きいに越したことはない、Orange Pi Zero 3はRAM4GBが最大、他に2GB/1.5GB/1GBもある、ならば、ドアホン親機には、4GBを、結果、子機用としてRAM 1GBのOrange Pi Zero 3を採用することに。

 子機用カメラとしては、カメラ付きでESP32-S3-WROOM1チップの載った技適対応のボードに決めていたものの、カメラが載っているだけに利用できるGPIOはさほど多くない、ハウリング対策を考慮するとマイクとスピーカーで排他なON/OFF切り替えが必要、となると、やはり、SBCが都合が良いので子機でもOrange Pi Zero 3も併せて使うことにした次第。

 そうなると電源を設置しづらい外に給電するにもマイコンとSBC、曇天・夜間対応にライトとか考えるとそれぞれ給電ケーブルというのはスマートじゃない。

 他方、技適のあるESP32 S3カメラのストリームは無線で良いにしてもOrange Pi Zero 3はWi-FiもBluetoothもチップに載っているが技適はないので技適のある無線ドングルがいるとすると電力食いでもあり、イーサネットポートもあるので有線の方が都合が良い。

 電源とLANケーブル...といえば、まさにその目的で実用化されたPoE/Power on Ethernetを使うことができれば、LANケーブル1本で給電と通信を賄うことができる。

 探してみるとACアダプタを伴い給電と通信ハブとなるPoEスイッチングハブやPoEインジェクタ、これの中継・拡張となるPoEエクステンダがあり、受電側としてPoE対応ならそのまま、これに対応していない場合には、デバイスのアクセサリとしてのPoE HATやイーサネットケーブルを入力としてイーサネットプラグケーブルとDCプラグや各種USBプラグ、コネクタを出力としてもつ汎用的なPoEスプリッタといったものがあることを知るに至りました。

 よって給電と通信は、PoE技術を使うことに決めました。

 あとは通話ですが、結構、面倒さを感じていたので出来合いのものは...と探すとDiscordやTeamSpeak、MumbleなどVoIP|ボイスチャット(ボイチャ)アプリを知り、ローカルにサーバをたてることができ、親和性が良さそうに思えたMubmleを試してみることに。

 スマホについては、即時応対には、実用的とは言い難いながら、AndroidならMumlaなどアプリを操作し、(ライブ)映像の確認、状況としては限られるも会話も可。

 家に複数人いる場合、パソコンが起動中であれば、Mumbleは常時起動を前提としているので、そうした状況下では、常に同一LAN上にいるスマホとパソコン間、それぞれ複数あっても全員での会話は可。

 また、そうした使い方においては、既に稼働可能なVPNサーバ経由で外からの利用も可。

 こんな感じにしてみようと。

 また、遅延を避け、マルチキャストにしない場合、映像送信はデバイスを限定する(一番最初に応答したデバイスに限定される)ことにはなりますが、その場合であっても、家に誰もいない、または、いても応答するのは外出先からスマホでと決まっているなどの場合は、映像含め、外出先からスマホなどでVPNを経由した応答も可。

 ただし、前述のとおり、スマホ・タブレットについては、アプリを自作でもしないと応答までに復数ステップ踏む必要があり、実用的ではないですが。

 当初、ESP32 S3カメラにマイク・スピーカーを持たせるつもりでしたが、空きGPIO的にも機能的にも、ドアホン埋め込みのスイッチボックス内というスペース的にも、ドアホン子機筐体のこれら用の加工面からも、ハウリング抑止の点からも、微妙だったため。

 スイッチボックスのスペース的、また、加工面の話は、音声のみのインターホンを設置の上、流用、増設することにし、別途、筐体を用意、材質も異なるので今となっては関係ありませんが。

 と言ってもGPIOが足りないだけが理由なら、別途、ESP32開発ボードを追加し、マイク・スピーカーを持たせることもできるものの、ハウリング対策として排他でON/OFFを切り替えるのが面倒な気がして。

 何れにせよ、テレビドアホンを自作するにあたりコストは増す一方、シングルボードコンピュータにマイク・スピーカーを持たせれば、PipeWireかPulseAudioのコマンド(pactlや後者ならpacmd含む)とか、Mumble自体の起動&退出(終了)などもでき容易なので。

機能概要

 保存した画像・映像・音声は一定期間経過で順次、自動削除。

 現時点、残存する画像・映像・音声の視聴方法を簡便にすべきか否かは未定。

 また、RTSP/RTPストリーミングを踏まえ、Raspberry Pi/Python/OpenCVでストリーム映像/画像の表示・保存IPカメラから映像配信通知を受信・動画/画像としてサーバに保存のように防犯カメラ側ラズパイとは別に、サーバ側で指定のトリガーによるライブ映像や音声の自動録画・自動録音の保存も可能。

機器構成

 おおまかな機器構成はこんな感じ。

 ドアホン親機は、ダイニングテーブル上に配置。

 ドアホン子機は、既設インターホン子機脇に配置。

 ドアホン子機は、インターホン子機ボタン上にタッチモジュールを設置、タッチと同時にインターホンボタンが押さされると同時にドアホン連動。

 電源については、PoE+スイッチングハブ、PoE+エクステンダとPoE+スプリッタによりLANケーブル(CAT5e以上)1本、ドアサッシ経由で給電、スプリッタをDCプラグタイプとし、電源分岐や降圧。

主なソフトウェア

 ESP32 S3カメラボードは、映像のRTSP配信、cvlc(CLI版VLC)でLAN内の特定IPにユニキャスト転送しつつ、RTPマルチキャスト配信、再生は、ドアホン親機側Orange Pi Zero 3/Orange Pi OS上でPython+OpenCV。

 ESP32 S3カメラ映像の録画は、ドアホン親機側Orange Pi Zero 3/Orange Pi OSの、加えてサーバ(NAS)側のRaspberry Pi OS上でPython+OpenCV。

 音声通信・会話は、ドアホン親機側Orange Pi Zero 3/Orange Pi OSのMumble-server/Mumbleと各クライアントとなるドアホン子機側Orange Pi Zero 3/Orange Pi OSのMumble、パソコン上のMumble、Androidスマホ上のMumla。

 薄らぼんやり脳内にチラついているのは、以下。

 前者は、完全対応ではありませんが、不在時、在宅時でも聴こえず対応できなかった場合に備え、Python+OpenCVによる動体検知で自動録画することに。

 後者は、スマホアプリ開発は初めてながら、React NativeやExpoでやってみようかなと。

主な参照先

 実際、組み込ませて頂いた主な参照先は、次の通り。

 とても勉強になりました、ありがとうございました。

備考

 結果、概ね、思い通りにできたかなという感じ。

 ここに書いた以外にも、ここに至るまでの変遷、経緯、足跡が後段の各種リンクに色濃く残っています。

ホーム前へ次へ