1. 서론
-
STM - ESP8266으로 SSDP 프로토콜을 이용한 자동 장치 검색과 MQTT를 이용한 센서데이터 획득, 제어명령 전달을 위하여 미니 프로젝트 진행 중.
-
세부 목표로 ESP8266 모델에 Arduino IDE를 이용한 스케치 업로드로 SSDP 장치 검색과 MQTT 데이터 송수신 구현.
2. 본문
-
미니프로젝트의 시스템 아키텍처는 다음과 같다. 컨트롤러인 STM에서 데이터 보내기 전 ESP8266의 내부 펌웨어(?), 스케치(?) 코딩을 진행함. 안드로이드나 PC앱애서 SSDP로 장치 확인이 가능하도록 할 예정임. 일단 현재 목표는 안드로이드.
-
먼저 Arduino IDE에 ESP8266 코딩이 가능하도록 라이브러리 등록 및 환경설정을 진행하여야 함.
-
IDE의 파일 - 환경설정에서 추가적인 보드 매니저 URLs 입력
-
https://Arduino.esp8266.com/stable/package_esp8266com_index.json
- 스케치 - 라이브러리 매니저 esp8266로 검색해서 framework설치.
- 추가적으로 MQTT와 SSDP 사용을 위하여 PubSubClient, ESP8266SSDP 라이브러리가 필요함.
- framework내에 ESP8266SSDP는 포함되어 있으며, PubSubClient는 라이브러리 매니저에서 다운로드 진행.
-
보드 구성은 ESP8266 ESP-12 (원래 아두이노에 연결해서 쓰는 쉴드형태로 되어 있는데 칩기능만 사용해서 나중에 STM이랑 연결하기 위해서 아래와 같이 연결)
- FTDI를 이용해서 컴퓨터에서 펌웨어도 올리고 디버깅도 하기 위해 PC랑 연결
3. 결론 (테스트 진행)
SSDP 동작 테스트
- 안드로이드에서 SSDP 기본 테스트 앱 작성 (cling 라이브러리 활용)
- ESP8266에 코딩한 스케치(?), 펌웨어(?) 내 SSDP 정보 설정 내용 반영
- 테스트 결과 정상적으로 SSDP를 이용해 검색되는 것 확인
MQTT 동작 테스트
- MQTT Broker 실행 (Eclipse Mosquitto 활용)
- Mosquitto_sub 프로그램 이용해서 제대로 메세지 수신 전달 되는지 확인
- 데이터 전송할 때 SEND_MSG/메세지들로 데이터 패킷을 구성하고 Serial로 전달하여 테스트 진행
- 전달한 메세지가 브로커를 통해서 제대로 획득되는 지도 확인 (Substring 잘못해서 구분자 ( / ) 까지 같이 찍힘 수정 예정)
스케치 소스
4. 맺음말 및 참고문헌/자료
Android의 경우 cling 라이브러리 써서 간단히 구현함.
ESP8266에서 등록한 SSDP 정보에 따라 장치 이름 검색 완료.
- 하지만 상세정보나 기타 제어 방법에 대해서는 SSDP 프로토콜에 대한 이해가 필요.
- 추후 MQTT를 통해서 앱에서 SSDP정보 또한 세팅할 수 있도록 구현/보완할 예정.
STM에서 자체적으로 ESP8266을 제어해서 사용하는 방법을 알고 싶은데 도무지 검색해도 나오지 않았음. 참고할 만한 자료들이 있으면 알려주시면 감사하겠습니다.
참고 사이트
- Cling 라이브러리
- github.com/4thline/cling
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
- www.arduino.cc/reference/en/libraries/esp8266-framework/
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
- PubSubClient
- twinw.tistory.com/176
아두이노 - MQTT 사용하기
1. 개요 아두이노 또는 ESP8266 제품을 이용하여 MQTT에 접속 및 Publish, Subscribe를 해보도록 합니다. 2. 준비 우선 기본 MQTT에 개념에 대해 잘 모르신다면 이전 게시물(http://twinw.tistory.com/158)..
twinw.tistory.com
작성한 글에서 기타 다양한 의견 및 안내/정보 등을 주시면 감사하겠습니다.
'IT > 임베디드' 카테고리의 다른 글
[임베디드] ARM STM32F103 Nucleo-64 시리얼 통신 (0) | 2021.03.02 |
---|
댓글