ディスプレイもキーボードも接続していないラズパイに、
外部PCからSSH接続(VNC、VSCodeなど)する際、
IPアドレスが変わっていて、ディスプレイを接続した経験はないでしょうか?
そんな時、ラズパイの電源を入れると、
ラズパイのIPアドレスを、Lineに通知してくれたら便利ですよね。
というわけで、
ラズパイの電源を入れると、IPアドレスをLIneに通知してみますね。
やることリスト
番号 | 作業項目 | 備考 |
1 | IPアドレスをLineに送信 | |
2 | 起動時にファイル実行 |
IPアドレスをLineに送信
LineからAccess Token取得に関しては、
以下記事「LineからAccess Token取得」の章を
参照ください。
プログラム
以下の通り、ディレクトリとファイルを作成する。
この章では、以下赤字のファイルを修正する。
/home/pi/work/ip_line/
└line.py
line.py
以下、
“Your Access Token” の箇所に、
「LineからAccess Token取得」 で取得した Access Token の文字列を設定下さい。
# -*- coding: utf-8 -*-
import requests
import ipget
def line(message: str):
url = "https://notify-api.line.me/api/notify"
token = "Your Access Token"
headers = {"Authorization": "Bearer " + token}
params = {"message": message}
r = requests.post(url, headers=headers, params=params)
print(r.text)
if __name__ == '__main__':
ip_address = ipget.ipget()
message = f"IP Address: {ip_address.ipaddr('wlan0')}"
line(message)
実行
以下コマンドでプログラムを実行します。
python3 line.py
結果として、
Lineに「ラズパイのIPアドレス」が通知されれば成功です!
起動時にプログラム実行
ラズパイ起動時にプログラムを実行する為に、
/etc/rc.local ファイルに、
実行したいプログラムを書いていきます。
ただ、 それだけではラズパイ起動時に /etc/rc.local は実行されません。
ラズパイ起動時に /etc/rc.local を実行するには、
ラズパイのコンフィグ設定が必要になります。
起動時にプログラム実行
sudo nano /etc/rc.local
でファイルを開き、
ファイルの最後の行、
exit 0
の前に、以下を追加します。
/usr/bin/python3 /home/pi/work/ip_line/line.py &
コンフィグ設定
ラズパイ起動時に /etc/rc.local を実行する為に、
ラズパイのコンフィグ設定を行います。
以下コマンドでコンフィグ画面へ入ります。
sudo raspi-config
- 「1 System Options」を選択。
- 「S6 Network at Boot」を選択。
- 「Would you like boot to wait until a network connection is established?」で、「はい」を選択。
- 「Waiting for network on boot is enabled」で、「<了解>」を選択。
以上で設定は完了です。
実行
では、ラズパイを再起動してみて、
Lineに「ラズパイのIPアドレス」が通知されれば成功です!
最後に
如何だったでしょうか?
無事、ラズパイのIPアドレスは取得出来ましたか?
これが出来ると、
外部PCからラズパイにSSH接続出来ない時でも、
わざわざディスプレイを接続しなくても済みますね♪
少しでも皆さんのお役に立てたら嬉しいです。
以下記事では他にも色んな電子工作を作っています。
あなたが作りたいモノのヒントがあれば嬉しいです。
記事を更新するとTwitterでつぶやきます。
フォローしてもらうと、記事を書くモチベーションが上がります。
下のTwitterアイコンからフォローお願いします。
不明な点があればページTOPの「お問い合わせ」にてご連絡下さい。
もし一人で作るのが難しかったら、
一緒に作るサービスをしています。
お気軽に ページTOPの「お問い合わせ」にてご連絡下さい。