Nodejs和Arduino之间的串口通信
我正在尝试Arduino和Nodejs之间的沟通。 但问题是当我沟通时,我得到了正确的阅读,以及在正确的阅读之间的一些垃圾阅读。 仍然不能理解如何解决这个问题?
这里是用于从COM端口读取数据的Nodejs部分
var SerialPort = require("serialport").SerialPort; var serialport = new SerialPort("COM23",{baudrate:9600}); serialport.on('open', function(){ serialport.on('data', function(data){ console.log(data[0]); }); });
这是我简单的Arduino代码
int led = 13; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); Serial.write(1); delay(1000); digitalWrite(led, LOW); Serial.write(0); delay(1000); }
限制传输数据的大小,也为串行传输定义一个parsing器。
看看串口文档https://github.com/voodootikigod/node-serialport#parsers
你有两个select“原始”和“readline”。
开箱即用,node-serialport提供了两个parsing器,一个简单地将原始缓冲区作为数据事件发送,另一个提供熟悉的“readline”样式parsing。 要使用readlineparsing器,必须提供一个分隔符,如'\ n'
这里是node.js的一个例子。
var sp = new SerialPort('/dev/tty.usbmodem14111', { //sp.parsers.readline('\r') //serialport.parsers.raw baudrate: 9600, parser: serialport.parsers.readline('\n') });
在Arduino方面,使用Serial函数println();
Serial.println("your message to the node server");
我希望这有帮助。