节点串行端口无法读取数据

时间:2019-02-10 21:08:54

标签: node.js arduino raspberry-pi serial-port node-serialport

我正在尝试通过串行端口将arduino mega中的数据读取到我的raspberry pi 3中。节点代码:

const five = require("johnny-five")
const Raspi = require("raspi-io")
const SerialPort = require("serialport")
const Readline = require('@serialport/parser-readline')


const arduinoSerialPort = new SerialPort("/dev/ttyACM0", {
  baudRate: 9600
})
const parser = arduinoSerialPort.pipe(new Readline({ delimiter: '\r\n' }))

const board = new five.Board({
  io: new Raspi(),
  repl: false,
})


board.on('ready', function() {    
  parser.on('data', console.log)
})

arduino代码:

int pushButton = 7;

void setup() {
  Serial.begin(9600);
  pinMode(pushButton, INPUT);
}

void loop() {
  int buttonState = digitalRead(pushButton);

  if(buttonState == HIGH){
    Serial.println('ononon');
    digitalWrite(LED_BUILTIN, LOW);
  }else{
    Serial.println('offfff');
    digitalWrite(LED_BUILTIN, HIGH);
  }

  delay(100);
}

Arduino有一个按钮,无论是否按下按钮,我都会发送不同的数据。

在节点方面,我似乎无法读取数据。我所得到的只是一些数字。 我尝试使用toString()也不起作用。

我被困在这里已经很长时间了,将不胜感激。

1 个答案:

答案 0 :(得分:0)

传统的愚蠢错误:p

Serial.println('offfff');

C / C ++对字符串使用双引号"

Serial.println("offfff");

JavaScript过多:v

尽管在arduino串行监视器中我之前可以看到该行,所以我没有想到研究arduino代码。