ESP8266をWi-Fiのアクセスポイントに接続するところまでは(ESP8266を宅内Wi-Fiにぶら下げるATコマンド実例)を参照してください。
筆者の環境ではブローカーのあるPCが192.168.1.16、ESP8266が192.168.1.15となりました。これらのIPアドレスはDHCPサーバ機能のあるWi-Fiアクセスポイントにより付与されたものです。
今回はWindows PCでの操作なのでターミナルエミュレーターとして「Tera Term」を用います。他のターミナルエミュレーターを使う場合、バイナリの送信ができるものを選んでください。MQTTのメッセージにはASCIIコード以外も含まれますので、バイナリの送信機能が必須となります。以下はTera Termでバイナリ送信ができるようにするための設定画面です。
変更箇所は2か所です。改行コードの送信側を「CR+LF」とします。これはATコマンドに対応するための設定です。画面下の中央に「漢字-送信」の項目がありますが、ここを「SJIS」に変更してください。これでASCII以外のコードも送信できるようになります。
次に送信するメッセージをあらかじめ用意しておきます。毎回キーボードから送信するメッセージを打ち込むは大変ですし、ASCII以外のコードをキーボードから打ち込むのはこれまた大変です。TeraTermではマクロ機能を使えばバイナリデーターも含め送信データをあらかじめ保存することができます。
以下の4つのマクロをテキストエディタで作成しファイルとして保存します。sendの行がマクロです。ファイル拡張子はttlとします。$をつけると16進表記の数値を記述できます。数字の並びと意味については前回の記事(MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する)を参考にしてください。
ファイル名:“connect.ttl”
ファイルの内容:
Send $10$17$00$06$4d$51$49$73$64$70$03$02$00$3c$00$07$67$75$65$73$74$30$31
“guest01”がユーザーネームとなります。
送信バイト数:25
ファイル名:“sub.ttl”
ファイルの内容:
Send $82$06$00$01$00$01$23$00
$23すなわち“#”がサブスクライブするトッピクになります。この場合全てのトピックをサブスクライブする要求となります。
送信バイト数:8
ファイル名:“pub1.ttl”
ファイルの内容:
Send $30$0e$00$0b$61$72$64$75$69$6e$6f$2f$64$32$2f$31
“arduino/d2/”がトピックで1がメッセージです。
送信バイト数:16
ファイル名:“pub0.ttl”
ファイルの内容:
Send $30$0e$00$0b$61$72$64$75$69$6e$6f$2f$64$32$2f$30
“arduino/d2/”がトピックで0がメッセージです。
送信バイト数:16
Copyright © ITmedia, Inc. All Rights Reserved.