2016-10-03 104 views
0

我不能將數據從NodeJs發送到Arduino .. Serial.available()是錯誤的所有時間..我不知道什麼是我的失敗..任何人都可以幫助我嗎?Arduino NodeJs串行通信問題

這是我的JavaScript /代碼的NodeJS

var serialport = require("serialport"); 
var SerialPort = serialport.SerialPort; 

var serialPort = new SerialPort("COM3", { 
    baudrate: 9600, 
     dataBits: 8, 
     parity: 'none', 
     stopBits: 1, 
     flowControl: false 
}); 

serialPort.on("open", function() { 
    console.log('open'); 
serialPort.on('data', function(data) { 
    console.log(data); 
    }); 
data="omg"; 
    for(var i=0; i<data.length; i++){ 
     serialPort.write(new Buffer(data[i], 'ascii'), function(err, results) { 
      if(err!=null) 
      { 
      console.log('Error: ' + err); 
      } 
      else 
      console.log('Results ' + results); 
     }); 
    } 
}); 

,這是我的Arduino代碼

void setup() { 
    Serial.begin(9600); 
} 
String inData = ""; 

void loop(){ 

    while (Serial.available() > 0) { 
     char received = Serial.read(); 
     inData.concat(received); 
     Serial.println(received); 
     // Process message when new line character is received 
     if (received == '\n') { 
      // Message is ready in inDate 
     } 
    } 
} 

輸出的NodeJS是

節點服務器。 JS棄用:請使用require('serialport')代替 require('serialport').SerialPort

開放

結果的:undefinded

結果:undefinded

結果:undefinded

回答

0

嘗試聽^^的NodeJS。

替換:

var serialport = require("serialport"); var SerialPort = serialport.SerialPort;

通過

var SerialPort = require("serialport");

編輯:

data沒有在你的範圍內初始化。 試試這個:

var SerialPort = require("serialport"); 

var serialPort = new SerialPort("COM3", { 
    baudrate: 9600, 
    dataBits: 8, 
    parity: 'none', 
    stopBits: 1, 
    flowControl: false 
}); 

var _data = ''; 

serialPort.on("open", function() { 
    console.log('open'); 
    serialPort.on('data', function(data) { 
    console.log(data); 
    _data += data; 
    }); 
    for(var i=0; i<_data.length; i++){ 
    serialPort.write(new Buffer(_data[i], 'ascii'), function(err, results) { 
     if(err!=null) 
     { 
     console.log('Error: ' + err); 
     } 
     else 
     console.log('Results ' + results); 
    }); 
} 
}); 

serialPort.on('error', function(err) { console.log(err); }); 
+0

我要去嘗試兄弟:) –

+0

犯規再次合作:現在/ –

+0

什麼節點在說什麼? –