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 ofrequire('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.