9주차 : MQTT 초음파센서 실습 - dhryu60/SmartDevice_2025-1 GitHub Wiki
9주차 : MQTT + 초음파센서 실습
📚 학습 요약
- 학습 목표: MQTT를 활용한 IoT 서비스 구성
- 핵심 키워드: ESP32, IoT, 사물인터넷, MQTT, 초음파 센서, 능동 부저
- 준비물: ESP32, ESP32 확장 실드, 초음파 센서, 능동 부저
1. MQTT란?
- MQTT (Message Queuing Telemetry Transport):
M2M(Machine-to-Machine) 및 IoT 응용 프로그램을 위해 설계된 경량 통신 프로토콜입니다.
2. 초음파 센서를 이용한 거리 측정
준비물

회로 연결
ESP32 핀 |
초음파 센서 핀 |
D12 |
Trig (S) |
D14 |
Echo (S) |
5V |
Vcc |
GND |
GND |
동작 설명
- Trig 핀: 초음파 신호 송신 (Output)
- Echo 핀: 반사된 초음파 수신 (Input)
- 거리 계산: Echo 핀으로 들어오는 신호 시간을 측정하여 거리 계산
실행 결과
- 1초 간격으로 물체와 초음파 센서 사이의 거리가 출력됩니다.
코드 설명
3. 초음파 센서 데이터 MQTT로 Publish
준비사항
- 라이브러리 설치:
[PubSubClient by Nick O’Leary] 설치
주요 설정
- WiFi 정보 설정: SSID, PASSWORD 수정
- MQTT 서버 주소 설정
- MQTT Client 객체 생성
- 고유한 Client ID 생성 후 서버 연결
데이터 Publish
- 초음파 센서 값을
"user1/esp32/ultra"
토픽으로 Publish
코드 설명
실행 결과
- MQTT Dashboard 앱 설치
- "초음파 센서" 대시보드 생성
- 텍스트 위젯 추가 및 설정
- 앱에서 실시간 거리 값 확인

4. 능동 부저 제어 (Subscriber 만들기)
준비물
회로 연결
ESP32 핀 |
능동 부저 핀 |
D2 |
S |
5V |
Vcc |
GND |
GND |

동작 설명
- 능동 부저는 전기 신호만 주면 소리가 나는 장치입니다.
MQTT Subscriber
- 토픽:
"user1/esp32/buzzer"
구독
- 콜백 함수 등록: 메시지 수신시 부저 켜기/끄기 제어
실행 결과
- "부저" 대시보드 생성
- 토글 위젯 추가 및 설정
- 토글 상태 변경 → 부저 동작 확인
5. HTTP vs MQTT 비교
항목 |
HTTP |
MQTT |
사용 사례 |
웹 애플리케이션, API |
IoT, 실시간 메시징 |
프로토콜 |
요청-응답 |
게시-구독 |
통신 방식 |
동기 통신 |
비동기 통신 |
연결 유지 |
요청 후 연결 종료 |
연결 유지 가능 |
대역폭/리소스 |
높음 |
낮음 |
메시지 크기 |
큰 메시지 전송 가능 |
작은 메시지에 최적화 |
확장성 |
서버 확장성 제한 |
수백만 클라이언트 지원 가능 |
신뢰성 |
데이터 손실 가능 |
다양한 QoS 지원, 데이터 신뢰성 보장 |
보안 |
별도 보안 추가 필요 |
SSL/TLS 지원 |