IoT와 MQTT 시작하기: 코드 없는 ESP8266 튜토리얼
MQTT는 대부분의 IoT 솔루션 경량 메시징 백본입니다. 이 가이드는 ESP8266 센서가 라즈베리 파이 Node-RED로 데이터를 발행하고, 판독값이 라이브 대시보드에 나타나는 완전한 코드 프리 워크플로 시작법을 보여줍니다.
IoT에 MQTT가 중요한 이유
MQTT 발행/구독 모델은 네트워크 트래픽 최소화, 불안정하거나 저대역폭 연결용 설계—대부분 IoT 배포가 요구하는 정확히 그 조건. 아두이노, MQTT, Node-RED 같은 오픈 표준 활용해 단 한 줄 코드 없이 빠른 프로토타이핑 가능.
필요한 것
- ESP8266 모듈(여기선 "IoT Octopus"라 칭함) with 보쉬 BME280 센서(온도, 압력, 습도)
- 라즈베리 파이 with 라즈비안(2018-06-27 릴리스 테스트)
- Node-RED(최신 라즈비안 이미지 사전 설치, 아니면 수동 설치)
- Mosquitto MQTT 브로커 – https://mosquitto.org
- Arduino IDE 1.8.5(IoT Werkstatt 패키지에 포터블 버전 포함)
- Ardublock – 아두이노 코드 자동 생성 시각 블록 에디터
1단계: IoT Werkstatt 패키지 다운로드
IoT Werkstatt ZIP 다운로드. 포터블 아두이노 1.8.5, 필수 라이브러리 모두, 일반적인 IoT 작업용 사전 구축 "슈퍼블록" 제공 Ardublock 번들.
2단계: ESP8266 준비
Ardublock 열고 제공된 XML 프로젝트 로드. 와이파이 SSID/비밀번호 구성, MQTT 설정을 라즈베리 파이 브로커 주소로 지정. 보쉬 BME280 센서 선택, 각 측정값별 고유 토픽 생성(예: home/room1/temperature).
Upload to Octopus 클릭—아두이노 IDE가 생성된 스케치 컴파일해 ESP8266 플래싱. 실행되면 장치 MQTT 브로커에 센서 데이터 발행 시작.
3단계: 라즈베리 파이에 MQTT 브로커 설정
파이에서 Mosquitto 설치:
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
브로커 시작(부팅 시 자동 실행). 기본 로컬 설정엔 추가 구성 불필요.
4단계: Node-RED 플로우 임포트
Node-RED 열기(https://localhost:1880) 제공된 플로우 JSON 붙여넣기. 각 MQTT 입력 노드 더블클릭해 브로커 주소와 자격증명 설정.
오른쪽 디버그 패널에 ESP8266 발행 시작 시 들어오는 메시지 표시.
5단계: 대시보드 추가
Node-RED에서 node-red-dashboard 팔레트 노드 설치. 플로우에 이미 대시보드 UI 구성 포함.
설치 후 대시보드 https://localhost:1880/ui 접근 가능, 온도·압력·습도 라이브 그래프 표시.
선택 사항: 대시보드 보안
UI 보호를 위해 settings.js에서 httpNodeAuth 활성화, Node-RED 보안 문서 참조.
라즈베리 파이 퀵스타트 체크리스트
- 공식 라즈베리 파이 웹사이트에서 라즈비안 다운로드해 32GB SD 카드에 플래시.
- 헤드리스 설정용 와이파이와 SSH 활성화:
/boot 파티션에 빈 ssh 파일 생성.
- 네트워크 세부사항 담은
wpa_supplicant.conf 파일 배치:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YourNetworkSSID"
psd="YourNetworkPassphrase"
key_mgmt=WPA-PSK
}
- 파이 부팅 후 OS 업그레이드:
sudo apt-get update
sudo apt-get upgrade
- Mosquitto 설치(3단계 참조).
- Node-RED 사전 설치 안 됐으면:
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
- Node-RED 부팅 시 자동 시작:
sudo systemctl enable nodered.service
- Node-RED 대시보드 노드 설치:
sudo apt-get install npm
sudo npm install -g npm
hash -r
cd ~/.node-red
npm i node-red-dashboard node-red-start
실행 후 Node-RED https://localhost:1880, 대시보드 https://localhost:1880/ui 접근.
Node-RED 관리
node-red-start – Node-RED 실행
node-red-stop – Node-RED 중지
sudo systemctl – 서비스 제어
sudo journalctl -f -u nodered -o cat – 실시간 로그 테일
다음 단계?
머신러닝으로 프로젝트 확장: 파이에 TensorFlow 설치(pip3 install tensorflow) 후 node-red-contrib-machine-learning 팔레트 추가해 대시보드에 AI 기능 부여.
참고 자료
— DONE —