본문 바로가기
컴퓨터|인터넷/라즈베리파이

라즈베리파이를 위한 모스키토+paho-mqtt+Node-RED+dashboard2 설치

by 즐거운 지니 2024. 7. 30.
반응형

Raspberry Pi 4에 Mosquitto, MQTT Python 모듈, Node-RED 및 Dashboard2 설치하는 방법을 단계별로 안내드리겠습니다. 이 과정에서는 Raspberry Pi에 Raspbian(현재는 Raspberry Pi OS라고 불림)이 설치되어 있다고 가정합니다.

1. Mosquitto 설치

  1. 패키지 목록 업데이트sudo apt update
  2. Mosquitto와 클라이언트 도구 설치sudo apt install mosquitto mosquitto-clients -y
  3. Mosquitto 자동 시작 설정: 이제 Mosquitto가 설치되고 실행 중입니다. mosquitto 명령을 사용하여 브로커를 시작하거나, mosquitto_submosquitto_pub 명령을 사용하여 메시지를 구독 및 발행할 수 있습니다. sudo systemctl enable mosquitto sudo systemctl start mosquitto

2. MQTT Python 모듈 설치

Python을 사용하여 MQTT를 구현하려면 paho-mqtt 라이브러리를 설치합니다.

  1. pip 설치 (설치되지 않은 경우)sudo apt install python3-pip -y
  2. paho-mqtt 설치pip3 install paho-mqtt

이제 Python에서 MQTT를 사용하여 메시지를 발행하고 구독할 수 있습니다.

3. Node-RED 설치

  1. Node.js와 npm 설치: Node-RED는 Node.js 위에서 실행되므로 Node.js와 npm이 필요합니다. 최신 버전을 설치합니다. curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs
  2. Node-RED 설치sudo npm install -g --unsafe-perm node-red

3-1. Node-RED 서비스 파일 생성

Node-RED의 서비스 파일을 /etc/systemd/system/nodered.service 경로에 생성합니다. 이를 위해 다음 명령어를 실행하여 편집기를 엽니다:

sudo nano /etc/systemd/system/nodered.service

3-2. 서비스 파일 내용 추가

파일에 다음 내용을 추가합니다:

[Unit]
Description=Node-RED
Documentation=http://nodered.org/docs/hardware/raspberrypi.html
After=network.target

[Service]
ExecStart=/usr/bin/env node-red-pi --max-old-space-size=128
WorkingDirectory=/home/pi
User=pi
Group=pi
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
Restart=on-failure
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

여기서:

  • ExecStart: Node-RED를 시작하는 명령어를 지정합니다. node-red-pi 명령어가 시스템 경로에 있어야 합니다. --max-old-space-size=128은 메모리 사용량을 제한하기 위한 옵션입니다.
  • UserGroup: Node-RED를 실행할 사용자 및 그룹을 지정합니다. 필요에 따라 사용자 이름을 변경하세요.

편집을 완료한 후 Ctrl + X, Y, Enter를 눌러 저장하고 종료합니다.

3-3. 서비스 파일의 권한 설정

다음 명령어로 서비스 파일의 권한을 적절히 설정합니다:

sudo chmod 644 /etc/systemd/system/nodered.service

3-4. 시스템 서비스 등록 및 시작

새로 만든 서비스를 등록하고 시작합니다:

sudo systemctl daemon-reload
sudo systemctl enable nodered.service
sudo systemctl start nodered.service

3-5. 서비스 상태 확인

서비스가 제대로 시작되었는지 확인하려면 다음 명령어를 사용합니다:

sudo systemctl status nodered.service

정상적으로 작동하고 있다면 "active (running)" 상태를 볼 수 있습니다.

이제 Node-RED가 시스템 부팅 시 자동으로 시작되며, 수동으로 node-red 명령어를 실행하지 않아도 됩니다.

Node-RED는 설치 후 http://<라즈베리 파이 IP>:1880에서 웹 인터페이스로 접근할 수 있습니다.

4. Node-RED Dashboard2 설치

Node-RED Dashboard는 웹 기반의 UI를 제공하며, 이를 통해 간단한 대시보드를 만들 수 있습니다.

  1. Node-RED 대시보드 노드 설치: Node-RED의 웹 인터페이스에서, 오른쪽 상단의 메뉴 버튼을 클릭하고 "Manage palette"를 선택합니다. "Install" 탭에서 node-red-dashboard를 검색하고 설치합니다.
  2. 대시보드 구성: 설치 후 Node-RED 플로우에 대시보드 노드를 추가할 수 있으며, http://<라즈베리 파이 IP>:1880/ui에서 대시보드를 볼 수 있습니다.

5. 테스트 및 확인

  1. Mosquitto 테스트:
    • 한 터미널에서 mosquitto_sub -h localhost -t test/topic 명령으로 구독합니다.
    • 다른 터미널에서 mosquitto_pub -h localhost -t test/topic -m "Hello, MQTT" 명령으로 메시지를 발행합니다.
    • 첫 번째 터미널에서 메시지가 제대로 수신되는지 확인합니다.
  2. Python MQTT 클라이언트 테스트:
    • 간단한 Python 스크립트를 작성하여 Mosquitto와 통신할 수 있는지 확인합니다.
  3. Node-RED와 Dashboard 확인:
    • Node-RED 편집기에서 MQTT 인/아웃 노드를 설정하고 대시보드 노드와 연결하여 MQTT 메시지를 시각화합니다.

이제 Raspberry Pi 4에서 Mosquitto 브로커, Python MQTT 클라이언트, Node-RED 및 Dashboard를 사용하여 IoT 프로젝트를 시작할 수 있습니다.

반응형

댓글