LoT ラブオーティー

非モテ男の、非モテ男による、【女の子にモテたい】非モテ男のためIT活用ブログ

スポンサーリンク

IoT/WSN

【遠隔操作】XBeeをATコマンドでSleep Modeの制御する

更新日:

エンドデバイスをスリープモードありで、XCTU画面から設定いじったりする都度、毎回"Action Required"出てきますよね?

これはそのデバイスがスリープモードになってるタイミングなので、設定の変更を受け付けてくれないわけです。リセットボタンを何回も押すのは、決して気持ちが良いものではない気がします。値を少し変えたり、一か所だけ何か設定を変えるぐらいなら、一層のことATコマンドを使って遠隔操作したほうが、早い気がします。




ATコマンドで相手デバイスを操作できると、何かと便利なので紹介します。

設定変更したいデバイスが、PCに接続していれば、直接XCTUの画面から設定を変えることが出来ますが、今回の目的はあくまでコーディネーター側から、遠隔操作することです。乾電池で駆動させているときは、大変便利です。




というわけで、コーディネーター側からATコマンドを相手に向けて送信してみます。今回はスリープモードの設定を変えていきます。ATコマンドのSMのパラメータを変えるだけです。

例えば、SM=0x00のときは、No Sleep状態(ルータ)です。このルータを遠隔でスリープモードを有効にして、エンドデバイスにしていきます。



※あらかじめ起動時間(ST)・スリープ時間(SP)・ポーリング回数(SN)等を設定しておかないと、デフォルト設定のままで駆動します。




フレームを自分で作って送りたいので、モニタ画面の下の方にある+ボタンを押します。(MACアドレスの一部、黒消ししてます


するとこのような画面が出て来ます。

"Frame name"の欄は好きなように名前を付けてください。

今回はSMのパラメータを"04"に変更するので、分かりやすいように、以下のように付けました。下の大きな空欄のところに自分で一から、16進数を打ち込んでいってもよいですが、面倒だと思います。そこでフレームジェネレーターを使います。青くなっている"Creat frame using Frame Generator tool"をクリックします。



最初、赤丸で囲った箇所は"0x08 AT Command"となっているので、以下のように変えます。"0x08AT Command"は、PCと直接つながれたXBeeモジュールにPCから直接ATコマンドを送るときに使います。

しかし、今回はコーディネーターから、離れたところにあるXBeeモジュールにATコマンドを送りたいので、"0x0x17 Remote AT Command"を使います。その他、送りたいケースや情報によって、フレームタイプを使い分けます。


あとは以下のように、設定していきます。


"Frame ID"はこのままで大丈夫です。最初から1が入っています。ここはAckの有無の話なので、0を入れるとAckを受け取りません。


64ビットアドレスはデバイス固有の値をいれます。


16ビットアドレスのところはそのままでオッケーです。勝手に変換してくれます。


"Remote Command Option"もデフォルトのままで大丈夫です。これは、ATコマンドをすぐに反映させる、という内容です。


そして"AT Command"の欄に、送りたいコマンド内容を入れます。大文字じゃないといけません。


"Parameter value"は変更したい値に変えます。ここはASCIIの隣のHEXをクリックして、16進数で入力します。



ATコマンドの作成が一通り終わったら、右下のOKをおしてください。


最後に"Add Frame"まで押したら、作成完了です。あとは送信するだけです!



自分で作ったフレームは下の"Send frames"リストの一覧に表示されます。あとは送りたいフレームをクリックして、右の"Send selected frames"を押せば送信されます。画面真ん中の"Frames log"のところで、青くなっている行があります。それが先ほど送信したフレームです。



送信すると直後に、返信がきます。"Remote Command Response"というものです。画像で、選択したいるフレームです。このフレームを覗いてみます。下スクロールすると、"Status”蘭があります。そこに00が返ってきたので、送信成功となります。


もし失敗すると02(Tx failure)、無効なパラメータで送信してしまうと03(Invalid Parameter)が返ってきます。

ここで、仮にスリープモードのエンドデバイスにATコマンドを送ると、エンドデバイスがポーリングするまでそのデータを受信してくれません。したがって、反応までに少し時間がかかります。


また、自分で作ったフレームはPCと接続を外すと、作ったフレームが削除されてしまうので、保存ボタンをおしておくと便利です。xml形式で保存されます。次回、接続したときにロードさせるだけです。


「ね!便利ですよね?!」


最後まで読んでいただきありがとうございました。

スポンサーリンク

-IoT/WSN

Copyright© LoT ラブオーティー , 2019 All Rights Reserved Powered by STINGER.