はじめに 2025 Jun 24
家のルーターに、有線やWiFiにより接続されたラズパイやアルディーノあるいはPCは、
お互いにコマンドや情報のやり取りを行いますが、
それにはお互いの IP アドレスを知っている必要があります。
一番簡単な方法は、ルーターの設定機能を使い、
それぞれのデバイスに固定 IP アドレスを予め割り振っておくことです。
うちのラズパイやアルディーノもこの方法でこれまで稼働してきました。
今回、より自由度の高いシステムを目指し、
固定 IP アドレスを止め、DHCP(Dynamic Host Configuration Protocol~
ネットワークに接続されたデバイスに自動的に IP アドレス等が割り当てられる規約)
に変更しました。
(元々はDHCPがデフォルトなので「戻した」ですね)
本ページはその時のメモです。
尚、私はこの辺りに詳しいわけではないので、
Google Gemini との対話をベースに進めました。
ラズパイのみ固定アドレスにして他をDHCP化 2025 Jun 24-25
アクセスの方向としては
司令塔のラズパイに周辺デバイスがアクセスするのが主です。
また、周辺デバイスがアクセスするタイミングで、
既にDHCPにより周辺デバイスには IP アドレスが割り振られており、
アクセス時に自分のアドレスをラズパイに伝えることでラズパイは周辺を把握出来ます。
そこで、まずラズパイのみラズパイ側の設定で固定 IP アドレスにして、
他をDHCPにする構成を検討しました。
一般に固定 IP アドレスはルーターが与えるものですが、
デバイス側が勝手に自分の IP アドレスを決めて運用することも可能のようです。
ただし、ルーターはデバイスが勝手に決めたIPアドレスを知らないので、
アドレスが衝突しないようにする必要があります。
例えば、多くのDHCPサーバーは小さい数字から割り当てていく傾向があるので
サブネットの最後の方のIPアドレス(例: 10.186.34.250など)を選ぶと
衝突のリスクを減らせます。
ラズパイを1度DHCPでルーターに接続し、$ip addr コマンドなどで、
割り当てられた IP アドレスとサブネットマスクを確認します。
その情報を元にラズパイの /etc/dhcpcd.conf に以下を追加設定します。
/etc/dhcpcd.conf
# added interface wlan0 static ip_address=10.186.34.128/24 # 固定IPアドレス/subnet mask static routers=10.186.34.1 # router IPアドレス gateway static domain_name_servers=10.186.34.220 # PCを参照 #static domain_name_servers=8.8.8.8 # Google DNS server設定後 リブートし $ sudo reboot 確認します $ ip addr show wlan0 この状態でラズパイだけ自分で決めた固定 IP アドレスとなっています。 さて、ルーターのサブネットが変わらなければ、 これで、ラズパイは固定IP、他はDHCPで運用出来ます。 サブネットが変わった時の影響箇所、すなわち要修正箇所は以下となります。
サブネットが頻繁に変わることが分かり全てDHCP化 2025 Jun 25 - jul 3
ルーターがスマホの tethering だったりすると、
更新時とか、再起動時とか、外出から帰った時とか、
頻繁にサブネットが変わることが分かりました。
その度に上記の修正はしていられないので、
ラズパイもDHCPにしないと運用出来ないことが分かりました。
ラズパイもDHCP接続にすると、
IP アドレスが分からずコードが書けなくなります。
そこで Name Server を導入し、
http://192.168.1.10 などの IP アドレスでアクセスするのではなく、
http://raspberrypi.local/ のように名前で呼び出せるようにします。
Name sever の導入
ラズパイの上記の /ets/dhcpcd.conf は止め、追加部分は削除。 Raspi IP address watcher 2024 Sep 2,3
上記の※要対策として、
ラズパイの IP アドレスが変ったら、
新しいアドレスをリンクの形式でGmailすることで、
Bookmark 代わりとすることにしました。
最初は、従来から走っている audio_corner_server.py
に機能追加しようと思いましたが、
この機能は独立したアプリとして作れますね。
1時間毎に自分の IP アドレスを調べ(ポーリンして)以前のアドレスから
変っていたらGmailを送信するアプリ
Raspi IP address watcher → www/src/ip_address_watcher.py を作ります。
Google Gemini より - Gmailを送信するための事前準備
Gmailメール送信には、セキュリティの理由から、 通常のパスワードではなく「アプリ パスワード」を使うそうで、 それを作成します。
![]() リンクをクリックするとラズパイの(リモコン)サイトが表示されます。 ![]() |