• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

라즈베리파이를 이용하여 IoT 서버 만들기(도커 방식)

책에서 사용하는 부품 구입하기
여기서는 IOTstack을 이용하여 도커(Docker)에 여러가지 소프트웨어를 한꺼번에 설치하는 방법을 안내하고 있습니다.

그러나 이 방법은 프로세서 상의 문제로 라즈베리 파이 ZERO W에서는 사용할 수 없습니다. 라즈베리 파이 ZERO W에서는 다음 링크를 이용하여야 합니다.

라즈베리파이를 이용하여 IoT 서버 구축하기(일반 방식)

라즈베리 파이에 대하여

라즈베리 파이(Raspberry Pi)는 라즈베리 파이재단에서 만든 싱글 보드 컴퓨터입니다. 최신 제품은 라즈베리 파이 4 모델 B 입니다.

라즈베리 파이를 IoT 서버로 사용하는 경우에는 라즈베리 파이 4 모델 B 또는 라즈베리 파이 3 모델 B+를 사용하는 것이 좋습니다.

 1  헤드리스 방식으로 라즈베리 파이 OS 설치하기

PC에서 SD카드에 OS를 다운로드하고 필요한 파일을 작성하는 절차입니다.

라즈베리파이에 OS 설치하기

 2  IOTstack에서 도커(Docker)설치하기

IoT서버로 사용하기 위하여 필요한 여러 가지 소프트웨어의 설치와 설정 작업을 하는 단계입니다. 여러 가지 명령어를 한꺼번에 처리하기 위하여 gcgarner가 작성한 IOTstack이라는 스크립트를 사용합니다.

라즈베리파이 라이브러리를 최신 상태로 만들기
라즈베리파이 OS를 새롭게 설치한 후 또는 추가로 라이브러리를 설치하기 전에는 이미 설치되어 있는 라이브러리를 최신 상태로 바꿀 필요가 있습니다.

다음 명령어를 연달아 입력하여 라이브러리를 최신 상태로 유지합니다.

sudo apt update
sudo apt update 명령어 실행 결과 화면
sudo apt upgrade

실행 중간에
After this operation, xxxx kB of additional disk space will be used.
Do you want to continue? [Y/n]
라는 메시지가 출력됩니다. y을 입력하고 Enter를 누르면 실행이 계속됩니다. 처리해야 할 내용이 많으면 시간이 많이 걸립니다.

sudo apt upgrade 명령어 실행 결과 화면
IOTstack 스크립트 다운로드하기
IOTstack은 라즈베리 파이에 IoT와 관련된 소프트웨어를 docker 형식으로 설치할 수 있도록 해 주는 스크립트입니다. docker는 소트웨어를 컨테이너와 같은 표준적인 방식으로 쉽게 설치할 수 있게 해주는 소프트웨어 플랫폼입니다.

여기에서는 IOTstack을 이용하여 Mosquitto와 Node-RED를 설치합니다. 나중에 다른 소프트웨어도 추가로 설치할 수 있습니다.

 1  curl 설치하기
curl은 프로그램 저장소에서 파일을 복사해 오는 소프트웨어입니다.

sudo apt install -y curl
 2  IOTsatck 스크립트 다운로드 받기

curl -fsSL https://raw.githubusercontent.com/SensorsIot/IOTstack/master/install.sh | bash
IOTstack 메뉴에서 docker 설치하기
IOTstack 메뉴에서 docker를 설치합니다.

 1  IOTsatck 실행 디렉토리로 이동하기

cd ~/IOTstack
 2  IOTsatck 메뉴 실행하기

./menu.sh
 3  메뉴에서 docker 설치하기

Main Menu에서 첫 번째 항목인 Install Docker를 선택하여 실행합니다.

Install Docker 화면
 4  라즈베리 다시 시작하기

다음과 같이 Restart Required가 나타나면 <Yes>를 선택하여 라즈베리 파이를 다시 시작합니다.

Restart Required(Yes) 화면

라즈베리 파이가 다시 시작되면 PC와 접속이 끊어지므로 다음과 같은 메시지가 나타납니다. 확인 버튼을 누릅니다.

PuTTY Fatal Error 화면

잠시 후에 라즈베이 파이의 재기동이 완료되면 PC에서 PuTTY를 이용하여 라즈베리 파이에 다시 접속합니다.

 3  IoT 소프트웨어(Mosquitto, Node-RED 등)설치하기(반복 실행 가능)

다음 단계는 필요할 때마다 반복해서 실행합니다.

