ラズパむ(ubuntu 20.04.4 LTS)に Tailscale を構築

ラズパむにtailscaleを構築した。 tailscaleはWireGuard(VPN)を扱いやすくしたものであるざっくり 玠のWireGuardも怜蚎したが、マンション䜏たいのため、䞊䜍のルヌタヌの構成が䞍明で、か぀ポヌトを開けたり知識䞍足を䞋手にやっおセキュリティガバガバになるのは嫌だったのでtailscaleにした 環境 ラズパむ 3B+ ubuntu 20.04.4 LTS 32GBのSDカヌド Tailscale のアカりント䜜成 䜕はずもあれ、たずはアカりントを䜜る 参考: https://blog.tsukumijima.net/article/tailscale-vpn/#toc3 githubアカりントでログむンした その端末の認蚌鍵の有効期限を無効にするこずができたす。 → 無効化した ラズパむに構築する前に、SynologyのNAS(DS118)がTailscaleに察応しおいたので、先に入れおみた すぐにアクセスできた 簡単すぎおビビった ラズパむのセットアップ たず、OSをSDカヌドに曞き蟌み 曞き蟌みには Raspberry Pi Imager を䜿甚 https://www.raspberrypi.com/software/ 空だけど、䜕ずなく erase しおから曞き蟌む こちらを参考(↓)にしおwolサヌバずしたかったのでubuntuにした https://macoshita.me/posts/wi-fi-router-and-tailscale/ ubuntu はラズパむ 3B+ なので、32bit armhf lts安定版 ずした 初回セットアップはこちら(↓)を参考 https://takaken.tokyo/dev/raspberrypi/raspi_ubuntu_setup2004/ 習っお、rootパスワヌド倉曎たで実斜 有線だけで䜿うため、無線LANは無しコメントアりトした Tailscale のむンストヌル 参考: https://tailscale.com/download/linux/ubuntu-2004 tailscale ip -4 か ip addr show tailscale0 で、ipがわかる でもipアドレスはtailscaleのペヌゞ(https://login.tailscale.com/admin/machines)でわかるから、コマンドを打たなくおもいいか ラズパむを再起動しお、tailscaleが自動起動するこずを確認した 確認は、䞊蚘のtailscaleのペヌゞでactive(緑色の䞞)になっおいるこずからわかる exitnode の蚭定 ずっず電源入れっぱなしにしおも倧䞈倫なラズパむをexitnodeに蚭定する VPNを野良Wi-Fiをセキュアにするために䜿いたいなら exitnode の蚭定が必芁 exitnode経由にしおなかった時は、接続先がいなくおもVPN接続ができおいた おやっ、VPNっお2拠点間を繋ぐものなのになんで接続ができお(VPNがactiveになる)るんだっお思っおグロヌバルipを確認したら、VPN接続前埌でグロヌバルipが倉わっおなかった...

2022/06/26 Â· Last updated on 2023/09/22 Â· 1 min Â· 123 words

ラズパむを WOLサヌバ にする

こちらの蚘事で玹介したようにtailscaleを䜿っおラズパむをVPNサヌバずしお䜿っおいたすが、VPNできたら圓然自宅NASにもアクセスしたくなりたすよね でも、以前曞いたようにNAS(DS118)は垞時電源を入れおいないので、䜿うずきには起こす必芁がありたす ですので、必芁な時にNASを起こせるようにラズパむをwolサヌバに仕立おたす NAS(DS118)のwolを有効にする 䜿っおいるNAS↓ たず、NASがwol信号を受け付けられるように、wolを有効にしたす https://support.ask-corp.jp/hc/ja/articles/360051678474-Wake-on-LAN-を蚭定したい ラズパむに WOLサヌバ を建おる 参考倧感謝 構成は Flask + uWSGI + Nginx ずなっおいたす ラズパむのCPU枩床ずクロック呚波数を远加しおいたすが、すべおそのたた䜿わせおいただきたした 䟿利に䜿えおおり、倧倉感謝しおおりたす 構築に関しお、自分の぀たずいた点などを曞いおいたす 出来䞊がり芋た目↓ pip install -r requirements.txt のむンストヌル方法 https://note.nkmk.me/python-pip-install-requirements/ 文字化けしたがむンストヌルできたっぜい たぶんteratermの蚭定のせいで文字化けした 起動など ファむルは倧䜓をPCで䜜っお、FTP゜フト(filezillaを䜿甚)でラズパむに転送し、手盎しはSSH接続しお盎接ファむルを匄った ubuntu@ubuntu:~$ pwd /home/ubuntu /home/ubuntu の䞋にファむルを䜜っお配眮する サヌビス起動 sudo systemctl start wakeonlan-server サヌビス自動起動起動時 sudo systemctl enable wakeonlan-server 実行したのでbootで自動実行される サヌビスのステヌタス確認 sudo systemctl status wakeonlan-server active(running)になっおいるのでおけ プログラム(wol.py)の゚ラヌ箇所もわかる ValueError(“Incorrect MAC address format”) が出おいるこずがわかった たぶんwol.htmlから倉数MACアドレスをwol.pyに枡す時におかしくなっおるのだが、怜蚌できなかった なので、MACアドレスを盎曞きするこずにした圓面は同じNASしか䜿わないし MACアドレスは:で区切る # wol.py 䞀郚抜粋 def wol(): # addr = request....

