急に家の2部屋間で連絡を取りたくてインターホンが欲しくなった。
スマホでOKなんだけど、ちょっとした会話には充分過ぎる。
また、スマホが普及しているからだろうけど、市販のインターホンは少なくなっているようだ。
そこで、余っているラズパイを使ってみました。
- 2部屋間を繋ぐだけなのでそれぞれに1台ずつ設置し、Wi-Fiで接続
- 通話ボタンをタッチするだけで相手と会話が始まり、ふたたびタッチすると切断
- 保留やその他の通話機能は無し
- 片方のラズパイには、SIPサーバー機能も兼用
- ラズパイ2台: Raspberry Pi 4B with タッチディスプレイ
- USBスピーカーフォン2台: audio-technica AT-CSP1
- OS: Raspberry Pi OS (64bit) with desktop
- Python用GUIキット: Kivy 2.3.1
- SIPサーバーソフト: Asterisk version22.2.0 (FreePBXにしたかったけど、ラズパイに非対応だった)
- SIPライブラリィ: pjsip version2.15.1のPJSUA2ライブラリィ
他に開発環境として、Raspberry Pi connect (Beta)とVSCodeを使用
項目 | 操作 |
---|---|
発信 | 通話ボタンを押すと、会話が始まる。 |
受信 | 勝手に会話が始まる。 |
切断 | 会話中に通話ボタンを押すと切断する。 |
マイクとスピーカーの音量調整もできる。 サービス化
項目 | Intercom1 | Intercom2 |
---|---|---|
Raspberry Pi | Raspberry Pi 4B | Raspberry Pi 4B |
タッチディスプレイ | WAVESHARE 18645 | MPI4008 |
スピーカーフォン | audio-technica AT-CSP1 | audio-technica AT-CSP1 |
OS | Raspberry Pi OS(64bit) with desktop | Raspberry Pi OS(64bit) with desktop |
Wi-Fi | 有効 | 有効 |
IPアドレス | (固定) | (固定) |
ホスト名 | intercom1 | intercom2 |
ユーザー名 | voice | voice |
パスワード | ******** | ******** |
SIPサーバー | Asterisk version22.2.0 | - |
SIPライブラリィ | pjsip version2.15.1 | pjsip version2.15.1 |
SIP name | intercom1 | intercom2 |
SIP idUri | sip:intercom1@intercom1 | sip:intercom2@intercom1 |
SIP registrarUri | sip:intercom1 | sip:intercom1 |
SIP password | unsecurepassword | unsecurepassword |
SIP password は例です、ちゃんと自分で考えましょう。
git clone --depth 1 https://github.com/tomosatoP/intercom.git
次に設定ファイルを編集すること。
さらに次のファイルを再配置する。
filename | コピー先フォルダ | 補足 |
---|---|---|
intercom.png | ~/.icons | $ mkdir ~/.icons |
intercom.desktop | ~/.local/share/applications | |
intercom.sh | ~/intercom | コピーしなくて良いけど、実行権限を付与 $ chmod 755 (filename) |
~/intercom にインストールした場合
SIPサーバーソフトAsterisk version22.2.0の導入
- Intercom1のみ実施
参考 https://docs.asterisk.org/Getting-Started/Beginning-Asterisk/
SIPライブラリィpjsip version2.15.1の導入
- Intercom1, Intercom2の両者で実施
- 合わせて Python用仮想環境venv と Python用GUIキットkivy も導入