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 메가 까지 여서 어쩔수 없이 분할 함.
.
'개발 > web' 카테고리의 다른 글
json 사용, example source (0) | 2022.08.17 |
---|---|
Node.js “net” Module을 사용해 tcp socket 통신 , example source (0) | 2022.08.16 |
js 모듈 p5 간단히 보기: 마치 스케치북과도 같으며 다양한 드로잉 기능을 제공 (0) | 2022.08.16 |
win 7 에서 node.js 로 socket 통신을 하는 예제 : chat 하기, example source (0) | 2022.08.16 |
node , express, bootstrap 으로 간단 홈페이지, example source (0) | 2022.07.27 |