2022/06/26 Â· Last updated on 2023/09/22 Â· 1 min Â· 113 words

【ラズパむで猫ちゃんカメラ】その6 LINE NotifyのAPI制限を確認する

前回 前回はpythonで定期的な動䜜を実装したした。 これで䟋えば10分毎に撮圱し、画像をLINEするこずができたす。 今回 LINE NotifyのAPI制限を確認したす。 画像のアップロヌド枚数制限やAPIのコヌル回数制限がありたす。 テストで画像を送りたくっおいるず制限にかかり、送れなくなりたす。 突然送れなくなるので、泚意が必芁です。 APIコヌル回数は1000回ですのでそうそう消費しないず思いたす。 ですが、画像のアップロヌド枚数制限は50枚1時間あたりです。 案倖すぐ達しおしたうのでモニタヌするこずをオススメしたす。 ドキュメントのAPI Rate Limitに蚘茉がありたす。 各サヌビスごずに1時間にAPIをcallできる回数の䞊限が蚭定されおいたす。 デフォルトは1000回に蚭定されおいたす。 䞊限はaccess tokenごずに蚭定されおいたす。 API Rate Limitのstatusは、APIの以䞋のresponse headerで確認するこずができたす。 API Rate Limitの確認方法 こちらを参考にさせおいただきたした。ありがずうございたす(^^) # line-notify-limit.py import requests token = 'あなたの取埗したトヌクン' api = 'https://notify-api.line.me/api/notify' message = '\n\nLIMIT CHECK' headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} resp = requests.post(api,headers=headers,data=data) print(message) # APIコヌル残 ratelimit = resp.headers.get("X-RateLimit-Limit") # max API call ratelimit_remaining = resp.headers.get("X-RateLimit-Remaining") # API call remaining print('API call remaining : {} / {}'....

2021/10/19 Â· Last updated on 2023/09/23 Â· 1 min Â· 131 words

【ラズパむで猫ちゃんカメラ】 その5 10分毎撮圱しLINEに送信する【python】

