Raspberry PiのIPアドレスを確認する ~ 山の中で確認するには?
Raspberry PiにGPSなどのセンサーを付けて外出先(私は山の中が多い)で運用することがあります。その場合、スマートフォンでテザリングをしてRaspberry PiをVNC接続で操作します。
しかしテザリングでは、状況によってRaspberry PiのIPアドレスが変わってしまうことがあり得ます。そのような時では、HDMIディスプレイがないとIPアドレスを確認ができません。それでは、どうすればよいでしょうか。
(最近、raspberrypi.localを使っていません。それを前提に話を進めます)
方法を考えてみました。
1.テザリングをしているスマートフォン以外にPC等がある場合
テザリングをしているスマートフォン以外にPCや別のスマートフォン、タブレットがあれば、Raspberry PiのIPアドレスを確認することができます。
Wireless Network Watcher (Windows)
Windowsマシンがあるなら、「Wireless Network Watcher」が良いでしょう。同一LAN上のデバイスをリストで出してくれます。上記のように、Raspberry Piがどれかが一目瞭然です。
Fing (Android)
テザリングをしているスマートフォン以外にスマートフォン、タブレットがあれば、Raspberry PiのIPアドレスを確認することができます。Fingを使ってみました。
同一LAN上のデバイスをスキャンします。
Fingは、デバイスの名前やOSなども表示されていて、理想的なネットワークスキャナーです。テザリングでない場合は最強でしょう。
2.テザリングしているスマートフォンしかない場合
テザリングしているスマートフォン以外にデバイスがない場合が困りました。Androidの「設定」「パーソナルホットスポット」(バージョンによってメニューが違いますので注意)にある「接続管理」で、接続しているデバイスの一覧が出るのですが、MACアドレスしか分かりません(バージョンによっては、見れる?)
上記のアプリケーションFingはWi-Fiネットワークに接続することが前提のようで、テザリングを有効にするとWi-Fiが無効になるのでうまくいきません。(やり方があるのかも?良かったら教えてください)
あれこれ探すうちに、「NetTools」というアプリケーションで取得できました。
NetTools
Playストアから、「NetTools」をインストールします。
起動したら、メニューボタンを押します。
「Net scan」を選択します。
Net scanの画面が表示されます。画面にスキャンするIPアドレスの範囲があります。この範囲を指定します。テザリングしているスマートフォンのIPアドレスは分かっているので、最後の3桁IPアドレスの指定を1から255で指定します。
「IP1」ボタンを押します。「XXX.XXX.XXX.1」と指定します。
「IP2」ボタンを押します。「XXX.XXX.XXX.255」と指定します。
スキャンボタンを押します。スキャン結果はIPアドレスのみで分かりずらいため(Playストアの画面だと、追加情報が出てますが)、他のデバイスは止めておきましょう。テザリングをしているスマートフォンのIPアドレスの他にIPアドレスが表示されました。これが、Raspberry PiのIPアドレスです。(192.XXX.XXX.176)
これで、山の中でもIPアドレスが確認できます。
実際にIPアドレスが変わってしまう場合は少ないと思いますが、用意しておく方が良いでしょう。
3.Raspberry PiにキャラクタLCDを付けるのも良いが
Raspberry PiにキャラクタLCDを接続して、起動時に表示するといった例が多くあります。これも良い方法ですが、何台もRaspberry Piを所有すると間に合いません。それにGPIOを使ってしまうのも問題です。場合によってはGPIOが競合して、キャラクタLCDを使えない場合も出るでしょう。
4.Raspberry Pi以外のデバイスのIPアドレスを確認する
今回はRaspberry Piで話を進めましたが、M5Atomでも使いたいところです。しかし、Atom LiteのIPアドレスは取得できませんでした。Atom Liteは、Wireless Network Watcherでも表示できませんでした。
また、Net scanは、Windows11の検出ができませんでした。ちょっと、今回の結論は早すぎるみたいです。何か分かったら報告します。
番外編:Line NotifyでIPアドレスを送信する
圏外では使えませんが、IPアドレスをスマートフォンにLine Notifyで送るというのも有効でしょう。Python版ですが、以下のサイト様の記事が良いです。
C言語版も作りました。やっぱり自分はC言語じゃないと落ち着きません。