環境のレポートをLINEに定時通報する装置

【1】LINEへデータを送るための各種の設定  工事中です(2025年5月 by Tokio Yamada)

(1) LINE公式アカウントとアセストークンの獲得について
 この端末(SLO)は、
温度・湿度・気圧の環境情報を計測し、設定している時間に自動でLINEへ送信します。従来、LINEへの通信は「LINE Notify」というものが有りましたが、これは2025年3月31日でサービスが終了しました。このような、端末から個人のアカウントに対してメッセージを送るということは、「LINE公式アカウント」に統一されて、資源の有効化をはかり、長期に運用していくということになったようです。私は「LINE Notify」を利用していましたが、これを機にLINE公式アカウントへ移行しました。
 したがってまずこのLINE通信を利用するに当たっては、
「LINE公式アカウント」の獲得と、獲得したアカウントに対する端末からのデータ送信に必要な「チャンネルアクセストークン(長期)」の取得をまずは実行してください。ご自分のLINE公式アカウントを開設すると、スマホの場合、開設時に、ご自分が設定したアカウント名称が、スマホに現れます(右図の上方、ぼかし)。

 これらについての情報は、「LINE公式アカウント」 「チャンネルアクセストークン」をキーワードに WEBで検索すると数多くヒットしますので、詳しい解説を見る事ができます。
 ただ、注意点として、「チャンネルアクセストークン」も区別があり、種類によって有効期限が異なりますので、長期のチャネルアクセストークン(無期限)を取得して下さい。このトークンであれば、安心してこの通信を長期にわたって運用していけます。このチャンネルアクセストークンの文字列はとても長いです。私の場合は、172文字もありました。しっかりコピーして、別途のファイルにメモとして記録しておいてください。
 無料で送信できるメッセージは、月に200通までです。それを超える送信をしたい場合は有償となります。無償で運用している時に、制限を超えるメッセージを送出すると、送出そのものは実行できますが、先方には届きません。ただし、月が変わると、また200通の資格が得られますので、また、送ることができるようになります。たとえば、上図のスマホ画面のように「定時通報」で、1日に3通を、自分のアカウントだけに送っている場合は、最大で月に 31x 3 = 93通 となり、まったく問題なく運用して行けます。一つのメッセージを3箇所に送出するようにLINE公式アカウントで設定すると、1メッセージのカウントは、3となり、月換算では200を超えますので、ご注意ください。上の図は、自分のアカウントのみに、1日に3通(8時間おき)、送っている様子です。

(2) 重要データ(SSID, Pass Word, Token) の登録
この端末(SLO)は、コントローラに「Raspberry Pi Pico W」を使っています。すべての通信は WiFi を経由して行います。WiFi に接続するための SSID や Pass Word 、それに LINEに送出するときに必要なチャンネルアクセストークンなどをこの端末に登録する必要があります。一般的にはスケッチに書き込んでいますが、この端末では、
Flashにファイルとして保存します。その用途に使用するためのWindowsパソコンで使用できる設定用アプリを制作いたしました。ここからそれをセットアップするファイルをダウンロードしてください。ZIPファイルですので解凍してください。解凍すると「SetupSLOE」 というフォルダが現れます。フォルダの中には、setup.exe と SetupSLOE.msi という二つのファイルが現れます。インストールするには、この setup.exe をSetupSLOE.msi がある場所でダブルクリックして起動してください。インストールが終了すると、ディスクトップにショートカットが作られますので、必要であればどこかに保管してください。起動すると下図の初期画面が現れます。

端末(SLO)のラズパイPicoWのUSBとパソコンのUSBを接続します(左中図)。接続する時に、先に
端末のSETボタン()を押しながらパソコンに接続し、そのままSETボタンを押し続けて下さい。やや面倒ですが重要項目ですので、そのようにしています。端末の表示器「重要データの編集モードです。PCのアプリを起動してください」と表示(左中図) されましたら、SETボタンを離して良いです。つまり、端末の電源が投入される時、SETスイッチが5秒以上押されていたら、端末の編集モードに入るようにしています。もし、別のメッセージが出たら、この「重要データの編集モード」に入り損ねたので、USBを抜いて、再度、SETボタンを押したまま USBへ挿入し、下図のメッセージが出るまで SETボタンを押して下さい。
 アプリのPORTのドロップダウンリストから端末が接続されているポートを選択します。どのポートが端末であるかは、デバイスマネージャーなどで確認しておいて下さい。または、端末を接続する前のドロップダウンリストに、接続した後に追加されたポートがあれば、それがそのPORTです。PORTでその端末のCOMを選択して「接続」ボタンをクリックするとアプリ右上の通信モニターが
