2014-07-07 8 views
1

Arduino와 Nodejs 사이의 통신을 시도하고 있습니다. 그러나 문제는 올바른 읽기와 올바른 읽기 사이의 쓰레기 읽기 사이에서 의사 소통하는 것입니다. 아직도이 문제를 해결하는 방법을 이해할 수 없습니까?Nodejs와 Arduino 간의 직렬 포트 통신

여기,

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

      serialport.on('data', function(data){ 
      console.log(data[0]); 
      }); 
     }); 

여기 내 간단한 아두 이노 코드

 int led = 13; 
     void setup() {     
      Serial.begin(9600); 
      pinMode(led, OUTPUT);  
     } 
     void loop() { 

      digitalWrite(led, HIGH); 
      Serial.write(1); 
      delay(1000); 
      digitalWrite(led, LOW); 
      Serial.write(0); 
      delay(1000);    
     } 

답변

2

제한 전송되는 데이터의 크기 COM 포트에서 데이터를 읽는 데 사용되는 Nodejs 부분입니다 또한 직렬 전송을위한 파서를 정의한다.

당신은 두 가지 옵션 "원시"및 "readline에"이 직렬 포트 문서 https://github.com/voodootikigod/node-serialport#parsers

에 봐.

기본적으로 node-serialport는 원시 이벤트를 데이터 이벤트로 단순히 내보내는 두 개의 구문 분석기와 익숙한 "readline"스타일 구문 분석을 제공하는 파서를 제공합니다. 읽기 전용 구문 분석기를 사용하려면 '\ n'과 같은 구분 기호를 제공해야합니다.

여기에 node.js의 예가 나와 있습니다.

var sp = new SerialPort('/dev/tty.usbmodem14111', { 
    //sp.parsers.readline('\r') 
    //serialport.parsers.raw 
     baudrate: 9600, 
     parser: serialport.parsers.readline('\n') 
    }); 

Arduino 쪽에서 직렬 함수 println()을 사용하십시오.

Serial.println("your message to the node server"); 

이 정보가 도움이되기를 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 나는 이미 이것을 만들었다 :) – GPrathap