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
  • ESP32 확장 쉴드
  • 초음파 센서

image

회로 연결

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 앱 설치
  • "초음파 센서" 대시보드 생성
  • 텍스트 위젯 추가 및 설정
  • 앱에서 실시간 거리 값 확인

image


4. 능동 부저 제어 (Subscriber 만들기)

준비물

  • ESP32
  • ESP32 확장 쉴드
  • 능동 부저

회로 연결

ESP32 핀 능동 부저 핀
D2 S
5V Vcc
GND GND

image

동작 설명

  • 능동 부저는 전기 신호만 주면 소리가 나는 장치입니다.

MQTT Subscriber

  • 토픽: "user1/esp32/buzzer" 구독
  • 콜백 함수 등록: 메시지 수신시 부저 켜기/끄기 제어

실행 결과

  • "부저" 대시보드 생성
  • 토글 위젯 추가 및 설정
  • 토글 상태 변경 → 부저 동작 확인

5. HTTP vs MQTT 비교

항목 HTTP MQTT
사용 사례 웹 애플리케이션, API IoT, 실시간 메시징
프로토콜 요청-응답 게시-구독
통신 방식 동기 통신 비동기 통신
연결 유지 요청 후 연결 종료 연결 유지 가능
대역폭/리소스 높음 낮음
메시지 크기 큰 메시지 전송 가능 작은 메시지에 최적화
확장성 서버 확장성 제한 수백만 클라이언트 지원 가능
신뢰성 데이터 손실 가능 다양한 QoS 지원, 데이터 신뢰성 보장
보안 별도 보안 추가 필요 SSL/TLS 지원