久しぶりの更新です。1年に1回更新してる感じですね。もう前回何やったか忘れてしまいました。読み直すと温度表示の途中で終わっていました。というわけでMQTTで温度情報を送ってみよう!みたいなテーマで進めます。
今回はnode.jsでMQTTのデータ送受信。 MQTT.jsのページになります。
プロジェクトのフォルダーを作ってMQTT.jsのインストールです。
> mkdir mqtt_test > cd mqtt_test > npm init > npm install mqtt
上記のサイトに記載されているコードをコピペします。
var mqtt = require('mqtt') var client = mqtt.connect('mqtt://test.mosquitto.org') client.on('connect', function () { client.subscribe('presence', function (err) { if (!err) { client.publish('presence', 'Hello mqtt') } }) }) client.on('message', function (topic, message) { // message is Buffer console.log(message.toString()) client.end() })
sub_pub.js
実行します。
> node sub_pub.js Hello mqtt 23 Hello mqtt
うむ何じゃ、mqtt 23って。。。 1しかメッセージ送ってないと思うが。。。 たぶんだれかが同じトピック名で送っているんでしょうね。ためしに presenceと書かれているところをtopikkuに変更しました。
Hello mqtt
大丈夫ですね。
次にコマンドラインツールを記載に従ってインストールします。
> npm install mqtt -g
で新しくインストールしたコマンドでsubscribeしてみます。
> mqtt sub -t 'topikku' -h 'test.mosquitto.org'
このコマンドでトピックの待受になるので別のターミナルを開いて次のコマンドを叩きます。
> mqtt pub -t 'topikku' -h 'test.mosquitto.org' -m 'from MQTT.js' > mqtt pub -t 'topikku' -h 'test.mosquitto.org' -m 'from MQTT.js'
すると最初のターミナルに
> mqtt sub -t 'topikku' -h 'test.mosquitto.org' -v topikku from MQTT.js topikku from MQTT.js
と表示され、大成功です。かんたんでした。 最後にsubscribeをnode.jsで書いて確認します。以下のプログラムを書きました。
var mqtt = require('mqtt') var client = mqtt.connect('mqtt://test.mosquitto.org') client.on('connect', function () { client.subscribe('topikku') }) client.on('message', function (topic, message) { // message is Buffer console.log(topic+' '+message.toString()) client.end() })
mqtt pubで送ってみてください。同じように表示されればOKです。 次はVUE.JSを使って表示させます。