JR6PUE HOME PAGE

DMRデジピーター機の画面を遠隔監視


 HAMworld3月号第2特集にDMRの機能と可能性という特集記事を読みDMR方式無線機を利用して
SFR(Simplex frequency repeater)と言う機能を使って1波で送受信を繰り返し、60mSの遅延が有るレピーターの様な
運用が出来る事にとても興味をそそられました。

 技適を得ているDMR無線機は無いということですが、スプリアス領域のスペアナ画像を添付すればJARDの基本保障が受け
られるということで広島にあるハムショップ マッコイ様からTM8250を6月初旬に購入し、JARDに申請しようとしていた
矢先の6月12日に、Belfone社製 のTM8250,TD516,TD936はスペアナ画像の添付がいらなくなるという簡素化もなされました。
 開局準備に並行して、VoIPリンク研究会様のFacebookに登録して情報収集も進めました。
 特に、JF1UVG市川様には、IDユニットの入手や開局に向けた情報についていろいろとご指導をいただきました。心から
感謝です。

 アクセス側無線機は、フレンド局5局と一緒にTD516を購入し変更申請を行い、フレンド各局の地理的中心位置にある
福岡県直方市のJH6EOS局の自宅にTM8250を設置してJG6YJEでデジピーター局を開局しました。これから運用しながら
混信妨害など課題が無いかなど調査し、将来的にはレピーターが設置されている山頂に設置を目指しているところです。

 このような状況ですが、ハンディ機のTD516は液晶画面とかなく視覚的に物足りないところがあります。
 このため、デジピーター機のTM8250の液晶画面をネット経由で見れると自分のアクセス状況や他の人のアクセス状況画面が
見れておもしろそうだと思い、Raspberry piにWEB会議等で使用していたUSBカメラを接続して画面を見ることにしました。
手元にあったUSBカメラは、照度が暗いと画像がはっきりしないのとTM8250の画面近くにカメラを置くと写りがいまいち
でした。このため、最低照度0.5Lux、最短接写距離10p、オートフォーカス機能付きのサンワサプライ社製の400−CAM104
購入しました。
 なお、お手持ちのUSBカメラがあれば、まずそれで試してください。ほとんどのUSBカメラを認識すると思います。

 ついては、TM8250の液晶画面をストリーム映像で見るための設定について取りまとめます。

1.Raspberry piにOSをinstall
 USBカメラの消費電流が500mAくらいあるので3B+以降が必要です。Raspberry pi4が性能的および価格的に一番入手
しやすいと思います。
 OSのインストールは、ネットを検索すればたくさん出てきますが触れておきます。

(1)Raspberry piの公式サイトにアクセスしてWindows用の書き込みソフトをダウンロード

 2024年8月3日時点では、imager_1.8.5.exeが最新です。
 なお、Windowsマシンでは、マイクロSDカードに書き込みができる状態にしておいてください。

(2)imager_1.8.5.exeを起動
起動したら、使用しているRaspberry piの種類、OS、SDカードフォルダーを指定します。
今回、最新版のbookwormOSを選択しましたが32bit版やLegasy版でも動きます。

次へを押したら、編集します。あとからでも出来ますが、ここでやっておくと楽です。
Wi-Fiを使わないときは、設定は不要です。


(3)Raspbery piを起動
 書き込みが終了したら、マイクロSDカードをRaspberry piに刺して起動します。
 この時に、使用するUSBカメラも接続しておきます。

 起動したら、まず、プログラムを最新にアップデートしておいてください。

sudo apt update
sudo apt upgrade

起動後は、英語モードで起動します。日本語での表示にしたい場合は、次のところを設定します。


Location ー> Set Location

設定がおわれば再起動します

sudo reboot

2.mjpg-streamerインストール
(1)mjpg-streamerインストール
sudo apt install -y git cmake libjpeg-dev
cd ~/
git clone https://github.com/neuralassembly/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make

