讓 Telegram bot 告訴你樹莓派的 IP 吧!

更新於 發佈於 閱讀時間約 9 分鐘
使用本文方式需要以下條件:
Telegram(通訊軟體)
Raspberry Pi + Linux based 的作業系統(例如: Raspberry Pi OS )

前言(廢話)

這個其實已經是老問題了,Paspberry Pi 各種教學文除了教你安裝 OS 外,還會教你怎樣設定連上網路,之後拿到 IP 來遠端。可是,如果常常帶來帶去移動到不同的網路環境底下也就算了,為什麼在固定環境底下 IP 還是一個禮拜換一次阿阿阿(原 PO 因為租屋處網路奇怪的設定崩潰中)

為了解決這個問題,有很多前輩們弄了各種方案:開機自動寄 e-mail、連接一個小螢幕(需要另外加購)充分利用 GPIO 等等。

可是我不想買小螢幕(不然我外殼蓋子蓋不上,好心酸阿),也不想用 e-mail 的方式(還要開信箱好麻煩,重點還要搞一堆設定才能存取 SMTP)。之前寫了一個批次檔來掃描,每次都要等他跑完(指定範圍內掃一輪)花費的時間不說,我還記不起樹莓派的 mac 位置,掃完了還要去翻到底 mac 是多少才能對照出 IP,整個!$%#&^&&*%$%@

有天靈機一動,我為什麼不用 Telegram bot 呢?開機連上網路自動執行,抓到 IP 用 Telegram 傳給我,我也不用開信箱、不擔心要多買 N 個小螢幕,也不用開機前擔心會需要外接螢幕就只為了看 IP,聽起來多棒啊~那就開始看要如何實作吧

正文開始前

先提一下我的環境,不過大家都是樹莓派不用分那麼清(X)基本上應該都能用(O)所以別擔心

硬體:Raspberry pi 4 B 8GB
OS:Raspberry Pi OS

這邊也先給大家已經寫好的 Github 專案,如果您對 Linux 算熟悉、也有 Telegram 且有開過 bot 的經驗,想直接跳到部署的話可以參考:

hms5232/get-LAN-IP-telegram-bot
拿到區域網路 IP 並傳給你的 Telegram bot.github.com

前置作業

OS 和連上網路

安裝 OS 和設定連線想必大家應該都做好了,沒做好也沒關係,中文教學文很多自己找看順眼的。

Telegram

接著是 Telegram,這是一個相當好用幾乎各方面都屌打 LINE 的通訊軟體,會看到這邊的人應該都有了吧?沒有的話也歡迎下載來試試看。

有 Telegram 帳號後,首先必須開一個機器人(我自己是有一個機器人專門開發測試用,平常不會有連線,所以直接用那隻)。關於在 Telegram 上開一隻 bot 的方法,也有很多文章。這篇文章我認為講得滿詳細,過程和原理都有講解,不知道看哪篇的人可以參考看看。

確定手上有機器人的 token 後,我們就繼續下一步吧

Python & pip3 & Poetry

基本上各 Linux 的發行版應該都有 Python3 了吧?沒有的話請自行依照各發行版不同安裝。

接著安裝 pip3: sudo apt install python3-pip

(可選)如果怕環境被安裝的套件影響,或是有什麼特殊需求需要使用虛擬環境的話,請安裝 Poetry: https://python-poetry.org/docs/#installation

系統必須要的相依套件

sudo apt install libffi-dev libssl-dev

開始部署

這邊已經幫大家寫好機器人了,請直接下載或 clone 使用:
https://github.com/hms5232/get-LAN-IP-telegram-bot

hms5232/get-LAN-IP-telegram-bot
拿到區域網路 IP 並傳給你的 Telegram bot. github.com

專案位置請自行依照習慣即可,此處以 /home/pi/Documents/get-LAN-IP-telegram-bot 做示範。

Python 第三方套件

如果您剛剛有安裝 Poetry 的話,只需要進入專案資料夾後使用以下指令即可:

poetry install

沒有的話請接著使用 pip3 來直接安裝於系統上:

pip3 install python-telegram-bot==12.5
pip3 install ifcfg

設定環境設定檔案

cd into project dir, cp config.py secret.py and edit secret.py file for your env.

簡單來說,設定檔要什麼你就填入什麼就對了。

讓機器人跑起來吧

啟動指令

這邊先介紹下啟動的指令

python3 bot.py  # 使用一般方法安裝者
poetry run python3 bot.py # 使用 Poetry 者

執行後如果成功,那就可以做最後一哩路──開機自動執行。

開機自動執行──將啟動指令寫成 shell script

這邊可以參考我之前寫的另外一篇教學文
https://hms5232.medium.com/raspberry-pi-%E9%96%8B%E6%A9%9F%E8%87%AA%E5%8B%95%E5%9F%B7%E8%A1%8C-shell-script-e5b60781bfa0

Raspberry pi 開機自動執行 Shell script
hms5232.medium.com

首先,修改專案根目錄中的 autobotstart.sh (或是自己寫一個,放在自己喜歡的位置等都可以)依照自己專案放置的位置、執行機器人的方式(是否使用 pipenv)來修改內容。

舉例來說,autobotstart.sh 預設是使用 Pipenv 並放在 /home/pi/Documents/get-LAN-IP-telegram-bot,所以 shell script 的內容就是:

poetry run python3 bot.py

如果有需要確認輸出內容或 debug 的則可依照專案內的寫法:

