- Node Serialport 개요
- Node Serialport 설치 하기
- Serial port open 하기
- Serial port Read/Write 예
- Serial Port Listing
Node Serialport는 node.js 환경에서 시리얼 통신(Serial Communication)를 가능하게 하는 Library 이다.
각종 센서, 모터 제어, 로봇, 조명 장치, 홈 오토메이션, 공장 자동화 등 우리가 일상 생활에서 사용 하는 장치들의 대부분은 시리얼 통신을 사용 하여 제어 한다.
node.js 환경에서 Node Serialport를 사용 하면 제어대상(장치)의 위치나 거리에 상관 없이 인터넷을 사용 할 수 있는 환경만 구성 되면 각종 장치의 상태를 모니터 하고 제어 할 수 있다.
Node Serialport 실험을 위한 시스템 구성
- npm install serialport --save
- Node serialport를 설치한 package.json파일은 "Node serialport를 설치한 package.json파일 예"에서 확인 할 수 있다.
- 참고자료: npm Node Serialport
- 참고자료: Node SerialPort Docs
DOS Command 창에서 아래 명령으로 Node Serialport를 설치 한다.
주: --save 옵션은 package.json의 dependency 항목에 모듈을 추가한다는 의미이다. 그러나 npm5 부터는 --save 옵션을 기본 옵션으로 적용하기 때문에 --save를 사용하지 않아도 dependencies에 항목이 자동으로 추가된다.
주: Node.js를 다시 설치하는 경우 Serialport를 다시 설치하여야 하는 경우가 발생할 수 있다. 이 경우 "npm uninstall serialport" 명령으로 삭제하고, "npm install serialport" 명령으로 다시 설치한다.
- 위에 있는 Node Serialport 실험을 위한 시스템 구성에 맞게 PC(Web Server로 사용)와 Controller를 연결 한다.
- 제어판 -> 하드웨어 및 소리 -> 장치관리자 -> 포트(COM & LPT) 에서 연결된 Controller의 Port 번호를 확인 한다. 아래 예에서는 Port 번호가 COM5 인 경우 임.
- 이 예에서는 serialport Library가 D:\node_js 폴더에 설치되고, 필요한 js(JavaScript) 프로그램도 D:\node_js 폴더에 저장 하는 것으로 한다.
- 아래의 프로그램을 복사하여 D:\node_js>serial_port_open.js에 저장 한다.
- Serial port open 예
- DOS Command Window를 열고 D:\node_js로 이동 한 다음, 아래와 같이 serial_port_open.js를 실행 한다.
- node serial_port_open.js
- Serial Port가 정상적으로 open 되면 DOS Command Window에 "Serial port opened" 메세지가 출력 되고,
- Error 가 발생 하면 Error message 가 DOS Command Window에 출력 된다.
- 아래 Serial port Read/Write 예에서, DOS Command Window 예을 참고 바람.
- Server 측 Program 예
- 아래 프로그램을 복사 node serial_port_rw.js로 저장 한다.
- Controller(ATmega128 Board를 사용 한 경우)측 Program 예
- ATmega128 Board를 위한 프로그램 Down Load 하기: node_js_rw_test_128.zip
- Arduino MEGA Board를 위한 프로그램 Down Load 하기: node_js_rw_test_mega.zip
- ATmega128 Board를 위한 C 프로그램(main 프로그램 만 표시 함. 전체 프로그램은 zip File을 참고 바람.) 보기: node_js_rw_test_128_main.txt
- Serial port Read/Write 실험
- Down Load한 Controller "node_js_rw_test_128.zip"(ATmega128 Board를 사용 한 경우)의 압축을 풀고 실행 파일을 ATmega128 Board에 설치한다.
- 모니터(Console) 프로그램(예: OC-Console, Tera Term)을 실행하고 ATmega128 Board UART0 포트에 연결한다.
- 아래 DOS 명령창에서 아래 명령(프로그램이 D:\node_js에 위치한 경우)으로 node serial_port_rw.js를 실행한다.
- Controller 모니터(Console)에 "Serialport Testing: " 메세지가 출력된다.
- Controller 모니터(Console)에서 'abc' Enter '123' Enter를 입력하면 DOS Command 창(Server 측: PORT1)에 아래 예와 같이 출력된다.
이 예는 Node.js 환경에서 Node Serialport Library를 사용 하여 Server 측의 Serial Port를 Open 하고, Contorller(ATmega128 보오드 or Arduino MEGA Board)와 Serial 통신(Write: Server 측에서 Controller에 Data를 송신, Read: Controller로 부터 Data를 수신)을 실행하는 실험 이다.
이 프로그램은 Studio 7 환경에서 작성 되고 테스트 하였다.
PORT0: Program download(AVR Studio에서 사용)와 Serial Port 통신 실험에서 모니터 프로그램이 사용 한다.
PORT1: Server 측에서 사용 한다.
제어판 -> 하드웨어 및 소리 -> 장치관리자 -> 포트(COM & LPT) 에서 연결된 Controller의 Port 번호를 확인하고 "serial_port_rw.js" 프로그램의 COM 포트 번호를 바르게 변경한다. 이 예에서는 Port 번호가 COM5 인 경우 임.
D:\node_js>node serial_port_rw.js
Controller 모니터(Console)에 'abc' Enter '123' Enter를 입력한 경우 Controller 모니터(Console)와 DOS Command Window 예
모니터(Console) Window 예 | DOS Command Window 예 |
---|
- Serial port list를 출력 하는 프로그램 예:
- 아래 프로그램을 복사하여 port_list.js로 저장 한다.
- 이 프로그램을 DOS 명령창에서 다음과 같은 명령(프로그램이 D:\node_js에 위치한 경우)으로 실행한다.
- DOS Command Window에 출력된 Port list 예
Serialport Library를 사용 하면 아래와 같이 Port 정보에 쉽게 접근 할 수 있다.
D:\node_js>node port_list.js