【问题标题】:How can I read this particular buffer data that I'm getting from arduino while using nodejs?如何在使用 nodejs 时读取从 arduino 获取的特定缓冲区数据?
【发布时间】: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


【解决方案1】:

设置正确的波特率。就我而言,它是 9600。
如果你制作类似Serial.println(dataFromPin) 的东西,你可以 data.toString('ascii')

你怎么能猜出编码:data[0].toString() 并与来自 arduino IDE 串行监视器的值进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多