上次介紹了在本機上安裝MQTT和使用方法
今天要介紹在nodejs上使用mqtt以及把資料傳送至主機上的MQTT subsucriber
首先要先下載mqtt的套件
npm install mqtt
打開常用的編輯器,將套件引入
設定mqtt的ip位址
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://127.0.0.1')
設定好之後在將訊息pub出去
client.on('connect', function () {
client.publish('arduino_data', '1')
client.end()
})
其中要注意函式括號左邊的 connect 是event type 指說只要連接上了就執行裡面的內容
然後結合我們DAY8 Seiral接受資料的部份
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://127.0.0.1')
const Readline = require('@serialport/parser-readline')
var SerialPort = require("serialport");
const parser = new Readline()
var arduinoCOMPort = "/dev/ttyACM0";
var arduinoport = new SerialPort(arduinoCOMPort, {baudRate: 9600}).setEncoding('utf8');
arduinoport.on("open", (err) => {
console.log('serial port open'); //成功連接時印出port open
if(err){
console.log("no serial device found")//失敗時印出 device not found
}
},20);
arduinoport.pipe(parser)
parser.on('data', line =>{
console.log(line)
client.publish('arduino_data', line)
})
setInterval(function(){
arduinoport.write('g')
},1000)
程式執行的結果
這樣就可以將arduino的資料利用MQTT發送出去
下次我們要介紹json格式