본문 바로가기

잡다

[라즈베리파이] node-red-node-pi-gpio 라즈베리파이 5에서 사용하기

https://blaxsior-repository.tistory.com/283

 

[라즈베리파이] 라즈베리파이5 node-red 연동

https://nodered.org/ Node-REDBuilt on Node.js The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi

blaxsior-repository.tistory.com

 이전 글에서 node-red-node-pi-gpio가 라즈베리파이 5에서 제대로 동작하지 않는다고 말했다. 그 이유는 해당 플로우가 내부적으로 RPi.GPIO라는 라이브러리에 의존하고 있으며, 현재 라즈베리파이 5에 대한 지원 기능이 없기 때문이다.

 반대로 말하면 RPi.GPIO만 동작하면 위 라이브러리는 정상적으로 사용할 수 있다. 정보를 찾다 보니, 라즈베리파이 5에서 GPIO 작업에 주로 사용되는 lgpio 라이브러리를 이용해 RPi.GPIO의 인터페이스를 구현하는 라이브러리가 있다는 것을 알게 되었다. ( RPi.GPIO의 동작을 lgpio로 구현, 해당 라이브러리를 대체할 수 있다. )

https://pypi.org/project/rpi-lgpio/

 

rpi-lgpio

A compatibility shim between RPi.GPIO and lgpio

pypi.org

rpi-lgpio를 설치하면 node-red-node-pi-lgpio가 동작한다.

설치 이전 & 이후

라즈베리파이 5에서 node-red 및 GPIO 기능을 사용하는 방법을 다시 정리하자면 다음과 같다.

nodejs을 설치한다.

sudo apt-get update
apt-get install nodejs

 

npm으로 node-red을 설치한다.

sudo npm install -g --unsafe-perm node-red

node-red을 한번 실행했다가 끄자.

node-red

node-red을 실행하면 ~/.node-red 폴더가 생성된다. 해당 폴더는 node-red의 패키지 정보가 저장되는 장소로, 특정 노드를 추가하고 싶은 경우 해당 위치로 이동한 다음 npm install로 설치하면 된다. ~/.node-red로 이동한 후 node-red-node-pi-gpio을 설치하자.

추가적으로 RPi.GPIO 라이브러리를 대체하는 rpi-lgpio를 설치한 후 node-red를 다시 실행하면 끝난다.

cd ~/.node-red
npm install node-red-node-pi-gpio
pip install rpi-lgpio