본문 바로가기
  • "하나씩 기록하다보면 누군가에게 도움이 되지 않을까"
IT/임베디드

[임베디드] ESP8266 SSDP, MQTT 구현

by raVineL 2021. 3. 9.
728x90

1. 서론

  • STM - ESP8266으로 SSDP 프로토콜을 이용한 자동 장치 검색과 MQTT를 이용한 센서데이터 획득, 제어명령 전달을 위하여 미니 프로젝트 진행 중.

  • 세부 목표로 ESP8266 모델에 Arduino IDE를 이용한 스케치 업로드로 SSDP 장치 검색과 MQTT 데이터 송수신 구현.


2. 본문

  • 미니프로젝트의 시스템 아키텍처는 다음과 같다. 컨트롤러인 STM에서 데이터 보내기 전 ESP8266의 내부 펌웨어(?), 스케치(?) 코딩을 진행함. 안드로이드나 PC앱애서 SSDP로 장치 확인이 가능하도록 할 예정임. 일단 현재 목표는 안드로이드.

 

< 미니 프로젝트 시스템 아키텍처 >

 

 

< Arduino IDE 라이브러리 등록 >

 

  •   스케치 - 라이브러리 매니저 esp8266로 검색해서 framework설치.
  •   추가적으로 MQTT와 SSDP 사용을 위하여 PubSubClient, ESP8266SSDP 라이브러리가 필요함.
  •   framework내에 ESP8266SSDP는 포함되어 있으며, PubSubClient는 라이브러리 매니저에서 다운로드 진행.

< 라이브러리 매니저 >

 

  • 보드 구성은 ESP8266 ESP-12 (원래 아두이노에 연결해서 쓰는 쉴드형태로 되어 있는데 칩기능만 사용해서 나중에 STM이랑 연결하기 위해서 아래와 같이 연결)

< 사용한 보드 설정 >

  • FTDI를 이용해서 컴퓨터에서 펌웨어도 올리고 디버깅도 하기 위해 PC랑 연결

< ESB8266 연결 회로 구성 >


3. 결론 (테스트 진행)

  SSDP 동작 테스트

  • 안드로이드에서 SSDP 기본 테스트 앱 작성 (cling 라이브러리 활용)
  • ESP8266에 코딩한 스케치(?), 펌웨어(?) 내 SSDP 정보 설정 내용 반영
  • 테스트 결과 정상적으로 SSDP를 이용해 검색되는 것 확인

< SSDP 검색 확인 (Phillips hue clone) >
< 테스트용 ESP8266 내 SSDP 설정 내용 >

 

  MQTT 동작 테스트

  • MQTT Broker 실행 (Eclipse Mosquitto 활용)

< MQTT Broker 실행 >

  • Mosquitto_sub 프로그램 이용해서 제대로 메세지 수신 전달 되는지 확인
  • 데이터 전송할 때 SEND_MSG/메세지들로 데이터 패킷을 구성하고 Serial로 전달하여 테스트 진행
  • 전달한 메세지가 브로커를 통해서 제대로 획득되는 지도 확인 (Substring 잘못해서 구분자 ( / ) 까지 같이 찍힘 수정 예정)

 

  스케치 소스


4. 맺음말 및 참고문헌/자료

 

  Android의 경우 cling 라이브러리 써서 간단히 구현함.

  ESP8266에서 등록한 SSDP 정보에 따라 장치 이름 검색 완료.

   - 하지만 상세정보나 기타 제어 방법에 대해서는 SSDP 프로토콜에 대한 이해가 필요.

   - 추후 MQTT를 통해서 앱에서 SSDP정보 또한 세팅할 수 있도록 구현/보완할 예정.

 

  STM에서 자체적으로 ESP8266을 제어해서 사용하는 방법을 알고 싶은데 도무지 검색해도 나오지 않았음. 참고할 만한 자료들이 있으면 알려주시면 감사하겠습니다.

 

  참고 사이트

 

4thline/cling

UPnP/DLNA library for Java and Android. Contribute to 4thline/cling development by creating an account on GitHub.

github.com

 

ESP8266 NodeMCU Firmware: ESP8266 flash

How to flash nodemcu firmware into a ESP8266 so you can use the LUA scripting language.

www.best-microcontroller-projects.com

 

Arduino 아두이노 Wifi ESP8266 쉴드(shield) 모듈 사용방법

아두이노(Arduino)를 다루다 보면 다양한 모듈을 사용할 기회가 많은데 그 중에 쉴드(shield) 제품을 사용할 경우가 있습니다. 아두이노 쉴드는 아두이노 보드 본체와 탑처럼 쌓을 수 있게 아두이노

it-g-house.tistory.com

 

esp8266-framework - Arduino Reference

Reference > Libraries > Esp8266 framework esp8266-framework Communication esp8266 framework stack for easy configurable applications esp8266 framework includes all services like gpio, wifi, http, mqtt, ntp, ota, napt, espnow, mesh, server etc. which are re

www.arduino.cc

 

아두이노 - MQTT 사용하기

1. 개요   아두이노 또는 ESP8266 제품을 이용하여 MQTT에 접속 및 Publish, Subscribe를 해보도록 합니다. 2. 준비   우선 기본 MQTT에 개념에 대해 잘 모르신다면 이전 게시물(http://twinw.tistory.com/158)..

twinw.tistory.com

 

  작성한 글에서 기타 다양한 의견 및 안내/정보 등을 주시면 감사하겠습니다.

728x90

'IT > 임베디드' 카테고리의 다른 글

[임베디드] ARM STM32F103 Nucleo-64 시리얼 통신  (0) 2021.03.02

댓글