Orange Pi Zero 3、7インチIPSタッチディスプレイやESP32 S3カメラ、VoIP/ボイスチャットアプリMumble、Python/PyQtなどを使い、LANケーブルによる有線&Wi-Fiによる無線とハイブリッド通信なスマートテレビドアホンを親機・子機ともども自作してみた話。
LANケーブル1本で給電&通信できるPoE(Power on Ethernet)採用でテレビドアホン親機・ドアホン子機ともに有線とは言え、LANケーブルなので電気工事の資格不要、電池もなく、当然、電池交換も不要で後付可能。
自作・運用中のスマートロックと連携、ドアの鍵の開閉も自作ドアホン親機パネルからドア外の映像と併せ、ロック状態の映像を確認しながら解錠・施錠もできます。
電子工作・IoT/スマートガジェット製作を始めるにあたり目標にしてから約8年、実際に着手し始めてから約2年、未だ検索しても見当たらないので市販品ではない趣味のテレビドアホンの自作は世界初...かも!?
テレビドアホン親機は、映像表示はもちろん、操作含めタッチパネル、PTT/Push To Talkを実装しつつ、通話はローカルサーバなVoIPアプリ、各種制御用にSBC/Single Board Computer、テレビドアホン子機は、マイコンによるIPカメラの他、マイク&スピーカー制御用にSBC。
録画・録音については、ストリーム映像/画像表示・保存や映像配信通知で動画/画像を保存のように状況に応じてLAN内既存サーバー(NAS)と親機のストレージを使い分け。
親機・子機とも電源と通信をLANケーブル(CAT5e以上)1本で賄うことができるPoE+(IEEE802.3af/IEEE802.3at)対応なPoEスイッチングハブ、PoEエクステンダ/中継・拡張機から、SBC、マイコンともにPoE非対応につき、PoE受信すべく、PoEスプリッタを採用したので給電・通信用の配線はテレビドアホン親機・子機ともにシンプルでスッキリ。
160度広角ナイトビジョン対応カメラの通信は無線・ワイヤレス、カメラボードへの給電と併せ、SBC/Single Board Computerへの給電、そして通信はLANケーブルだけと「有線」でもあるドアホンでありながらもAC100V側には触れないので設置にあたって電気工事士の資格は不要。
よって後付可能、電池も使わないので電池交換も不要。
電源については親機はSBCのみのため、これ用にType-CタイプのPoEスプリッタ(実際は想定していたラズパイを2台もショートさせてしまった結果、持て余していたmicroUSBタイプ+Type-Cアダプタ)。
子機については、SBC、カメラ用マイコンに5V、MOSFETを介し、照明として共に定格12Vの赤外線LEDライト、COB LEDライト(共に48灯)などで使用につき、PoEスプリッタ 12V 2A DCプラグタイプ(+DCコネクタケーブル+降圧モジュール)としました。
この方法なら、親機にはSBC用ACアダプタが要らず、配線もスッキリし、電源がとりにくいドアの外に設置のドアホン子機に至っては、なおさら好都合。
尚、子機もまるごと自作するつもりでいたものの、今回は、つい数ヶ月前に流用するのもありかと縁あってWi-Fiドアベルと差し替える恰好で取り付けた音声のみのインターホン子機のボタンをハックして自作ドアホンと連動させることに。
とは言え、インターホン子機にはない、カメラ、暗いときのライトアップ(SMD白色LED48灯/砲弾型赤外線LED48灯)、自作親機との連動・操作なども必要なのでマイク・スピーカーも併せてドアホン子機も、もちろんインターホン子機とは別に自作・設置。
そのカメラ映像を解析、動体検知した結果もドアホンと連動、自動録画、一定時間、動きがなければ、自動的に録画停止、録画データは、一定期間経過で自動削除。
この目的は、不在時にコールボタンを押さずにドアをノックしたり、ドアを叩いたりする方が知人の場合、状況に応じて後で声掛けできるよう、はたまた、今の時代でも直撃訪問してくる営業・勧誘の類い含め、不審者対策。
ドアホン親機は、ダイニングテーブル上に、インターホン親機は離れた別の場所に設置しており、LANケーブル1本で電源・通信を賄うことができるのでケーブル長さの許す限り、移動させることも、PoEスイッチングハブやPoEエクステンダは各所に配置してあるので全く別の場所に移動させることも簡単。
よってドアホン親機専用機の他、当然、音声のみながら既設のインターホン親機でも応答できます。
これだけでも2箇所で応答可能なわけですが、ドアホン親機としては、専用機の他、これと同様のシステムを入れたパソコンや同機能対応スマホアプリを入れたスマホ・タブレットでも応答でき、既設のVPN経由で外からでも応答できるので、どこでも来訪者の確認や応対ができます。
この場合、PCについては、ディスプレイ隅に常時最前面に邪魔にならない程度のサイズで表示させる映像+応答ボタン画面で対応。
とは言え、自作したテレビドアホンについては、PTT/Push To Talk式で親機操作パネル上のボタンを押している間、親機→子機、放すと子機→親機の発話可(相互にマイク・スピーカーも排他設定)としていることなどから、ドアホン親機となり得る複数のデバイスでドアホン子機と同時に通話するというわけにはいきませんが。
一方、何れかのドアホン親機と既設のインターホン親機なら子機も別なのでハウリングさえおきなければ、同時応答も可能ですが。
また、ドアホン親機となるデバイスにおいては、自作・運用中のスマートロック機能の1つであるWebロックと連携、操作パネル上の玄関外のカメラ映像とポップアップされるWebロック用ブラウザ画面上のスマートロック映像を見ながらロック・アンロック操作可能、ロック機構部、ドアホン子機何れも周囲が暗い場合は、ライトアップ。
ドアホン親機と子機との通信には、VoIP|ボイスチャットアプリMumble(Androidでは非公式ながらF-Droid版Mumla)を採用したので他に同居人がいる場合、子機と通話している時以外は、他デバイスとの間でボイスチャットできたりもします。
家やオフィスなど利用空間が広い場合やテレビ・ラジオなどの他、騒々しさで遮られる状況にある場合、音声を聴き取りにくい・耳が遠い人がいる場合など重宝するシーンもあるかと。
ただ、VPNはともかく、インターネット越しではなく、LAN内なので一定の距離を確保する、なんならボイチャもPTT/Push To Talk(≒ボタンを押している間だけ発信できるよう)にするなどハウリング対策できる場合に限定されるでしょう。
子機の呼び出しボタン押下連動、コールボタンを押下するまでもなく、人がいることを検知時に自動、もしくは、パネル操作(手動)で親機のストレージやNASに画像・映像録画もできます(動体検知時は、一定時間検知しなければ、録画終了)。
この時、画像や映像を添付しつつSMS、メールやLINEなどへの送信・通知も可能は可能なのでしょうが、今のところ、自身は、あまり必要性を感じていないため、実装する気はなく、とは言え、ドアホン用スマホアプリにおいて、トリガーとしては必要か...となれば、実装するかもしれません。
尚、映像を伴う場合、映像ストリーム1つに対し、表示デバイス1台となるユニキャストではなく、複数のデバイス(マルチデバイス)に同時に配信できるマルチキャスト配信の方が便利なのですが、マルチキャストの場合、配信の過程で遅延をゼロにすることはできません。
その点、完成直前まで悩んだ結果、ギリギリ実用に足りそうということでマルチキャストを採用、複数のデバイスを親機にし、同時にすら応答できるのは、マルチキャスト配信だからこそ成せるワザ。
ただし、ユニキャスト配信でも一人住まい、もしくは、応答は特定の人のみといった状況であれば、1デバイスでならパソコン、スマホ、タブレット何れであっても、また、この時、やはり、1デバイスであれば、今回、既に導入済みのVPNで外(外出先)から映像・音声ともどもスマホでドアホン応対も可ですが。
よって、ある程度の期間、運用してみてマルチキャストによる配信が、どうにもドアホンとしての実用に耐えないという状況になれば、ユニキャストやあれば他の方法をとることになるかもしれません。
自作ドアホン親機の構成は、主にSBCとしてOrange Pi Zero 3 RAM4GB、ディスプレイとしてHDMI接続7インチIPSタッチパネル、タッチパネル用架台、ストレージにSSD、通話用にUSBマイクとUSBスピーカー、USBハブなど。
タッチパネル架台については、パン360度、チルトも少なくとも90度以上で真上や正面にも向くなど自由自在。
尚、基本、その必要はありませんが、もちろん、別途、USBによる有線・ワイヤレスタイプ問わずマウスやキーボードでの操作も可。
SBCへの給電と通信は、当初予定のラズパイ用に買った1Gbps対応PoEスプリッタ RJ45プラグ+microUSBタイプをと思いきや、Orange Pi Zero 3に変更した関係でmicroUSB-Type Cアダプタを併用。
無線チップに技適がない今回採用のSBCにおいて無線LANドングルは消費電力的にも微妙、また、無線より有線の方が高速で安定していること、LANケーブルは必要な一方、PoEゆえ、ACアダプタは不要となり、レイアウトの自由度も上がるため。
パネルの操作や実装については、自作ドアホン親機操作パネルの通り。
筐体として100均キャンドゥのバスケットを採用、多数の穴は、ホコリとトレードオフながら、熱が籠もらない通気性の良さを考慮してあえて、とは言え、さすがに上面は蓋をしようかとプラダンをはめ込むことにしました。
パネル用に高さは7cmほど嵩増ししているのですが、それさえ、特にパネルやSSD、PoEスプリッタ等太いケーブルなど取り回しには、むしろ、ちょうどよかったり、いろいろ詰め込んだりで結果、思いの外、だいぶ大ぶりになってしまいましたが。
自作ドアホン子機の構成は、主にカメラとしてESP32 S3カメラ、USBマイク&USBスピーカーON/OFF切り替え用SBCとしてOrange Pi Zero 3 RAM1GB等。
SBC、マイコンカメラ(共に5V〜)、MOSFETを仲介に赤外線ライト、LEDライト(共に12V)への給電と通信は、PoEスプリッタ 12V 2A DCプラグタイプを採用、PoEエクステンダ(中継・拡張機)からサッシを介し、フラットLANケーブル1本で外に配線。
マイコンカメラ、マイク、スピーカーをもつドアホン子機としては、既存インターホン子機のボタンにタッチセンサーモジュールを被せ、一緒に押されることでインターホンのベルが鳴りつつ、信号の入力を送信することで、また、ドア前に人物がいることを検知することでドアホンシステムと連動。
ドアホン子機のボタン押下時 、親機操作パネルの映像ボタンや録画ボタン押下時、ドア前の動体検知時、周囲が暗い場合は、子機コールボタン押下では、白色LEDライト(SMD LED48灯)が、他は赤外線LEDライト(砲弾型LED48灯)が点灯。
ドアホン子機の機能詳細については、自作テレビドアホン子機参照。
今回の自作テレビドアホンにおいて、通話には、ローカルサーバとしたVoIP|ボイスチャット(ボイチャ)アプリMumbleを採用。
さて、当初、サーバ目的だったとはいえ、自身にとって電子工作やIoTへのきっかけと言っても過言ではない中、なぜ、お気に入りのラズパイじゃないのか...?
それは、端的に言えば、コスパ。
当初、ラズパイ製防犯カメラと兼ねることを想定もドアホンカメラ1つで十分かなと思っていた矢先、試作中にラズパイ3B+を2台立て続けにショートさせてしまい、手持ちのラズパイがサーバとしている2B+と今やメインPCとして使用の400しかなくなってしまったのが転機。
また、新たに買うにしても一時的な価格高騰は沈静化したものの、急激な円安から心理的にラズパイ4BやRAM4GB/8GBバージョンしかなさ気なラズパイ5は決してコスパが良いとは言い難い...。
ラズパイには他のラインナップもあるもラズパイ5はパソコンや4K/8K...映像、AI向け、他は、ルーターその他や電子工作向けという方向性に見え、他のラインナップについては特にRAM512MBを超えるものはないなど、その中間のラインナップがない点が微妙...。
他方、一部、大陸製+Linuxにさえも手が入っているものもあり、どの程度メンテナンスがなされるのかという点で懸念は、かなり大きいながらも同じ大陸製のESP32も常用・多用しているし、一般庶民にとって心揺らがずにはいられないほどコスパは圧倒的。
無線チップに技適がないため、必要なら別途対応ドングルを用意しなければならないとか、見かけ上の仕様が同じでも、Orange Pi Zero 3のRAMが2GBでも、RAM1GBのラズパイの方が性能が高かったかも?と感じる部分もなくもないですが、正常に流通していた頃のラズパイ3B+と同程度でRAM4GBが手に入るのならOrange Pi Zero 3を使うのも、ましてこの用途だとRAMも1GB/1.5GB/2GBというより安価な選択肢もありかと。
今のところ、Debianのリポジトリに変更したあとも問題はなさ気、ドアホン親機・子機ともにOrange Pi Zero 3でも支障はなく、正常に機能しています。
今日時点、ドアホン用にしてローカル用の自身初のスマホアプリは、React Native + Expoで自作・開発中。