본문 바로가기

개발/web

win 7 에서 node.js 로 serial port 통한 송수신 위해 설정 하기 - nodejs serialport window

반응형


win 7 에서 node.js 로 serial port 통한 송수신 위해 설정 하기. 

 

serial 포트는 내부 디바이스로, 기존 라이브러리 들만 설치로 되지 않고,

각 컴 os 에 따라 컴파일을 해야 쓸 수 있다.  컴파일 하기 위해 컴파일 툴을 깔어야 하고,

각 os 별로 버전도 맞추어야 한다.

아래 내용은 220801 현재  m$ window 7 에서 해본 사항이다.. 

몇일 고생은 했지만, 어째든 포트번호 까지 나오는것을 확인 하였다.


0. 설치 하기 위한 조건. 
- node 버전 : node-v10.24.1-win-x64
-- win 7 에 node-v13.9.0-win-x64 는 실행 되나, 
-- serialport 버전 10 이 현재 최종 버전이나 win 10  이상에서 되고, 9가 윈7이 가능.

    https://serialport.io/docs/guide-platform-support
-- serialport 버전 9 를 위해 node 버전 10 을 설치 해야함
- serialport 위해 , node-gyp 와 python 이 필요

--  node-gyp 는 Node.js native addon build tool  
--  node-gyp is a cross-platform command-line tool written in Node.js     이란다... 자세한것은..

-- https://github.com/nodejs/node-gyp#installation

-- node version 10 에 설치 가능 한 node-gyp 버전은 7 또는 6 

 

-- 파이선은 노드 명령 windows-build-tools 로 깔림.


1.  node
https://nodejs.org/download/release/  에서 다운 받음
- node-v10.24.1-win-x64  .zip 을 받아 풀고,
- path 에 추가 하고, 확인

즉 cmd 창 띄우고,

E:\Src\doorLockApp\dLock>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files\dotnet\;E:\node-v10.24.1-win-x64
E:\Src\doorLockApp\dLock>

와 같이 노드의 패스가 포함 되어 야한다.

 

- cmd 창 열기
- node -v 실행 하여 버전 확인
- npm -v 실행 하여 버전 확인

 

 


2. 파이선 설치  - 이거 하지 말것
- 노드를 위한 파이선을 별도 설치 안해도 될지 모르나.. 
- 그냥 설치함.
2022 8 01 현재 win 7 에 깔릴수 있는 Python 3 버전 은 
Python 3.8.13, Python 3.7.12  이군...근데 이것은 다운로드 안되고..
Python 3.8.10 - May 3, 2021  이 다운로드 가능 하네..
zip 풀고 64 , 32 테스트 하니 일단 win 7 에서 실행 되는거 확인.

- 라고 했는데... 나중에 다른거 하다보니... 2.7 버전을 깔아 버리네.. 쩝


3. node-gyp 설치

-  버전 7을 설치 한다. 그러기 위해서 뒤에 @7 을 붙여 준다.
>npm install --global node-gyp@7
: -g 나 --global 를 붙이면, 현재 작업 디렉토리 에 설치가 아니라, 노드가 깔린데 설치 된다.
- 즉 E:\_t\web\node\node-v10.24.1-win-x64\node_modules 에 설치됨

- 설치 뒤에 가보면 설치 된것을 확인 할 수 있다.

 

4. 파이선 설치  

- 관리자 cmd 창을 띄우고, 아래 명령으로 설치 한다. 관리자 cmd 창 아니면 에러난다.
>npm install --global --production windows-build-tools 
: 이거 하면, 지가 알아서 파이선 2.7.15 과 빌드툴 을 설치 한다.
win 7이라 파이썬 3.8.10 을 미리 깔았는데, 2.7 을 다시까네... 괜히 했나?
C:\Users\b\.windows-build-tools 를 확인 하면 파이선과 vs 빌드 툴 이 설치 되어 있다.

5. serial 포트 설치

- node-gyp 와 파이선이 설치 되었으면 다음과 같이 버전 9를 설치 한다.
E:\Src\doorLockApp\dLock>npm i --save serialport@9
npm WARN dlock@1.0.0 No repository field.
..
..
E:\Src\doorLockApp\dLock>

-  -g 옵션이 없으니 작업 디릭토리에 설치 된다.

- 이것도 os 디펜드 하니, node 설치 디렉토리에 깔아야 하나 ? 

- 설치 뒤 작업 디렉토리에 E:\Src\doorLockApp\dLock\node_modules\serialport  가 있다.

6. Test
- 테스트 프로그램  t3.js 을  아래와 같이 만들고 실행한다.
---------------------------
let serialport = require('serialport');
console.log("Hello  2 , ",serialport.list() );

// list serial ports: promise 로 처리..
console.log("Hello  3, ");
serialport.list().then (
  ports => ports.forEach(port =>console.log(port.path)),
  err => console.log(err)
)

console.log("Hello  4, ");
--------------------------- 실행...
E:\Src\doorLockApp\dLock>node t3.js
Hello  2 ,  Promise { <pending> }
Hello  3,
Hello  4,
COM1
COM23
COM4
COM10
COM22

E:\Src\doorLockApp\dLock>
----------------------
-----  비동기라서 Hello 4 가 먼저 나오고, 포트 이름이 그다음 나온다


7.  serialport Command Line Tools

- 뭐 꼭 깔 필요는 없지만, serial port 목록을 cmd 창에서 그냥 확인 해 보고 싶을 때 깐다.

- 내부 소스를 참조 할 수도 있고
- SerialPort List  버전 9를 깔어야 함.
-- 설치
--- > npm install -g @serialport/list  
--- 라고 써 있는 데... 버전 문제로 에러 남.
--- 그래서... 버전 9를 까니 되는군..
E:\Src\doorLockApp\dLock>npm install -g @serialport/list@9
E:\_t\web\node\node-v10.24.1-win-x64\serialport-list -> E:\_t\web\node\node-v10.
24.1-win-x64\node_modules\@serialport\list\lib\index.js

E:\Src\doorLockApp\dLock>
-------------------
-- 노드 깔린데 E:\_t\web\node\node-v10.24.1-win-x64 에 가보면, 
--- serialport-list.cmd 가 만들어짐.
E:\Src\doorLockApp\dLock\node_modules>serialport-list
COM1    ACPI\PNP0501\1  (ǥ�� ��Ʈ ����)
COM23   ACPI\PNP0501\11 (ǥ�� ��Ʈ ����)
COM18   ACPI\PNP0501\16 (ǥ�� ��Ʈ ����)
COM9    ACPI\PNP0501\17 (ǥ�� ��Ʈ ����)
COM10   ACPI\PNP0501\18 (ǥ�� ��Ʈ ����)
COM22   ACPI\PNP0501\2  (ǥ�� ��Ʈ ����)

E:\Src\doorLockApp\dLock\node_modules>

 

 

8. 설치된 노드와 테스트프로그램 을 첨부 한다.  티스토리가 파일당 20 메가 까지 여서 어쩔수 없이 분할 함.

dLock.zip
5.37MB

 

.

 

node-v10.24.1-win-x64.vol1.egg
15.00MB
node-v10.24.1-win-x64.vol2.egg
7.98MB

 

반응형