AWS IOT -2 (Node-red)
1. 설치
NodeJS가 설치돼 있어야 하고 버전 확인(https://nodejs.org/en/)에 접속해서 다운로드하자.
보통은 LTS 버전을 많이 쓰니까 나는 LTS 버전을 다운로드하였다.
node --version && npm --version
그다음에 npm으로 node-red 설치
sudo npm install -g --unsafe-perm node-red
2. 실행
Terminal에서 실행을 한다.
node-red
그다음에 웹브라우저에서 접속
http://127.0.0.1:1880
3. 사용 방법
왼쪽에서 요소를 그림판처럼 붙여 넣어서 테스트 구성을 할 수 있다. (신세계)
우리는 MQTT로 명령어를 전달하고 받아 볼 예정이다.
1) Publish를 하기 위해서 우선 Common의 Inject를 하나 끌어 다 두고 Network의 mqtt out을 끌어다 두었다
2) Subscribe를 하기 위해서 Network의 mqtt in을 끌어다 두고 Common의 debug를 끌어다 두었다.
3) 다시 각각을 연결하였다.
4-1) Inject의 속성 설정
에 가서 Publish 할 토픽과 message를 적어준다. 테스트 니까 아래와 같이 작성한다.
그리고 문자 앞쪽에 속성이 있는데 속성은 string으로 바꾸어 준다.
TOPIC : service
msg : "테스트입니다."
4-2) mqtt out의 속성 설정
서버 엔드포인트를 적어 두고 TLS사용을 클릭한다. 여기서 포트 번호는 8883을 사용한다.(잘못된 걸 찾느라 힘들었다.)
그리고 연필 모양을 클릭하면 인증서를 업로드할 수 있는 화면이 나오고 CERT 파일, private key 파일 CA 인증서 파일을 업로드해준다.
4-3) mqtt in의 경우 보통 out 오브젝트를 수정하면 같이 수정되는데 혹시 안돼 있으면 동일하게 설정하면 된다.
이제 다 왔다. Node-red 오른쪽 상단의 배포하기를 누른다.
5) 배포하기 누르면 mqtt 오브젝트 아래에 "접속됨"으로 표시되면 성공이다. 여기서 메시지를 보내려면 inject 오브젝트의 왼쪽에 버튼을 마우스로 클릭하면 된다. 그러면 Publish가 된 것이고 mqtt in을 통해 전달된 메시지는 오른쪽 디버그 창에 표시된다.
AWS에서도 확인 할 수 있는데 테스트에 mqtt 테스트 클라이언트에 가서 같은 주제를 구독 해 두면 아래처럼 메시지가 발생하는 것을 볼 수 있다.
정리: 전반적으로 사용은 편의성이 있었다. 간이로 테스트할 때는 이만한 게 없을 거 같다. 마우스로 동작시키니 동작도 편하다.
다만, AWS IOT 서버에서 사물 생성 / 정책 생성/ 인증서 생성해서 연결하고, 엔드포인트 포트번호 인증서를 세팅하는 데 좀 헤매었다.