1

私は arduino を使用して、さまざまなセンサーから値を取得し、これらの値 (温度や湿度など) を出力しています。

serial.println(tempval);
serial.println(moistval);

ノードの温度と湿度の値を明確に定義できるように、ノードのシリアル ポートから取得したデータを分離したいと考えています。

ここに私のNodeJSコードがあります:

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;

var portName = process.argv[2];


var myPort = new SerialPort(portName,{
   baudRate:9600,
   parser: serialport.parsers.readline('\n')

});

myPort.on('data', function (data) {
  console.log('Data: ' + data);
});

配列を使用する必要があると思いますが、実装できません。これを行う方法について何か提案はありますか?

前もって感謝します!

4

1 に答える 1

2

生データ自体だけでなく、送信しているデータの種類をArduinoに伝える必要があります。例えば:

Serial.print(F("temperature: "));
Serial.println(tempval);
Serial.print(F("moisture: "));
Serial.println(moistval);

その後、Node.js コードは各行を名前:値のペアとして解析できます。Arduino で行を JSON としてフォーマットすることで、この解析を簡単にすることができます。

また、両方のデータを同時に利用できる場合は、両方を同じ行で送信できます。これにより、物事が少し簡単になります。Arduino側:

Serial.print(F("{\"temperature\": "));
Serial.print(tempval);
Serial.print(F(", \"moisture\": "));
Serial.print(moistval);
Serial.println(F("}"));

Node.js 側:

myPort.on('data', function (data) {
  console.log(JSON.parse(data));
});
于 2016-05-13T11:09:45.313 に答える