【ラズパイピコ】Raspberry Pi Pico Wを使用してスマホにLINE通知する方法(LINE Notify)
LINE Notifyを設定しておけば、Raspberry Pi Pico Wでメッセージを送信した際に、LINE(スマホやタブレットなど)で設定済みの通知を受け取ることが可能です。
まずLINE Notifyとは、外部Webサービスからの通知を公式アカウント「LINE Notify」から受け取ることができるサービスです。
LINEのアカウントがあれば無料ですぐに設定可能です。
本記事では、LINE Notifyを設定し個人宛用・グループ宛用のトークン発行手順をご説明します。
その後Raspberry Pi Pico Wのお試しソースコードで、LINEに通知が来るかテストを行います。
LINE Notifyでトークンを発行しWebサービスから通知を受け取るための準備
LINE Notifyでトークンを発行(個人宛にメッセージを受け取る場合はこの作業のみ)
LINEアカウントを持っている前提で話しを進めます。
LINE Notifyの登録を行うには、まず公式HPを開きます。
尚、以下のトークン発行するためにはPC版サイトである必要があります。
下記URLから開くことができます。
https://notify-bot.line.me/ja/
トップページ右上の「ログイン」を押すと、LINEのログイン画面が表示されます。
ここで必要事項を記入しログインします。
ログインできればLINE Notifyのトップページで、先ほど「ログイン」と記載されていた画面右上の記載がログイン名に変わっているはずです。
そのログイン名を押し、表示された「マイページ」を選択します。
そこで開かれたページの下の方にある「トークンを発行する」を選択します。
任意のトークン名を記入します。
LINE通知された際に、どのトークンで通知されたかわかるように表示されます。
(本記事の次の段階としてインターホンの通知を行いたい目的があったので、ここではトークン名を「インターホン」としています。)
通知を送信するトークルームを選択します。
一番上に来ている「1:1でLINE Notifyから通知を受け取る」を選択します。
この1:1で~というのが、グループLINEではなく個人宛用の選択肢になります。
それらが設定できれば、一番下の「発行する」を押します。
発行されたトークンが表示されます。
ランダムな半角英数字の約40字で構成されています。
左下の「コピー」を押して、メモ帳等に貼り付けて確実に保存しておきます。
このトークンはこのタイミングでしか表示されないので注意して下さい。
トークンを保存した後「閉じる」を押すと、「連携中サービス」という画面になります。
ここには登録したトークルームが表示されています。
複数のトークルームを登録している場合はここに複数のトークルームが表示されることになり、必要なくなった場合にはそのトークルームの右にある「解除」を押すと削除されます。
削除したものを復活したい場合には、同じ構成を新たに登録する方法となります。
登録が完了していればLINEに、LINE Notifyからトークンが発行された旨の通知が来ているはずです。
これで個人宛用のLINE Notify設定は完了です。
グループLINE用のトークンを発行(グループLINE用の追加作業)
グループLINEに通知を行いたい場合はLINE側での手順が少しだけ追加されるのでご説明します。
先にLINEでグループのトークルームを作成しておく必要がありますが、その手順については割愛します。
LINE Notifyの設定は途中まで先ほどと同様です。
個人宛用の先ほどの説明では1:1のトークルームを選択しましたが、グループの場合はそのグループトークルームを選択します。
トークン名も入力して「発行する」を押します。
1:1と同様にトークンが発行されて、連携中サービスに追加されます。
発行されたトークンはコピーしてから確実に保存しておいて下さい。
そしてLINEにLINE Notifyからトークンが発行された旨の通知が個人宛に来ているはずです。
今回はアカウントを招待を促す内容が追加されています。
スマホ等でLINE側の設定を行います。
通知を行いたいグループのトークにて、右上の三本線を押します。
画面の上方にある「招待」を押します。
友だちの選択欄から「LINE Notify」を選択した後、画面右上の「招待」を押します。
「LINE Notify」がグループに追加されます。
これでグループ用の設定が完了しました。
お試しソースコードでRaspberry Pi Pico W からLINE通知
まずRaspberry Pi Pico Wの初期設定と、開発環境のThonnyのインストールが必要です。
以下の記事で詳細を説明しているのでご参考にして下さい。
Raspberry Pi Pico W からLINE通知が可能か確認するためにテスト的なソースコードを試してみたいと思います。
以下のソースコードをコピーしてThonnyにペーストして下さい。
(至らない点もあると思いますがご容赦下さい。)
import machine
import utime
import network, urequests
SSID = 'SSIDを入力'
password = 'passwordを入力'
token = 'トークンを入力'
sw = rp2.bootsel_button
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, password)
line_header = {
'Content-Type' : 'application/x-www-form-urlencoded',
'Authorization': 'Bearer' + ' ' + token }
line_message = 'message=' + 'test'
while(not wlan.isconnected()):
print('connecting...')
utime.sleep(1)
print('connected.')
while(True):
if sw() == 1 :
print(line_message)
req = urequests.post('https://notify-api.line.me/api/notify', headers = line_header, data = line_message)
req.close()
utime.sleep(0.5)
else:
print('wait')
utime.sleep(1)
※5~7行目は書き換えが必要です。
「SSIDを入力」には使用するWi-FiのSSIDを入力して下さい。
「passwordを入力」には使用するWi-Fiのパスワードを入力して下さい。
「トークンを入力」にはLINE Notifyで発行したトークンを入力して下さい。
いづれも前後の「’」(ダッシュ、プライム)は残します。
※28行目は、27行目を変数としclose()を行っています。
これがないと数回メッセージを送った後にメモリがいっぱいになってエラーが発生するので必須です。
このプログラムを実行するとシェルに「connecting…」が表示され、Wi-Fiの接続が完了すれば「connected.」が表示されます。
その後「wait」が一定間隔で表示されるので、その状態でBOOTSELボタンを押すと「message=test」と表示されスマホ等にLINE通知されるはずです。
その後再度「wait」の状態に戻り、BOOTSELボタンを押せる待機状態に戻るというプログラムが実行されることになります。
BOOTSELボタンを押してスマホにLINE通知されますが、それをスマートウォッチにも通知させている状況の画像です。
少しタイムラグはありますが[インターホン]testという通知が来ています。
スマホの画面です。
設定通りLINEのトークルームに「test」とメッセージが来れば設定完了です。
まとめ
LINE Notifyを設定しRaspberry Pi Pico Wからテストの通知を行いました。
LINE Notifyは個人宛又はグループ宛のトークルームのどちらでも設定が可能です。
LINEのアカウントがあれば無料ですぐに設定することができます。
今回のソースコードではボタンを押した際に通知が来るようにしましたが、別の信号を入力にすれば色々なことに応用可能です。
Raspberry Pi Pico Wを利用して自宅インターホン呼出しをスマホにLINE通知させたので以下の記事もご覧下さい。
インターホンの呼び出し音が聞こえない場所にいてもスマホを持っていれば気付けるようになりました。
コメント