ESP8266をWifiモデムとして使う

ATコマンドによるMQTT通信


ESP8266をWifiモデムとして使って、UNOやNANOなどEthernetを持たないボードでMQTT通信をしたいと考えていました。
以下に詳しい解説が公開されています。

MQTT で始めるIoTデバイスの作り方 第1回

MQTT で始めるIoTデバイスの作り方 第2回

MQTT で始めるIoTデバイスの作り方 第3回

MQTT で始めるIoTデバイスの作り方 第4回

MQTT で始めるIoTデバイスの作り方 第5回

MQTT で始めるIoTデバイスの作り方 第6回

なかなか読みごたえがある連載です。
ATコマンドだけでMQTTを実現している点が画期的です。
この通りにやれば簡単な動作確認はできますが、連載の中で紹介されているスケッチには以下の機能が実装されていません。
Publisher
KeepAliveの機能が無いので、90秒以上PublishをしないとBrokerから切断されます。
Will-Topicの機能が有りません。

Subscriber
KeepAliveの機能が無いので、90秒以上動くとBrokerから切断されます。
受信したメッセージの解析と、SUBACKを応答する機能が有りません。

そこで、これらの機能を加えたスケッチをこ ちらで公開してます。
以下はUNOのPublisherからのメッセージを、UNOのSubscriberで受信しています。


SubscriberとTFTシールドを組み合わせてみました。
SD-CARDを使わなければ、TFTシールドのディジタルピン#10〜#13は自由に使えます。
UNO互換機はピンソケットの内側にピンヘッダーを立てられますので、電源関係とディジタルピン#10〜#13を外に出しました。
ESP-01とのUART通信はピン#10と#11を使いました。




これでUNO、NANO、ProMiniなど、イーサネットを持たないボードでも、ESP-01をモデムとして使うことでMQTTができるように なります。

次回
はATコマンドによるメール送信を紹介します。