2014-08-29 36 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