LINE BOT と MQTT の仕組みを起動する

大事なこと

  • ここからは GitHub Codespaces の LINE BOT 側の作業です
  • Chrome ブラウザのなるべく最新版でアクセスしましょう

使う Git リポジトリ

すでに、今回の LINE BOT をはじめる環境は作ってあります。

https://github.com/1ft-seabass/dhw-ppB-m5stack-linebot-mqtt-codespace-2024

こちらを使います。前回の授業で使ったものとは違うのでご注意ください。

こちらを Codespaces で起動しましょう。

作成したBOTのチャンネルシークレットとチャンネルアクセストークンを反映

// 作成したBOTのチャンネルシークレットとチャンネルアクセストークン
const config = {
  channelSecret: '作成したBOTのチャンネルシークレット',
  channelAccessToken: '作成したBOTのチャンネルアクセストークン'
};

LINE BOT 作成手順 で、作成したBOTのチャンネルシークレットとチャンネルアクセストークンを、それぞれ反映します。

わりと編集中にシングルクォーテーション消してしまったり、channelSecretとchannelAccessTokenを、逆に書いたりしてハマるので気をつけましょう。

M5Stack から来るプッシュ通知の送り先のユーザーIDを反映

まず、プッシュ通知の送り先であるこの BOT のユーザーIDを LINE Developers から取得します。

https://developers.line.biz/ja/

こちらからログインしましょう。

image

今回使っている BOT のチャネル設定に移動します。

image

下にスクロールしていくと あなたのユーザーID という項目があるので、これをメモしておきます。

// プッシュメッセージで受け取る宛先となる作成したBOTのユーザーID'
const userId = '作成したBOTのユーザーID';

作成したBOTのユーザーID の部分を先ほどメモしたユーザーIDで書き換えます。

ここまで設定出来たらファイルを保存します。

MQTT の接続設定

冒頭でもお知らせしたとおり、本来であれば MQTT ブローカーという指揮者のような役割のサーバーが必要ですが、今回は私(講師)の方が、CloudMQTT というサービスで、ひとつブローカーを立ち上げているので、そのまま使いましょう。

// 今回使う CloudMQTT のブローカーアドレス
const clientMQTTAddress = 'CloudMQTT のブローカーアドレス'

// 今回使う CloudMQTT のポート番号
const clientMQTTPort = 1883;

// 今回使う CloudMQTT のユーザー名
const clientMQTTUserName = 'CloudMQTT のユーザー名';

// 今回使う CloudMQTT のパスワード
const clientMQTTPassword = 'CloudMQTT のパスワード';

ここの設定を Slack でお知らせする設定で置き換えましょう。

image

このような関係性で動作しています。

自分の名前の半角英数字で決める

このあと、M5Stack と LINE BOT がやりとりするトピック名などで、半角英数字の自分の名前を決めておきましょう。

M5Stack からのデータ受信を待つ MQTT トピックに自分の名前を入れる

clientMQTT.on('connect', function () {
  // 接続時にログ
  console.log('MQTT Connected!');
  // M5Stack からのデータ受信を待ちます
  // M5Stack の A B C ボタンを押したときに送られてきます
  clientMQTT.subscribe('/dhw/pp2/mqtt/YOURNAME/publish');

こちらのコードに M5Stack からのデータ受信を待つ MQTT トピック '/dhw/pp2/mqtt/YOURNAME/publish'YOURNAME のところに自分の名前を入れます。

半角英数字です。自分の名前は hogehoge の場合は '/dhw/pp2/mqtt/hogehoge/publish' となります。

image

M5Stack から LINE BOT へやり取りするイメージです。

M5Stack にデータを送る MQTT トピックに自分の名前を入れる

  // M5Stack が待っているトピックにデータを送る
  clientMQTT.publish('/dhw/pp2/mqtt/YOURNAME/subscribe', jsonString);

こちらのコードに、M5Stack にデータを送る MQTT トピック '/dhw/pp2/mqtt/YOURNAME/subscribe'YOURNAME に自分の名前を入れます。

半角英数字です。自分の名前は hogehoge の場合は '/dhw/pp2/mqtt/hogehoge/subscribe' となります。

image

LINE BOT から M5Stack へやり取りするイメージです。

本カリキュラム完了まで使えます、以後は自分でつくりましょう

本カリキュラムが終わるまで、使えるようにしているので、制作のためにお使いください。

もし、自分でつくって使いたくなったら、私のブログ記事を参考に作ってみましょう。

app.js を起動してみる

これで準備完了です。

node app.js

こちらのコマンドで app.js を起動してみます。

f866a5573ffa68b97065dae98a93cc20

ポートタブをクリックします。

5960b59498cc8ab1975a8121337df714

いま app.js で開いている LINE BOT サーバーの状態が表示されます。

298a8da84abc747ea38af7f21e572f31

ローカルアドレス項目の、こちらのアイコンをクリックすると別のタブが開いて、サーバーから応答されて動作確認ができます。

556038e4b801e67095f65836edce0133

このように表示されます。

サーバー URL の公開

表示範囲が Private のままだと、自分の GitHub アカウントでログインした状態でないと見ることができるないので LIBE BOT サーバーが外部から動かせないので、公開します。

7753a846d95838ae21eebee5c87dc983

表示範囲のところで右クリックして ポートの表示範囲 > Public とクリックします。

934703d80b3fe5e2c363377e64b0b7b5

表示範囲が Public になっていることを確認します。

今回のサーバー URL をメモ

ポートのローカルアドレス項目のこちらのボタンをクリックすると URL がコピーできます。

50009c3e8e4fb57f588553989108b347

ブラウザのアドレスを見て今回のサーバー URL をコピーしておきましょう。

Webhook URL の更新

https://developers.line.biz/ja/ こちらから、

image

今回使っている BOT の Messaging API 設定に移動します。

image

Webhook URL の項目に移動して以下の手順を行います。(大事な設定なので、一息タイミングを置いています)

さきほどの URL に /webhook をつけて反映

image

さきほどの URL https://**********.github.dev/webhook をつけて Webhook URL の項目に入力して更新ボタンをクリックします。

image

同時に Webhook の利用がオンになっていることも確認しましょう。

BOT に返答が来るか確認しましょう

一旦ここで、以下のように動作するか確認してみましょう。

image

送る文字列は、M5Stack で表示できる半角英数字を試してみましょう。

次にすすみましょう

左のナビゲーションから次の教材にすすみましょう。

results matching ""

    No results matching ""