Node.js 分离从节点串行端口获取的数据
我使用arduino从不同的传感器获取值,并打印这些值(例如温度和湿度) 我想分离从节点串行端口获取的数据,以便可以清楚地定义节点中的温度和湿度值 这是我的NodeJS代码:Node.js 分离从节点串行端口获取的数据,node.js,arduino,node-serialport,Node.js,Arduino,Node Serialport,我使用arduino从不同的传感器获取值,并打印这些值(例如温度和湿度) 我想分离从节点串行端口获取的数据,以便可以清楚地定义节点中的温度和湿度值 这是我的NodeJS代码: var serialport = require("serialport"); var SerialPort = serialport.SerialPort; var portName = process.argv[2]; var myPort = new SerialPort(portName,{ baudR
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);
});
我想我应该这样做,但我不能实现。有什么建议我可以这样做吗
提前谢谢 你应该让Arduino知道它正在发送什么样的数据,而不是 只有原始数据本身。例如:
Serial.print(温度:);
Serial.println(tempval);
连续打印(F(“水分”);
序列号println(moistval);
然后,Node.js代码可以将每一行解析为一个name:value对。你可以
让Arduino将行格式化为JSON,从而简化解析
另外,如果您碰巧同时拥有两个数据段
时间,然后你可以把他们两个在同一行。这会让事情变得更糟
稍微简单一点。阿杜伊诺方面:
Serial.print(F(“{\'temperature\”:”);
串行打印(tempval);
连续打印(F(“,”水分“:”);
串行打印(moistval);
Serial.println(F(“}”);
Node.js端:
myPort.on('data', function (data) {
console.log(JSON.parse(data));
});
myPort.on('data', function (data) {
console.log(JSON.parse(data));
});