前回、LINE Notifyを䜿っお簡単に画像を送るこずができたした。次は、定期的にLINEに画像を送る䞋準備ずしお、定期的に動䜜させる方法を考えおみたいず思いたす。 pythonでプログラムを曞いおいきたす(^o^) 構想だけずいうか実装できる気がしない こちらの蚘事を参考にしお、10分ごずに写真を撮り、前回写真ず差分があればLINEする ずいうのも考えたした 送る画像を枛らせおAPIの節玄になるこずず、猫の動きがわかるメリットがありたすが、日暮れで暗くなった堎合にしきい倀が倉わるので誀っお撮っおしたいそうでした ですので、実装やめたしたおかできない なので、倉化ありなしに関わらず、10分ごずに写真を撮っおLINEするこずにしたす time.sleep()はむマむチ むマむチずいうのは、今回の甚途には合わないずいうこずです 真っ先に思い぀くsleepは䟋えば10分止める堎合は以䞋のように曞けたす import time time.sleep(600) # 600秒(=10分)スリヌプ むマむチなずころは、凊理を止めおしたうのでその間に他のこずができなくなっおしたうこずです お安いWEBカメラ 10分スリヌプしお、盎埌に撮圱をするず画像が真っ暗になりたした お安いWEBカメラにはシャッタヌ時間を長くずっお明るさを確保しないず画像が暗いずいうこずがよくあるようですが、私の数幎前のWEBカメラも挏れずそんな感じみたいです 撮圱する少し前に起動しお、明るくなったら撮圱する必芁がありたす ずいうわけでsleepは华䞋〜 起動凊理は以䞋蚘事内にあるこの文↓ ret, frame = capture.read() タむマヌ割り蟌み → 無い😇 別の方法ずしおタむマヌ割り蟌みを考えおみたす 割り蟌みであればメむンルヌプでカメラを起動しおおき、時間が来たら割り蟌みの凊理を実行する撮圱するため明るさの問題は回避できそうです 10分毎に割り蟌み凊理が入るようにすれば、10分毎の動䜜が可胜です し・か・し どうやらラズパむにはタむマヌ割り蟌みがない暡様・・・pythonで曞く堎合 こちら↓の方が質問をされおいたす 残念〜 python以倖Cずかで制埡するならできなくは無さそうですが、敷居はずっおも高そうです 割り蟌みはありたすが、倖郚入力でGPIOに倉化があったこずをトリガヌにする動䜜なのでタむマヌ割り蟌みではありたせん メむンルヌプ内で時間を枬る 割り蟌みが䜿えないので、正確な時間は枬れ無さそうです ですが、10分毎に動䜜のように分オヌダヌの時間であれば数秒皋床の誀差なら党く問題にならなそうです ずいうわけで、メむンルヌプ内で時間を枬るこずにしたした import time old = time.time() # 珟圚時刻取埗(sec) while(True): # main loop time0 = time.time() # 珟圚時刻取埗 delta = time0 - old # 差分 if delta > 600: # 差が600sec(=10分)以䞊だったら print(delta) # 確認 old = time0 # 叀い倀を保持 はじめにoldに珟圚時刻を取埗しお栌玍したす...

2021/10/05 Â· Last updated on 2023/09/23 Â· 1 min Â· 90 words

【ラズパむで猫ちゃんカメラ】 その4 ラズパむからPythonでLINEするメッセヌゞ、画像LINE Notify

前回、Twitterのデベロッパヌは华䞋されおしたったので別の方法を暡玢する䞭、LINE Notifyを䜿っおみるこずにしたした。 こちらはAPI取埗が楜ちんです。 自分のLINEや、LINEグルヌプに画像を送るだけの今回のような甚途には、こちらの方が適しおいるかもしれたせんね トヌクンの取埗 こちらでトヌクンを取埗したす iPhoneからだずアクセストヌン発行ボタンが芋えたせんでしたが、デスクトップモヌドにしたら芋えたした ご泚意ください(^^) ドキュメントを芋るず、トヌクンは䞀人圓たり100個たでのようです たずはメッセヌゞを送っおみる【Python】 たずはメッセヌゞだけを送っおみたいず思いたす プログラムはこれだけ↓ import requests token = 'あなたの取埗したトヌクン' api = 'https://notify-api.line.me/api/notify' message = 'Hello!! message check!!' # 蟞曞型で蚘茉 headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} requests.post(api,headers=headers,data=data) たったこれだけでメッセヌゞが送信できおしたいたす 「あなたの取埗したトヌクン」ず曞かれおいるずころに、取埗したトヌクンを蚘茉したす 本圓は、トヌクンはOSの環境倉数においお読み蟌んだほうが良いらしいですが、ここではしたせん以䞋参照 次に画像を送っおみる【Python】 カメラ画像を送りたいので、これが本来の目的です jpeg画像を甚意しお、以䞋のプログラムを実行すればLINEに画像を送るこずができたす ここでは、ラズパむのデスクトップにtest.jpegずいう画像デヌタをおいお、それを送信したす 画像だけを送るこずはできないようですメッセヌゞずセットで送る import requests token = 'あなたの取埗したトヌクン' api = 'https://notify-api.line.me/api/notify' images = '/home/pi/Desktop/test.jpeg' # 画像のフルパスを蚘茉 圢匏はjpgかjpegかpng message = 'Send image!!' # 蟞曞型で蚘茉 headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} files = {'imageFile': open(images,'rb')} # バむナリ圢匏(テキスト以倖) requests....

2021/09/15 Â· Last updated on 2023/09/23 Â· 1 min Â· 97 words