esp_mqttを使ってみる

ファームウェアの書き込み


esp_wifi_repeaterのファームウェアをこちらで紹介しまし たが、同じ作者によるMQTTサーバー(MQTT Broker)がこちらで公開されています。
こちらのMQTT Broker library for ESP8266 Arduinoを利用したファームです。
名前の通りESP8266上で動くMQTT Brokerですが、DHCPサーバーの機能も持っていてクライアントにIPアドレスを発行することができます。

esp_mqttのファームウェアをダウンロー ドして適当なフォルダーに展開します。
ファームウェアの書き込みは、以下で公開されているツールを使います。

Flash Download Tools (ESP8266 & ESP32)
http://www.espressif.com/en/support/download/other-tools

esp-linkなどは、Flashサイズに応じて、書き込みアドレスを変える必要が有りますが、
このファームはFlashサイズに関係なく、以下のアドレスを指定します。
今回、ESP-12が搭載されたWeMosに書き込んでみましたが、ESP-01やESP-07などの8MBitモデルもサポートしていま す。
但しFlashサイズが小さいと、同時に接続できるクライアントの数が少なくなります。
ESPをUART Download Modeに変更し、STARTボタンを押すと、COMポートの設定が間違っていなければファームの書き込みが始まります。
ファームの書き込みに失敗するときはCOMポートを確認してください。



このファームはMQTT Broker機能だけでなく、DHCP機能も持っているので、これだけでMQTTの送受信を行うことができます。
ファームの動作確認はTera Termのシリアル通信、またはtelnetを使って行うことができます。
動作確認にtelnetを使う場合、最初にesp_mqttのアクセスポイントに接続します。
esp_mqttのSSIDはMyAP、パスワードは無しです。
アクセスポイントに接続すると、デフォルトでは192.168.4.2のアドレスが払い出されます。
Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   説明. . . . . . . . . . . . . . . . .: 802.11n USB Wireless LAN Card
   物理アドレス. . . . . . . . . . . . .: E8-4E-06-58-C0-93
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   リンクローカル IPv6 アドレス. . . . .: fe80::e166:f236:e16a:ece8%2(優先)
   IPv4 アドレス . . . . . . . . . . . .: 192.168.4.2(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2018年12月24日 9:45:00
   リースの有効期限. . . . . . . . . . .: 2018年12月24日 12:02:48
   デフォルト ゲートウェイ . . . . . . .: 192.168.4.1
   DHCP サーバー . . . . . . . . . . . .: 192.168.4.1
   DHCPv6 IAID . . . . . . . . . . . . .: 369102592
   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-21-94-5D-B3-D4-3D-7E-47-4E-4E
   DNS サーバー. . . . . . . . . . . . .: 8.8.8.8
   NetBIOS over TCP/IP . . . . . . . . .: 無効


Tera Termを起動し、TCPポート#:7777でtelnet接続します。


Tera Termの設定→端末メニューで送信改行コードを変更し、ローカルエコーを有効にします。


showコマンドで現在の設定を確認することができます。
このあたりの操作はesp_wifi_repeaterと全く同じです。


多くのコマンドが用意されています。
コマンド体系はesp_wifi_repeaterとよく似ています。




ファームの動作確認はTera Termのシリアル通信でも行うことができます。
esp_wifi_repeaterを書き込んだESP8266をシリアルで接続します。
Tera Termを起動し、esp_wifi_repeaterを書き込んだESP8266のシリアルポートに接続します。


ボーレートを115200bpsに設定しESPをリセットすると以下の画面が表示されます。


Tera Termの設定→端末メニューで送信改行コードをCR+LFに変更します。
これ以降はtelnetで接続した場合と同じです。




「save」コマンドで設定した情報はファームウェア側に記録されますが、以下のコマンドで、初期状態に戻すことができます。
色々試していて、元の状態に戻したいときは便利な機能です。
CMD>reset factory

続く...