아두이노 코딩-82: 아두이노 시리얼 전송 데이터 Node.js로 출력

codingart(66)
Published in
#kr
Words
253
Reading
2 min
Listen
Play
8y

Node.js 사이트에서 Windows Installer를 이용하여 간편하게 node.js를 다운 받자. 윈도우즈 7 이상이면 64비트 버전을 다운받으면 된다.

noname01.png

윈도즈의 바탕화면에서 반드시 사용자 폴더 속에 가칭 Myname 이란 이름으로 폴더를 마련하고 이 폴더 안에 node.js 응용 코드를 작성하여 저장하기로 한다. 아울러 Myname 속에 node_modules 란 이름으로 라이브러리를 다운받아 둘 폴더를 마련해 두자. Myname에서 npm 명령을 사용하여 필요한 라이브러리를 install 하면 node_modules 폴더 속에 저장된다.

HTML 및 Java Script 편집이 가능한 Padnote++을 사용하여 node.js 코드 Rndnum을 다음과 같이 작성하고 언어를 Java Script 로 지정 후 확장자를 js 로 하여 반드시 Myname 폴더에 저장한다.

noname02.png

‘serialport’는 시리얼 인터페이스를 지원하는 node.js의 라이브러리이다. Myname 폴더에서 install 작업이 필요하다. 이 작업은 검은 색 명령 창에서 이루어져야 한다. 아래 그림을 참조하자. 여기서 Sc가 바탕화면의 사용자 폴더이며 그 속에 Myname 폴더가 있다.

C:\Users\Sc\Myname>npm install —save serialport

noname03.png

npm 명령은 node.js package management 의 약어이다. 설치가 완료되었으면 Myname 아래에 위치한 node_modules 폴더를 조사해 보면 serialport 라는 폴더가 있음을 확인할 수 있을 것이다.

noname04.png

아래의 코드는 아두이노 NodeMCU에서 작성한 1∼10 사이의 난수발생 코드이다. 시리얼 인터페이스 통신 속도는 9600으로 설정하였으며 사용하는 COM 포트는 COM17 이다.

noname05.png

아두이노 편집기에서 이 코드를 컴파일 업로딩 해둔다. PC에서 node.js로 전송된 데이터가 빨리 스크롤 되므로 속도 조절을 위해서는 시간 지연을 100msec에서 500 msec 로 적절히 늘려 보도록 한다.

아두이노에서 발생된 난수가 전송되고 있으면 PC에서 Rndnum.js 코드를 실행 시켜 명령 창에서 시리얼인터페이스로 전송되는 데이터를 관찰해 보자. 다음의 Node.js 명령을 입력 실행시키자.
C:\Users\Sc\Myname>node Rndnum.js

다음 동영상을 관찰하여 1∼10 사이의 난수발생 여부를 확인해보자.

웹이나 Processing 코드가 아닌 Node.js를 통해 데이터를 수신할 수 있지만 Node.js 로 뭔가 처리하기 위해서는 Java Script 코딩을 통해 별도의 서버 페이지를 준비해야 할 듯하다.