IOTstack 메뉴에서 소프트웨어 설치하기
IOTstack 메뉴에서 원하는 소프트웨어와 부속 컴포넌트를 설치하거나 삭제합니다. 이 작업은 필요할 때마다 반복해서 실행할 수 있습니다.

 1  IOTsatck 실행 디렉토리로 이동하기

cd ~/IOTstack
 2  IOTsatck 메뉴 실행하기

./menu.sh
 3  메뉴에서 Build Satck 실행하기

Main Menu에서 Build Stack를 선택하여 실행합니다.

Build Stack을 선택한 화면
 4  설치할 소프트웨어 선택하기

다음과 같이 Container Selection 메뉴가 나타납니다. ▼ 키와 ▲ 키를 이용하여 원하는 컨테이너 항목으로 이동하여 스페이스 바를 눌러서 *를 선택하거나 해제합니다. 여기서는 Portainer, InfluxDB, Grafana, Node-RED와 Eclipse-Mosquitto(아래 오류 정보 확인하셔요)를 선택하고 Enter를 눌러서 실행합니다.

Portainer, InfluxDB, Grafana는 선택사항입니다. 도커 관리, 실시간 데이타 보관과 데이터 시각화를 위해서는 함께 설치하는 것이 좋습니다. 지금 선택하지 않아도 나중에 추가로 선택하여 설치할 수 있습니다.

Container Selection 화면
2021년2월21일 현재 Eclipse-Mosquitto가 설치되더라도 제대로 작동하지 않는 문제가 발견되었습니다. 이 문제는 IOTstack 스크립트의 일시적인 오류로 판단됩니다. 문제가 해결될 때까지 Eclipse-Mosquitto는 선택을 해제한 후에 작업하시기 바랍니다. Mosquitto는 별도로 다음 링크에 따라 설치작업을 하면 됩니다.

라즈베리파이에 Mosquitto 설치하기 라즈베리파이에서 Mosquitto 사용자 보안 설정하기
 5  Node-RED nodes 선택하기

다음 화면은 Node_RED에 속한 노드(nodes)를 선택하여 설치하는 화면입니다. 여기서는 메뉴에 나타난 대로 사용합니다. 노드는 이 메뉴에서 추가로 선택하여 설치할 수도 있고, 나중에 Node-RED를 실행한 후 가져오기 기능을 이용하여 설치할 수도 있습니다.

Node-RED nodes 선택 화면
 6  설치 옵션 선택하기(반복 설치할 때 나타남)

소프트웨어를 설치한 흔적이 있으면 어떻게 할지 선택하는 화면이 나타납니다. 소프트웨어 종류에 따라 여러 번 나타날 수도 있습니다.

Do not overwrite를 선택하면 다시 설치하지 않습니다. 이 때 Preserve Environment and Config files를 선택하면 프로그램은 다시 설치하고 설정 정보는 이전 것을 유지합니다. Pull full service from template는 완전히 새로 설치할 때 선택합니다.

Overwrite Option화면

선택한 컨테이너의 소프트웨어가 설치된 후, 명령어 입력 화면으로 돌아갑니다.

 7  콘테이너 실행하기

다음 명령어로 설치한 소프트웨어를 실행합니다.

docker-compose up -d

 4  Mosquitto와 Node-RED 사용하기

Mosquittto 사용자ID와 패스워드 없이 접속할 수 있습니다. 서버 로는 라즈베리 파이의 IP 주소를 지정하면 되고, 포트는 1883을 지정합니다.

Node-RED 브라우저의 URL에 192.168.XXX.XXX:1880을 입력하면 됩니다.

이제 Mosquitto와 Node-RED를 사용할 수 있습니다. 같은 공유기에 접속된 모든 기기에서 자유롭게 접속할 수 있습니다. 그러나 접근 제한을 위한 설정이 없으므로 외부 인터넷에서 접속할 때는 주의하여야 합니다.

 5  Mosquitto와 Node-RED 접근 제한하기

사용자ID와 비밀 번호를 제시해야 Mosquitto와 Node-RED에 접속하도록 합니다.

Mosquitto 사용자 지정하기(도커 방식) Node-RED 사용자 지정하기(도커 방식)

 6  안전하게 IoT 서버에 원격 접속하기

외부 인터넷에서 VPN을 이용하여 IoT 서버에 안전하게 접속하는 방법을 안내합니다.

duckdns.org에서 도메인 설정하기 공유기에서 외부에 포트 열기 라즈베리 파이에 VPN 설치하기 PC에서 라즈베리 파이의 파일을 관리하기
이제부터 외부 인터넷에서 Mosquitto와 Node-RED를 안전하게 사용할 수 있습니다.

Copyright © 2025 ·로그인