2014-08-29 59 views
0

我想从使用arduino和rfid-rc522阅读器的rfid标签获取数据我可以通过arduino串行监视器获取标签数据,但是我无法接收到带有节点的正确数据。所有我得到的是所有标签中的相同数字(每个标签都应该有它自己的数字)。 我从Arduino的监视器,它是正确的获取:http://i.stack.imgur.com/3ukb7.png从node.js和arduino serialport的arduino serialport接收值

我从中得到的Node.js:http://i.stack.imgur.com/wCXXN.png

我的node.js代码:

var SerialPort = require("serialport").SerialPort; 
var serialport = new SerialPort("COM4",{baudrate:9600}); 
serialport.on('open', function(){ 

    serialport.on('data', function(data){ 



      console.log(data[0] ); 






    }); 
});; 

任何帮助解决这一会不胜感激。

+0

我的Arduino素描:HTTP://www.grantgibson.co.uk/blog/wp-content/uploads/2012/04/ggrfid_en_ino.txt – user3810508 2014-08-29 13:07:43

回答

0

由于nodejs是基于事件的,因此您会在块中获取字符串切片,因为每次接收到字节时触发'data'事件。使用node-serialport parsers来连接以前收到的数据,直到数据有一些表示消息结束的'x'字符。

var sp = new SerialPort("/dev/tty-usbserial1", { 
    parser: serialport.parsers.readline("\n") // '\n' can be any character of your choice 
}); 

希望帮助

+0

没有工作所有,我的代码:“var serialport = require(”serialport“); var SerialPort = serialport.SerialPort; //本地化对象构造函数 var sp = new SerialPort(”COM4“,{ parser:serialport.parsers.readline (“\ n”) }); “ – user3810508 2014-09-08 00:04:50

+0

有什么建议吗? – user3810508 2014-09-08 00:05:20

+0

您的arduino代码必须在解析器工作的消息结尾处发送换行符。另外请确保计算机和arduino之间的GRD连接,让我头疼(如果你的arduino通过USB连接,这不是问题) – lazychino 2014-09-10 02:43:04