寝台急行はまなす

札幌駅 22:00発 増結12両編成 青森行き

micropythonでmqtt

qiita.com

 

MicroPython Advent Calender 5日目です。

4日目はESP32+micropythonでslackにメッセージを投稿しました。

 

今日はwifiにつながったそのままの勢いでmqttでpublish/subscribeしてみます。

 

micropython-lib/umqtt.simple at master · micropython/micropython-lib · GitHub

 

micropython-libにあるumqtt.simpleをローカルに保存します。

simple.pyだとわかりづらい気がしたのでmqtt.pyにリネームしてampyツールでESP32に転送しました。

 

> ampy -p COM4 put mqtt.py

 

ローカルに保存したフォルダにpublishとsubscribeの例があります。

両方がっちゃんこしたものを書いてESP32に転送しました。

 

> ampy -p COM4 put pubsub.py

 

ますはメッセージを送ってみます。

MQTTブローカーはWindows10にmosquittoを入れて使用しました。

 

An Open Source MQTT v3.1 Broker

 

ブローカーを立ち上げてメッセージを送信するメソッドを呼び出します。

 

f:id:ken5owata:20171205003648p:plain

 

ブローカーにメッセージが届きました。

 

f:id:ken5owata:20171205004838p:plain

 

f:id:ken5owata:20171205004933p:plain

wiresharkでみてもmqttのフロー通りでメッセージが送れています。

Client IDもCONNECT要求時にセット出来ていました。

 

次にmsgをsubscribeしてみます。

subscribeするメソッドを呼び出しておいて、コマンドプロンプトからメッセージを送信しました。

 

> mosquitto_pub.exe -h 192.168.0.7 -t micropython -m hello

 

f:id:ken5owata:20171205023033p:plain

 

ブローカーを通じてメッセージがやり取りされています。

f:id:ken5owata:20171205023125p:plain

 

f:id:ken5owata:20171205022858p:plain

 

wiresharkでも流れが追えました。

 

というわけでREPLからの単発実行ではありますがmqttをpuslish/subscribeしてみました。

 

gistb8215e6c2c404d3726d98ba0ad1fdb1c