简体   繁体   中英

Arduino NodeJs Serial Communication issue

I cant send data from NodeJs to Arduino.. Serial.available() is false all time.. I dont know what is the my fail.. Can anyone help me ?

This is my JavaScript/NodeJS code

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);
        });
    }
});

And This is my Arduino Code

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 OutPut is

node server.js DEPRECATION: Please use require('serialport') instead of require('serialport').SerialPort

open

Result : undefinded

Result : undefinded

Result : undefinded

Try to listen nodeJS ^^.

Replace :

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

by

var SerialPort = require("serialport");

EDIT :

Your data isn't initialize in your scope. try this :

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); });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM