あさがおIoT観察日記⑲:RaspberryPiからLINEに通知を送る【大人の自由研究】

Arduino
この記事は約3分で読めます。


前回まで/次回以降の取り組みはこちらから。

今回は水やり用の水がなくなったことをLINEに通知する機能を追加します。

今回のpythonアプリ完成図

こんな感じ。

通知用のGUIを追加し、実際に通知を送るところまで実装しました。

Raspberry PiからLINEに通知を送る

もちろん水が切れたときにブザーを鳴らしたり、LEDを点けたりという方法で知らせてもよかったんですが、

  • 割とスマホはいつでも持っている(家の中でも手元にあることが圧倒的に多い)
  • LINEが来たっていう通知を大きな音で出すことも出さないことも可能
  • その時見落としていても履歴が残っている
  • やってみたら思いのほか簡単だった

というあたり、LINEに通知することのメリットだと思います。

①LINE Notifyに登録する

webサービスとLINEを連携できる、LINE Notifyに登録します。

LINE Notifyのページにアクセスして、右上の「ログイン」をクリックします。

 

LINEアカウントに登録しているメールアドレスとパスワードを入力してログインします。

ログインできたら「マイページ」に行きます。

アクセストークンの発行(開発者向け)というところの「トークンを発行する」をクリックします。

必要事項を記入してトークン(専用パスワードのようなもの)を発行します。
トークンの名前を入力し、通知の送信先を選びます。

今回は名前を「Asagao_IoT」(日本語も使えますが)、送信先は「1:1でLINE Notifyから通知を受け取る」にしました。

すでにあるLINEのチャットグループに送ることも可能です。

トークンが発行されました。43文字あります。
トークンは二度と表示しないとのことなので、しっかりコピーしておきます。

これでLINE側の設定は終わりです。

この段階で、LINEのチャットのページに「LINE Notify」というルームが追加されます。

②Raspbery Piから送信テスト

Raspberry PiからLINEに通知を送ってみます。

LXTerminalを起動し、次のコマンドを実行します。
「トークン」には先ほど発行したトークンを入れます。

実行して、「ok」と出たらOKです。

LINEに「Hello World!」という通知が来ました。

 

③pythonプログラムから通知を送る

先ほどテストに使ったcurlコマンドをpythonのコマンドに変換してくれるサービスがありますので、これを利用してpythonのコードに変換します。

 

変換前は

変換すると

これをpythonプログラムにコピペして、トークンやメッセージをGUIから引っ張ってくるように書き換えます。

また、現在の時刻を見て、タンクの水がない場合には毎時0分にだけ送信することにしました。
ずっと「水ないよ!」「水ないよ!」って来られてもうっとおしいだけなので。

実行して、タンク水位センサが水を検知してない状態で置いておくとこんな風に通知が届きます。

Arduinoスケッチ

前回から変更ありませんので省略。

pythonプログラム

main_0_1_2.py

mainwondow_0_1_2.py

 


 

必要な機能がだいぶそろってきました。

後はタイムラプス撮影ですね。

まだまだ続きます。

コメント

タイトルとURLをコピーしました