poetry run python3 bot.py > /home/pi/Documents/get-LAN-IP-telegram-bot/autorunbot.log 2>&1 &

如此一來,執行機器人的輸出就會放在專案根目錄下。

這邊建議最好是採用專案提供的範例寫法,我自己就是一開始沒寫,結果都沒成功,但確定有執行,覺得很疑惑。一輸出才發現原來是 root 找不到pipenv 這個指令Orz因此才會看到 shell script 中將 pipenv 的執行檔路徑完整標示出來,系統才能成功執行。

當然,別忘了加上執行權限:

chmod +x /home/pi/Documents/get-LAN-IP-telegram-bot/autobotstart.sh

開機自動執行──讓系統開機時執行 Shell script

這邊就我之前寫的教學文中說的,將 Shell script 寫在 /etc/rc.local 裡,大概長成這樣:

/home/pi/Documents/get-LAN-IP-telegram-bot/autobotstart.sh

重新開機,有收到訊息就完成了,恭喜恭喜~

結語

完成專案超爽的!雖然樹莓派開機很快,但有時候還是不知道到底開機完成沒,還要看燈號閃爍情形;即便確定開好機了,也不知道到底 IP 是不是被換掉了(就看到 Windows 遠端桌面在那邊跑啊跑,最後跳失敗)現在我只要看到 telegram 訊息來了就知道開機完成、IP 是多少了。

希望這篇文可以幫助到各位,有任何問題,歡迎留言或發 issue 詢問;如果有幫助或覺得我寫的不錯,也歡迎對這篇文按讚拍手或是幫 repo 按星星,甚至要贊助一下也可以XD那我們就有機會再見囉。

Buy hms5232 a Coffee. ko-fi.com/hms5232
Buy a Coffee for hms5232 with Ko-fi.comco-fi.com

留言
avatar-img
留言分享你的想法!
avatar-img
hms5232的沙龍
5會員
22內容數
hms5232的沙龍的其他內容
2025/04/03
輕小說式標題,看標題就看完整篇文。重點就是標題說的,有興趣聽廢話再點進來吧。
Thumbnail
2025/04/03
輕小說式標題,看標題就看完整篇文。重點就是標題說的,有興趣聽廢話再點進來吧。
Thumbnail
2025/03/15
謝謝蘇媽讓我的 9700X 突飛猛進,讓我拿到 3DMark Free PC Upgrade 成就!
Thumbnail
2025/03/15
謝謝蘇媽讓我的 9700X 突飛猛進,讓我拿到 3DMark Free PC Upgrade 成就!
Thumbnail
2024/12/29
上個月還在職的時候,公司有提供一些名額給員工報名參加這次的台北葡萄酒馬拉松。雖然我自己並沒特別喜歡喝紅酒,不過既然有免費的機會,當然是要去看看了!(不知道哪裡來的勇氣,相信自己能跑馬拉松)
Thumbnail
2024/12/29
上個月還在職的時候,公司有提供一些名額給員工報名參加這次的台北葡萄酒馬拉松。雖然我自己並沒特別喜歡喝紅酒,不過既然有免費的機會,當然是要去看看了!(不知道哪裡來的勇氣,相信自己能跑馬拉松)
Thumbnail
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
本文介紹了作者使用 Rust 重寫的一個專案,目的是為了在樹梅派上取得 LAN IP,並透過 Telegram 機器人發送訊息。作者首先提到在樹梅派上使用 Python 版本時遇到的問題,之後才開始討論為什麼選擇了 Rust 重寫的理由。
Thumbnail
本文介紹了作者使用 Rust 重寫的一個專案,目的是為了在樹梅派上取得 LAN IP,並透過 Telegram 機器人發送訊息。作者首先提到在樹梅派上使用 Python 版本時遇到的問題,之後才開始討論為什麼選擇了 Rust 重寫的理由。
Thumbnail
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
Thumbnail
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
Thumbnail
在先前的教學中,我都教大家程式寫完以後就架設到「Heroku」的雲端上做使用,但如果你想嘗試其他自創的功能,這時一定會需要一直Debug,如果每次想看結果都要部屬一次Heroku,那這樣就變得相當麻煩,所以今天我就教大家如何利用本機端來提供外網連接的方式吧!!
Thumbnail
在先前的教學中,我都教大家程式寫完以後就架設到「Heroku」的雲端上做使用,但如果你想嘗試其他自創的功能,這時一定會需要一直Debug,如果每次想看結果都要部屬一次Heroku,那這樣就變得相當麻煩,所以今天我就教大家如何利用本機端來提供外網連接的方式吧!!
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
Thumbnail
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
Thumbnail
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
Thumbnail
應該很多人會將 Raspberry pi 用作網頁資訊展示或類似Kiosk機台之類的用途,但要成功的設定,其中的毛真的多到會讓人起笑,所以我就先將我在網路上四處蒐集並實測成功的流程整理一份在此,以防不時之需。
Thumbnail
應該很多人會將 Raspberry pi 用作網頁資訊展示或類似Kiosk機台之類的用途,但要成功的設定,其中的毛真的多到會讓人起笑,所以我就先將我在網路上四處蒐集並實測成功的流程整理一份在此,以防不時之需。
Thumbnail
安裝 FBTerm 與 Fcitx 輸入法,解決樹莓派純文字介面 ( tty ) 無法正常顯示中文的問題
Thumbnail
安裝 FBTerm 與 Fcitx 輸入法,解決樹莓派純文字介面 ( tty ) 無法正常顯示中文的問題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News