(2)raspberry piのIPアドレスを確認

ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.0.24  netmask 255.255.255.0  broadcast 192.168.0.255
       inet6 fe80::a447:71e2:bc3c:3f68  prefixlen 64  scopeid 0x20<link>
       ether e4:5f:01:ad:0d:d7  txqueuelen 1000  (イーサネット)
       RX packets 4939  bytes 465316 (454.4 KiB)
       RX errors 0  dropped 117  overruns 0  frame 0
       TX packets 46909  bytes 68361020 (65.1 MiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       loop  txqueuelen 1000  (ローカルループバック)
       RX packets 19  bytes 2169 (2.1 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 19  bytes 2169 (2.1 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.0.25  netmask 255.255.255.0  broadcast 192.168.0.255
       inet6 fe80::b178:fe26:2681:1541  prefixlen 64  scopeid 0x20<link>
       ether e4:5f:01:ad:0d:da  txqueuelen 1000  (イーサネット)
       RX packets 626  bytes 173927 (169.8 KiB)
       RX errors 0  dropped 104  overruns 0  frame 0
       TX packets 72  bytes 7279 (7.1 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  co

この表示だとeth0に192.168.0.24が割り当てられています。

(3)mjpg-streamerが動くか確認
./start.sh

エラーが出なければ動いています。

(4)mjpg-streamerを確認
同一ネットワーク内のブラウザから(ラズパイのブラウザでもOK)
上記の場合、eth0のアドレスは、192.168.0.24なので

http://192.168.0.24:8080

これで、画面が出ます。


Streamをクリックするとstream画像となります。

(5)mjpg-streamer自動起動設定
cd /etc/systemd/system
mjpg-streamer.serviceというファイルを作ります。
エディターには、nanoを使います。

sudo nano mjpg-streamer.service

下記内容を張り付けてください。
自分のディレクトリー名というところは、自分のRaspbery piのホームディレクトリー名ですので
必ず変更してください。

[Unit]
Description=WebIOPI
After=syslog.target

[Service]
Type=simple
WorkingDirectory=/home/自分のディレクトリー名/mjpg-streamer/mjpg-streamer-experimental
ExecStart=/home/自分のディレクトリー名/mjpg-streamer/mjpg-streamer-experimental/start.sh
TimeoutStopSec=5
StandardOutput=null

[Install]
WantedBy = multi-user.target

【nanoの保存・終了コマンド】
ctrlキー + oキーを押して enter で書き込み (oは、オーです)
ctrlキー + xキーを押して終了

自分のディレクトリー名というところは、自分のRaspbery piのホームディレクトリー名です。


上記で作成したサービスファイルをシステムに読み込ませます。
sudo systemctl daemon-reload

ラズパイ起動時に自動起動させたいので、次のようにコマンドを実行します。
sudo systemctl enable mjpg-streamer.service

なお、
@MJPG-Streamerのサービスを「開始」する場合は次のようにコマンドを実行します。
sudo systemctl start mjpg-streamer.service

AMJPG-Streamerのサービスを「停止」する場合は次のようにコマンドを実行します。
sudo systemctl stop mjpg-streamer.service

BMJPG-Streamerのサービスの「稼働状況を確認」する場合は次のようにコマンドを実行します。
sudo systemctl status mjpg-streamer.service

再起動します。
sudo reboot

(6)mjpg-streamer.serviceが自動起動していることを確認
sudo systemctl status mjpg-streamer.service

この画面がでればmjpg-streamerが自動起動しています。

3.外部からアクセスするための設定
(1)Raspberry piに固定IPアドレスを割り当てます。
 これまでは、/etc/dhcpcd.confファイルを変更すればIPアドレスを固定化できていましたが
 最新のOSをbookwormになってからネットワーク設定が NetworkManager に切り替わっています。
 設定は、GUIで設定できるnmtuiコマンドを使います。

 eth0に192.168.0.34/24を固定する。ゲートウェイアドレスとDNSサーバーアドレスは、192.168.0.1/24
  wlam0に192.168.0.33/24を固定する。ゲートウェイアドレスとDNSサーバーアドレスは、192.168.0.1/24

 sudo nmtui



ipv4の「この接続には、IPv4アドレス設定が必要になります」にXを入れるのを忘れないでください。
あとは、OKで保存します。

wlan0も変更が必要であれば同じように変更します。

あとは、eth0と同じように変更していきます
修正が終れば再起動します。

reboot

再起動したらIPアドレスが固定IPに変更されているか確認します。

ifconfig


無事にIPアドレスが設定されています

5.mydns.jpに登録
 ドメインと動的IPアドレスを関連付けすることで外部からmjpg-streamerの画面を見ることができるようになります。
 mydns.jpに登録してIDとパスワードを入手します。
 ログインしたら自分のドメインが登録できますのでhowtouse等の画面を見ながら設定してください。
 ちなみに私は、yjedmr.mydns.jpを登録しました。

(1)mydns説明画面
(2)登録画面
   ここに詳しく登録方法が説明されています。
(3)ログイン
   mjpg-streamerにアクセスするためのドメインを画面の指示に従い登録します。
   ここあたりを参考にしてください。
(4)Linuxでの自動登録方法
   ページの後半部分にLinuxでの自動登録方法が説明されています。
ここを読んで理解したら下記を参考に設定してください。

sudo su -   #このコマンドでrootになる
nano /root/mydns.sh

#!/bin/sh
wget -O - 'http://mydns111111:tp5YgZv4@ipv4.mydns.jp/login.html'
                         
【説明】
         mydns111111(自分のアカウント) tp5YgZv4(自分のパスワード)

mydns.shに実行権を付けます。

chmod 700 /root/mydns.sh

動作確認します。

/root/mydns.sh

成功すれば次のような表示が出ます

--2024-08-04 13:08:16--  http://mydns767605:*password*@ipv4.mydns.jp/login.html
Resolving ipv4.mydns.jp (ipv4.mydns.jp)... 168.235.72.167, 81.4.101.244, 168.235.80.65, ...
Connecting to ipv4.mydns.jp (ipv4.mydns.jp)|168.235.72.167|:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="Enter MasterID and Password."
Connecting to ipv4.mydns.jp (ipv4.mydns.jp)|168.235.72.167|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘STDOUT’

-                                                               [<=>                                                                                                                                      ]       0  --.-KB/s               <html>
<head>
<title>Free Dynamic DNS (DDNS) for Home Server and VPS etc  | MyDNS.JP</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<LINK href="./site.css" rel=stylesheet type=text/css>

</head>
<BODY BGCOLOR="#FFFFFF"
     TEXT="#304040"
     leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"
>
Login and IP address notify OK.<BR>
login_status = 1.<BR>
<BR>
<DT>MASTERID :</DT><DD>mydns767605</DD>
<DT>REMOTE ADDRESS:</DT><DD>110.54.43.197</DD>
<DT>ACCESS DAYTIME:</DT><DD>2024/08/04 04:08:16 UTC</DD>
<DT>SERVER ADDRESS:</DT><DD>168.235.72.167</DD>
<BR>

</body>
</html>
-                                                               [ <=>                                                                                                                                     ]     618  --.-KB/s    in 0s

2024-08-04 13:08:16 (8.50 MB/s) - written to stdout [618]

6.cronで定期的にIPアドレスとドメインを紐づけ
crontab -e

# m h  dom mon dow   command
*/20 * * * * /root/mydns.sh 1> /dev/null 2> /dev/null

cronの時間設定は、いろいろな設定ができるのでネットで検索してください。
このあたりを参考にしてください。
上記は、20分に1回mydns.jpにアクセスする設定

7.ルータのポート転送を設定する
  使用しているルーターからRaspbery piのmjpg-streameが動いている8080へポート転送します。
  私が使用しているバッファローのルーターは、ポート変換となっていて、こんな感じで設定します。
  機種によっていろいろありますので、使っているルーターの説明書を見て設定してください。


ポート転送の設定が出来たらIPアドレスとドメインが紐づけされたか、ここで確認できます
ここでmydns.jpで設定したドメインを入力して、プロバイダーから割り当てられた動的IPアドレスが
表示されれば成功です。

登録ドメイン:8080で外部アクセスできるか確認してください。
私の場合は、
http://yjedmr.mydns.jp:8080


あと、Streamerをクリックすると画面が大きくなります。
無線機でデジピーターにアクセスして画面が変わるのを確認してください。

なお、モバイルルーターの場合は、プロバイダーからグローバルIPアドレスが割り当てられない場合も
多くあります。自分の利用しているプロバイダーがグローバルIPアドレスを付与している会社か確認が
必要です。このあたりを参考にしてください
プライベートアドレスしか付与されない場合は、mydns.jpは、利用できません。

【グローバルIPがもらえるモバイルルーターでない場合の解決方法】
 少し、高度になりますが管理者用と割り切ってSoftEtherを利用してvpnでプライベートアドレスに接続する方法が
あります。ここでの説明は、割愛しますがひとことで言うと、SoftEtherサーバをraspberry piにインストールして
windows端末等のsoftetherクライアントからアクセスする方法です。詳細を知りたい方は、ご連絡ください。
(2024.08.04)