【发布时间】:2015-06-11 05:31:28
【问题描述】:
我目前在 arduino 上使用脉冲传感器,并尝试从传感器获取数据并尝试在浏览器上显示它。这就是我的 nodejs 代码的样子。
var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort("/dev/cu.usbserial-DA011OXR", {
baudrate: 57600
});
serialPort.on('open', showPortOpen);
serialPort.on('data', saveLatestData);
serialPort.on('close', showPortClose);
serialPort.on('error', showError);
function showPortOpen() {
console.log('port open. Data rate: ' + serialPort.options.baudRate);
}
function showPortClose() {
console.log('port closed.');
}
function showError(error) {
console.log('Serial port error: ' + error);
}
function saveLatestData(data) {
console.log(data);
latestData = data;
}
这就是我在终端上获得的数据。
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 33 0d 0a>
<Buffer 53 35 31 31 0d 0a>
<Buffer 53 35 31 30 0d 0a>
<Buffer 53 35 31 31 0d 0a>
<Buffer 53 35 31 31 0d 0a>
<Buffer 53 35 31 31 0d 0a>
<Buffer 53 35 31 32 0d 0a>
<Buffer 53 35 31 32 0d 0a>
<Buffer 53 35 31 33 0d 0a>
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 34 0d 0a>
<Buffer 53 35 31 33 0d 0a>
<Buffer 53 35 31 32 0d 0a>
<Buffer 53 35 31 31 0d 0a>
我一直在尝试在网上查看我应该如何解释或解析这些数据,但我一无所知。任何帮助都会很棒!
【问题讨论】:
-
由于
data是一个Buffer对象,只需在其上调用toString(),如console.log(data.toString())。 -
你应该看看 arduino 文档,看看你得到了什么,即输出数据的格式。默认情况下 Buffer.toString() 将缓冲区视为 utf-8 编码文本,这很可能是不正确的;也许(例如)你得到一个 6 字节的信号,你需要把它变成一个数字。
标签: node.js arduino buffer sensors pulse