「COMM ON」となり、明るい緑となります(左下図)ので、通信モードになったことが確認できます。
 まずは「基本設定」です。ここで
「WiFiのSSID」「Pass Word」「LINEのチャンネルアクセストークン(長期)」を記入してください。各テキストボックスの上で右クリックすると「貼り付け」のメニューが出ますので、別途、保存していたものをコピーして張り付けると良いと思います。
全項目を記入されたら、
「端末への書き込み」ボタンをクリックして書き込みます。これで基本設定は完了しました。後のために、この内容を「名前を付けて保存」ボタンでパソコン内に保存(例:secrets.dat)しましょう。拡張子は「.dat」としています。ご自分に分かり易い名前を付けて保存してください。この保存したものは「ファイルを読み出す」ボタンで読み出すこともできますし、また「端末から読み込み」ボタンで読み出したものを「ファイルとテキスト群の照合」ボタンでベリファイすることもできます。

 次に、基本設定の下は「定時通報の設定」です。アプリ画面の【例1】【例2】の説明の様に設定はシンプルです。スピンボタンの増加・減少ボタンを操作して、所要の値にしてください。最後に「端末への書き込み」ボタンで端末に設定します。今、端末に設定しているものを「端末から読み込み」ボタンで読み込み・表示しますと確認もできます。なお、この「定時通報の設定」は、端末を実際に稼働している時に、アプリを使わず、端末の下部にある[ SET・⇧・⇩ ]の、3つのボタンで変更できます。この操作の詳細は後述します。
 以上で、設定は終了です。USBを抜いて電源を入れ直せば、稼働状態に移ります。なお、この端末の特徴としては、どの項目に対しても
「決してあきらめない」という事で、どこまでも再試行(Retry)をします。例えば、WiFiのパスワードが間違っていたとしても永久に再試行を繰り返します。その場合は、この「重要データの編集モード」で、再確認をお願いします。ただ2~3回の再試行は、やった方が良いと思います。この再試行(Retry)は、時刻の取得やLINEへの送出についても同様です。問題があっても繰り返し再試行します。再試行が限度を超えると、端末そのものを再起動して、始めから作業を進めるようになっています。LINEで送出を失敗して、端末が再起動された場合でも、その失敗フラグをFlashに記録していますから、LINEの送出が完了するまで再試行します。
 さて、「WiFiのSSID」「Pass Word」についてですが、パソコンでは問題なく使えていても、
ラズパイ Pico W では使えない場合があります。例えば、日本語文字が一部に使われていたり、Pass Wardに特殊文字(セミコロン ; $ ^* )が使われていると WiFiに接続できないことがあります。文字数については問題ありませんが、文字そのものは平易な英数字であることが望まれますので、もし問題がありましたら、これを参考にして変更して見てください。パソコンやタブレット・スマホなどの情報機器では、SSID, Pass Word の処理は本格的ですが、Raspberry Pi Pico W では対応していないこともあります。

【2】各動作の画面と操作について

(1) WiFi への接続
 電源が入ると、まず下の左の画面が表示されます。20秒待機し、接続できなかったら、下の右の画面を表示して、
端末そのものを再起動します。調子の良い時は、直ぐに接続されますが、どういう訳か調子の悪い時は、2~3回再起動することもありますので待ってみて下さい。もし、SSID や Pass Wordが違っていれば、永久にこれを繰り返します。その場合は、上記の「重要データ編集」で再確認してください。また、【1】の章の最後に記入している「ラズパイ Pico W では使えない場合があります」についてもチェックして見てください。私は、そういうアクセスポイントに一度、出会いました。

(2) 時刻の取得
 WiFiの接続が完了すると、この時刻の取得に入ります。一般的なSNTPサイトを5箇所登録しています。通常は直ぐに取得できますが、ウマク行かない場合は、次のサイトにアクセスします。この5個のサイトを全て試してもダメな場合は、端末そのものを最起動し、また、上記のWiFiの接続から、順次、この時刻の取得に来ます。いずれにしても、ここの(1),(2)を通過しないと本番には入れません。この過程は、電源投入後の初回の時刻の取得です。ラズパイPicoWの内臓の時計である RTCは、専用のものに比較すれば、それほど精度は宜しくないので、時々、校正する必要があります。そのために以下の2点の動作が組み込まれています。

1.自動による1日に1回の時刻の取得(校正)
 校正のため内部で0時12分に時刻の取得をしています。半端な時刻は、サイトの輻輳を避けるためです。
2.手動による時刻の取得
 稼働中に
