⑵RN4020をESP32と通信させる準備(イマココ!)
⑷ESP32からIFTTTを使ってLINEにメッセージを送る
「ヨメガンバッテルヨ!」
RN4020の準備編です。
トラ技Jrで紹介している専用回路は作るのが面倒なので、
とりあえずシステムの構成を試してみたい時にオススメの方法。
RN4020は秋月のボードに乗ったものを買ってきます。(下記URL)
PCとシリアル通信で色々設定するので、USBシリアル変換モジュールも買っておきます。(下記URL)
ブレッドボードで接続していきます。
接続は下記のようにしてください。
写真も載せておきます。
【RN4020の役割】
RN4020はボタンを押されたらそれをトリガーとしてBLE通信を開始することを目的としています。
また、ボタンを押された時に、”旦那or嫁”を判別するためのスライドスイッチの値を読み取ります。
これらの簡単なタスクはマイコンで制御しなくてもRN4020のスクリプト機能を使用することで実現可能です。
■RN4020をスクリプトだけで動かす
RN4020には、
これをRN4020ではスクリプト機能と呼んでいて、
複雑な演算はできませんが、
その範囲でできることであれば、
◉スクリプトで出来ること
①イベントの監視。
スクリプトはイベントをトリガーとして動作を開始します。
対応しているイベントは以下の11種類です。
②コメントアウト
スクリプト内にコメントを記入することができます。
③変数が使える
変数が2つ使用できます。
$VAR1、$VAR2という名前です。
変数には値を入れたり、
ポートで読みだした数値を代入するときは、
$VAR1 = @I,1 ←AIO1(hogehoge pin)から読んだ値を代入
⑤変数のレンジを指定できる
変数は<>(大なり小なり)を使用して、
また、レンジの条件は&&と||でつなげることができます。
例えば、$VAR1 > “0050” && $VAR1 < “0120”とかくと、
0x0050~0x0120の範囲内に$
⑥変数をASCIIコマンド内で使用できる
例えば以下のような使い方が可能です。
SHW,0019,$VAR1
◉スクリプトの書き方
①やりたいことがスクリプトで実現できるか考える
嫁頑張ってるアピール機器を例にとります。
やりたいことを書き出すと以下になります。
・ボタンが押されたらESP32に押されたことを伝えたい(
・ボタンが押されたときに、
・ボタンが押されていないときはなにもしない(BLE接続解除)
上で書いた「スクリプトでできること」
①イベントを選ぶ
使いたいイベントを選びます。
嫁頑張ってるアピールの場合、使うイベントは下記になります。
_@PIOH : PIO4( ピン13) の入力がHigh へ変化—ボタンが押された割り込みとして使用します
_@CONN : 接続完了—ボタンが押されたらESP32へ接続を開始します
_@DISCON : 切断完了—ESPへ情報を送り終わったら接続を切断し、
_@PW_ON : 電源ON—
②テキストファイルにスクリプトを書き出す。
上記を踏まえて、
スクリプトができたら、
RN4020のスクリプトは以下です。
/**RN4020 CMD**/ /* F --- Search ESP find ESP X --- Stop Search SR,81000000 WC WW @PIOH |O,01,05 E,0,240AC4049E4A @CONN $VAR1=|I,02 CUWV,FF01,$VAR1 SM,1,00300000 @TMR1 K @DISCON |O,01,00 (ESC) R,1 */ /**RN4020 CMD**/
◉コマンド操作例
・RN4020に好きな名前を付けます。
>>SN,HOGEHOGE0
・HOGEHOGE0の機能を設定する
今回、RN4020はESP32へ接続しに行く側です。
また、
デバッグのため、
>>SR、0x81000000 (Centralの0x80000000 + Run Script After Power Onの0x01000000を足して入力)
・スクリプトを書き込む
>>WC (一応初めにスクリプトをクリアする)
>>WW (スクリプトの書き込み開始)
>>上記で書いたすくリプとを書き込み
>>ESCキーを押す
>>LW (スクリプトを全文表示して、間違いがないか確認する)
・再起動してASCIIコマンドを反映させる
>>R,1 (再起動コマンド)
ボタンを押して、動作確認しましょう。