goo blog サービス終了のお知らせ 

もんく [とある南端港街の住人になった人]

スペインかポルトガルの港町に住みたい
日本→インドネシア→台湾→マレーシア→日本
since Oct. 2004

MQTTのテスト

2019-07-23 22:38:44 | マレーシアでニャー2019
今日は久しぶりに2つ目のブログアップ。内容はプログラミング、MQTT。

何の事かわからない人は自分で調べてください。自分もよくわかってないし。

これが今日のステディで最初に書いたプログラム。
とりあえず、データが1個送れる事を確認。




これで、ちょっと困ったのが、クライアントIDを決めないといけなかった事。これからノードを増やして行く時にノートにメモしつつIDを人手で決めるのもできるのだけど、将来もし自分がやらなくなった時にわからなくなって同じIDが2個使われるなんてなる事を考えると自動で決めないといけない。だからネットワークのMACアドレスを使う事にした。

ネットワーク設定はプログラム内に関数として出来ているからその中の変数をグローバル変数に指定して外に引っ張り出す。で、その値を使うとエラーが出て接続できない。困ってしまってワンワンだったけど、16進数に変換してみたらOKになった。やってみるものだ。


これができた後、データは複数個いっぺんに送りたかったので単にカンマ区切りにしたりタプルに入れたりリスト、辞書に入れたけど、これも拒否された。

調べたけどこれやっている記事が全然検索に出てこなかった。そもそもMQTTってのは小さなデータをチマチマ送るって発想のものなので知ってる人はやらないのかもしれない。でもね、DHTってセンサー付けたら温度と湿度が一緒に測れるわけじゃない。だったら一緒に送りたいよね。それに計測した時刻の情報も一緒にしたい人もいるだろう。なのでいろいろやってみた。

結果、JSONを使って繋げてやると送れるとわかった。MicroPythonだからJSONじゃなくて小さなujsonだけれど。

我ながらお手柄、お手柄。(誰も喜ばない。)


ついでに説明しておくと、このデータを転送してくれるのは別のPCに入れたmosquittoと言うソフトとそれを扱いやすくしてくれるMQTT.fx。もう1つ同じ構成のものが自分の普段使うPCに入っていて、これはSubscribe(受信)をしている。ほとんど何もしなくても仕事をこなしてくれてまるで魔法のよう。

今度はESPに実際のセンサーを接続してみるのと、Subscribe側をPuthonで書いてみようかと思っている。それは受信データのハンドリングを良くするため。ではまた。


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。