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

閱讀時間約 8 分鐘
使用本文方式需要以下條件:
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 的經驗,想直接跳到部署的話可以參考:

前置作業

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
專案位置請自行依照習慣即可,此處以 /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
首先,修改專案根目錄中的 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那我們就有機會再見囉。

avatar-img
4會員
18內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
Thumbnail
Copilot 不僅可在 Skype 上使用,現在也能在 Telegram 上使用聊天機器人,為用戶提供更便捷、高效的創作和交流體驗。
Thumbnail
在這篇文章中,將繼續介紹 TG Bot 整合 MongoDB 的相關操作。主要包括對 domain 進行驗證操作,使用的工具有 Python 、MongoDB 和 TG Bot。具體的功能需求包括新增 domain 前檢查 domain 憑證以及透過 TG Bot 檢查所有 domain 是否過期。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
Thumbnail
剛開始用Threads脆的時候,找不到像IG或X等一樣可以開小號的設定,想說沒有或找不到就算了,剛剛閒來無事我又開始摸摸脆,在設定看到了切換個人檔案😯 有點怕怕地按新增個人檔案了下去,竟然可以使用我在IG的所有帳號,點選右下檔案大頭照也可以🙂 就這樣順利也在脆開了IG的小號
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
pip install jupyter jupyter notebook --allow-root 在本機打上啟動後網址就可以使用了 
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
Thumbnail
Copilot 不僅可在 Skype 上使用,現在也能在 Telegram 上使用聊天機器人,為用戶提供更便捷、高效的創作和交流體驗。
Thumbnail
在這篇文章中,將繼續介紹 TG Bot 整合 MongoDB 的相關操作。主要包括對 domain 進行驗證操作,使用的工具有 Python 、MongoDB 和 TG Bot。具體的功能需求包括新增 domain 前檢查 domain 憑證以及透過 TG Bot 檢查所有 domain 是否過期。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
Thumbnail
剛開始用Threads脆的時候,找不到像IG或X等一樣可以開小號的設定,想說沒有或找不到就算了,剛剛閒來無事我又開始摸摸脆,在設定看到了切換個人檔案😯 有點怕怕地按新增個人檔案了下去,竟然可以使用我在IG的所有帳號,點選右下檔案大頭照也可以🙂 就這樣順利也在脆開了IG的小號
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
pip install jupyter jupyter notebook --allow-root 在本機打上啟動後網址就可以使用了 
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。