nodejs serial port program ( 노드 시리얼포트 프로그램)

 nodejs 로 serialport 통신을 할수가 있다.


동작 시키기 위해서는 


 아래의 사이트에 가서 module 을 받아야 한다.

https://www.npmjs.com/package/serialport


=>  npm i serialport   을 실행하면 project 에서 serial port 를 사용할 수 있다.


사용방법은 간단하다.



var SerialPort = require('serialport')
const PORT = '/dev/ttyS0'
const BAUDRATE = 115200

var serialport = new SerialPort(PORT,{baudRate:BAUDRATE})


serialport.on('open', function() {
    console.log("open ",serialport.isOpen);
});


serialport.on('data', function (data) {
    console.log(" receive ",data);
});

serialport.write('Hello\n')


아래와 같이 되어 있다.

1. 선언하고

2. 설정하고

3.열고

4. 읽고

5. 쓰고


추가로 error 와 close 를 사용할 수 있는데

방법은 아래와 같다.



var SerialPort = require('serialport')
const PORT = '/dev/ttyS0'
const BAUDRATE = 115200

var serialport = new SerialPort(PORT,{baudRate:BAUDRATE})


serialport.on('open', function() {
    console.log("open ",serialport.isOpen);

});


serialport.on('data', function (data) {
    console.log(" receive ",data);
    console.log('receive',data.toString('utf-8'));
});


serialport.on('error', function (msg) {
    console.log(" Error ",msg.message);
    process.exit()
    
});

serialport.on('close', function () {
    console.log(" Close ");
});

// 포트를 종료하는 명령을 준다.
serialport.close()



포트가 열기도 전에 종료하라고 하면 


error 가 선언되어 있는 곳으로 가고 process.exit() 를 만나서 프로그램을 종료 시킨다.



그럼 close 를 만나기 위한 방법도 구현해 본다.




var SerialPort = require('serialport')
const PORT = '/dev/ttyS0'
const BAUDRATE = 115200

var serialport = new SerialPort(PORT,{baudRate:BAUDRATE})


serialport.on('open', function() {
    console.log("open ",serialport.isOpen);
    serialport.close()
});


serialport.on('data', function (data) {
    console.log(" receive ",data);
    console.log('receive',data.toString('utf-8'));
});


serialport.on('error', function (msg) {
    console.log(" Error ",msg.message);
    process.exit()
    
});

serialport.on('close', function () {
    console.log(" Close ");
});




포트가 열리면 종료하라고 선언한다. 

그럼 정상적으로 close 구문으로 간다. 


또 한가지 data 받는 부분에 toString('utf-8') 로 하였다. 

이유는 data를 받을때 Buffer 형태로 받는다. 그냥 hex 값형태로 데이터를 받기 때문에 다 숫자로 나온다. 그래서, string 으로 변환해서 나오는 구문을 추가하였다.


댓글

이 블로그의 인기 게시물

mount 명령 ( 읽기 권한만 있는놈 쓰기 권한 주기 )

c# mqtt client example

비글본 블랙 고정 아이피 설정