DOWN(⇩)のスイッチを2秒以上押すと、直ちに時刻の取得動作を実行して校正します。

(3) LINEへのメッセージ送出
 この動作に入るのには3つの要因があります。いずれかの条件により、メッセージをLINEに送出します。
1.手動による送出
 
UP(⇧)のスイッチを2秒以上押すと、直ちにメッセージを送出します。
2.定時通報の条件成立による送出
 「起点時間の設定」と「間隔の設定」で決まる時間に、自動的にLINEに送出
 します。
3.再送出フラグによる送出
 色んな要因により、LINEの送出が失敗した時は、Flashメモリにその状況を書き込み、端末そのものを再起動します。再起動されて上記の(1),(2)を再実行した後、そのFlashメモリを読み込み、前回、送出が失敗していたら、このフラグによって再送出を試みます。送出が完了しない限り、このフラグはクリアされませんから、諦めずに再送出を繰り返します。

(4) 定時通報の設定
 稼働中に
SETスイッチ()を5秒以上押すと、定時通報のTmStartとTmIntevalの編集モードに入ります。
 最初は、()「起点時間の設定」で、現に設定されている数値が表示されます。
UPスイッチで5ステップずつ数値が増えていきます。初めはゆっくりですが、長く押していると速くなります。DOWNスイッチで5ステップずつ数値が減っていきます。初めはゆっくりですが、長く押していると速くなるのは同じてす。目的とする数値になったら、次の「間隔の設定」に入るためにSETスイッチ()を2秒以上押して下さい。この間隔も、現に設定されている数値が表示()されます。これも上記と同様のやり方で変更できます。これらの設定が完了したら、SETスイッチ()を2秒以上押すと、これらの数値を端末に登録するか、または廃棄するかの選択画面()となります。UPスイッチが登録る、DPWNスイッチが廃棄するになります。単に確認するためだけであれば、DOWNスイッチを押せばOK()です。編集した数値を端末に登録する場合は、UPスイッチを押すとの表示がなされて、端末に保存されます。


【3】Arduino-IDE とスケッチについて




=== 端末の提供 ===




 


 

この基板の回路図(クリックすると拡大されます)

 水やりシステムは、多くのものがWEBにも上がっていますが、ほとんどがポンプ電源を別にした2電源システムです。
実際の問題として、2電源で運用するのに、個人的にはすごく抵抗がありましたので1電源のテストを開始しました。かなり長い時間をかけて検証しましたが、この
1電源のシステムでも問題はないことが確認できました。Amazon からの購入の推薦をしています「WayinTop Automatic Watering Device DIY Kit」にも、2電源を使用するためのリレーボードが付属していますが、これは使用しません(要望:ポンプから出るホースは今の横では無く上向きの方が使いやすいし、リレーボード無しの価格も表示して欲しい)。別途、AliExpress から、ポンプ・ホース・土壌水分センサーを個別に取得することもできます。ただし、同等のものを選択する必要がありますので、写真を見て、同様ものを選択してください。特に水分センサーは多くの種類がありますので御注意ください。電源は、DC5V・1A以上あれば問題ありません。ただしコネクタは、センタープラス、プラグ外径:5.5mm、プラグ内径:2.1mm ですので、ご注意ください。

 TFT RGBディスプレー(
ST7735S)はチャイナ供給の物です。数台購入しましたが、完璧なものは一つもなく、どれも横筋のかすり傷が少しですが出ます。画像表示には不適ですが文字表示には、ほぼ問題なく使えているので、この用途には「可」とします(それ故に価格は安いとの事)。基板には、これを実装しますので宜しくお願いします。この画面を表示した写真が、このページに数か所にあるのでそれらを参照してどれほどのキズか確認して下さい。

 回路図に「Extras for learning」と囲っている部分がありますが、LED と SW は実際に使っています。VR と SDcard-R/W を学習・追加用として残しています。水やりシステムでは、INTERVAL ごとに SDcard にデータを CSVファイルとして書き込んで行けば、後日、Excel などで分析できると思います。SDcard への読み書きの例は、
SD_CSV_Test.py として、ソースファイルの中にあります。
 データを基に解析した、RPI Pico W による実際の運用状況は、ここにサンプルとして示しています。ソフトウェアの本体は「 WiFi接続 」と「 Googleスプレッドシートへの POST 」以外は、RPI Pico と全く同一です。


【3】開発環境の設定などについて


上記のように main.py を読み込めばソースは見れますが、参考のために下記に示します。




実際の運用状況

汎用製品通販のページへ      USB-IOのページに戻 る        TOPへ