---
title: "ESP32에 W5500 연결하여 Ethernet 사용하기 - MQTT TCP"
url: "https://maker.wiznet.io/becky/projects/ESP32-W5500-Ethernet--MQTT-TCP/"
markdown_url: "https://maker.wiznet.io/becky/projects/ESP32-W5500-Ethernet--MQTT-TCP/md"
type: "UCC: User Created Content"
author: "becky"
author_url: "https://maker.wiznet.io/becky/"
original_author: "becky"
original_url: "https://blog.naver.com/jcm931213/222308259781"
published: "2021-05-11"
language: "ko"
likes: 0
views: 1231
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ESP32에 W5500 연결하여 Ethernet 사용하기 - MQTT TCP

> ESP32에 W5500 연결하여 Ethernet 사용하기 - MQTT TCP

Original author: becky (source: https://blog.naver.com/jcm931213/222308259781)

## Article

ESP32 Module은 ESP-IDF SDK를 이용하여 다양한 예제들을 응용할 수 있습니다.

?

이 글에서는 그중에서도 Hardwired Ethernet Module인 W5500을 연결하여 protocols-mqtt- tcp 실행 과정에 대해 설명합니다.

?

이 글을 읽기전에 먼저 아래 글을 읽고 오시기 바랍니다.

<https://blog.naver.com/jcm931213/222300813578>

[![](https://dthumb-phinf.pstatic.net/?src=%22https%3A%2F%2Fblogthumb.pstatic.net%2FMjAyMTA0MDZfOTYg%2FMDAxNjE3Njk2ODQxNTUz.qLJH5wbBtQ_TM8DV_Ch9QSd0UFgRONygKmxIYPSygPIg.tc4X5kZnqfBSdWyKoVDshqNOJrMPUHutnwHgbZsDbK8g.PNG.jcm931213%2Fpinmap.PNG%3Ftype%3Dw2%22&type=ff500_300)](https://blog.naver.com/jcm931213/222300813578)

**ESP32에 W5500 연결하여 Ethernet 사용하기 - Basic**

ESP32 Module은 ESP-IDF SDK를 이용하여 다양한 예제들을 응용할 수 있습니다.?이 글에서는 ...

blog.naver.com

?

**Step 1 : Example Configuration**

- 실행할 Example 폴더로 **경로를 이동**합니다.

cd esp-idf/example/protocols/mqtt/tcp

?

- Example configuration 을 위한 **menuconfig**를 실행합니다.

idf.py menuconfig

![](https://blogfiles.pstatic.net/MjAyMTA0MDZfOSAg/MDAxNjE3NzA0MDEwNzYw.SZ6AX2KyvU2Ktcp0jVntmXGE20-GTNC2QYhQUyWYRrsg.58pQ8k0Xe3wpeR7JLkGkwbu3AipIqqdWy-vrlD8x_z8g.PNG.jcm931213/menuconfig.PNG?type=w1)

?

?

- Example Configuration 을 통해?** Ethernet Interface로 W5500 Module을 설정**하고 SPI Interface 등의 **Hardware 연결**을 설정합니다.

![](https://blogfiles.pstatic.net/MjAyMTA0MDZfMTY3/MDAxNjE3NzIwMDYyMDE5.is5RyvNPLyrAXzIECjrzgehuSwx2x7jxYXcNPppi71Yg.Pug2dnObd4mvsPEBNL6iEqg2gA6putwMG24ZgnT6aWgg.PNG.jcm931213/image.png?type=w1)

?

- 이 예제에서는 mqtt 브로커로 "mqtt.eclipseprojects.io" 에 접속합니다. mqtt 브로커를 변경하고 싶을 경우, Example Configuration에서 변경합니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfNTcg/MDAxNjE4Mjc3NTQzNjY0.wrOFY3apzfUZElY01x1zFe41Ky5k-CgmIL3UOm-zzPcg.b3FFfXmkZ6QtHz1Q-echq1AUJvNDAn12yJHXgKEZ-VAg.PNG.jcm931213/image.png?type=w966)

- 장치관리자를 통해 ESP 가 연결된 port를 확인합니다.

![](https://blogfiles.pstatic.net/MjAyMTA0MDZfMjMg/MDAxNjE3NzA0NjE0MzUw.pGlNmMcgFHZ8JeeMU_ljRyjkAL6Ol7PBycdsXFu5RZog.TlHih2kBG_-kYEP0munW5iBa5rx2x93kbczHGq5QtIkg.PNG.jcm931213/image.png?type=w1)

?

**Step 4 : MQTT/TCP Example 실행**

- 이 예제에서는 MQTT Broker로 "mqtt.eclipseprojects.io" 에 접속합니다. Broker에 접속된후에는 mqtt_event_handler()에 의해 다음과 같은 동작을합니다.

1. Topic "/topic/qos1" 에 Data "data_3"를 publish

2. Topic "/topic/qos0" 을 subscribe

3. Topic "/topic/qos1" 을 subscribe

4. Topic "/topic/qos1" 을 unsubscribe

따라서 mqtt 테스트를 위해 해당 topic을 subscribe(구독)하고 데이터를 publish 하기 위한 작업을 합니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfMTU4/MDAxNjE4Mjc3ODgwMjk2.y5d75hUqSSYkBoUmOVGkXyP8ALmXFQRR8C-d5NESy18g.3QfdeOjP59oqO_xVQcxXNcYMiwb1-QYQMhOmgzyCnEog.PNG.jcm931213/image.png?type=w966)

- mqtt테스트를 위해 mosquitto program을 설치해줍니다. mosquitto가 아닌 다른 프로그램을 사용하셔도 무관합니다.

<https://mosquitto.org/download/>

[?](https://mosquitto.org/download/)

**Download**

Some Eclipse Foundation pages use cookies to better serve you when you return to the site. You can set your browser to notify you before you receive a cookie or turn off cookies. If you do so, however, some areas of some sites may not function properly. To read Eclipse Foundation Privacy Policy clic...

mosquitto.org

- 프로그램 설치후 Topic "/topic/qos1" 에 대한 subscriber를 생성해줍니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfMjIz/MDAxNjE4Mjc4NzE4NDU0.NMkM1WH7sgIDomxCA80xVvmGZG25VYZYk5LCqQezQfMg.V2KqgI3I5J2Y7U1o5TV1KnaCUnq0lAH1pzB4Ow3eMzwg.PNG.jcm931213/image.png?type=w966)

?

- mqtt/tcp program을 build하고 flash에 업로드하여 출력을 확인합니다. 이때 COM7에는 장치관리자에서 확인한 ESP32 Module의 COM Port를 입력합니다.

idf.py -p COM7 build flash monitor

- 프로그램 출력을 확인합니다.

DHCP 서버로부터 IP주소 192.168.0.44 를 할당받았음을 확인 할 수 있습니다.

위에서 확인했던 code와같이 아래의 동작을 진행합니다

1. Topic "/topic/qos1" 에 Data "data_3"를 publish

2. Topic "/topic/qos0" 을 subscribe

3. Topic "/topic/qos1" 을 subscribe

4. Topic "/topic/qos1" 을 unsubscribe

이후에 Topic "topic/qos0" 으로 Data "data"를 수신하였습니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfMjI1/MDAxNjE4Mjc5MzIwNTkx.Fg3wAm2rJaXRf_hBfNx0iI12aLhtgfM8zRq0jKxxgoYg.fJiJkps_b_KP1CBo9vp6wvd72LszWKJoai4sIUTYWoYg.PNG.jcm931213/image.png?type=w966)

?

- mosquitto subscriber에서 ES32에서 전송한 Message를 확인할 수 있습니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfNDMg/MDAxNjE4Mjc5MzkxNDgz.PvdHxJpyBU5sezKuU2Rsaw5eCg40if2rC2rMWT3eG0wg.QZWzgsFtVTpai_dKyc-PLC7oHwJGNQa_mB_72_PXdbAg.PNG.jcm931213/image.png?type=w966)

?

- 반대로 mosquitto publisher로 데이터로 전송합니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfMTIx/MDAxNjE4Mjc5NDY3Mjcw.J-FDdpBh19AKW4-ZdV5WXSrt3cUBfDVEuhdyYZUymAUg.a1FBZWlT7SpTY8lvQRzOVioTYnVumON8IwHQlNofnv8g.PNG.jcm931213/image.png?type=w966)

?

- ES32에서 mosquitto publisher에서 전송한 Message를 확인할 수 있습니다.

![](https://postfiles.pstatic.net/MjAyMTA0MTNfMjM0/MDAxNjE4Mjc5NTIzODcz.X1b4IY05vxFFCe2EkfpgJyChXy4Jk-i5EIs5ME9Ahtcg.mU8kTJ47Xl4_bGwtwrjsDZ35gv-GhEhe3WOPQrJYV8kg.PNG.jcm931213/image.png?type=w966)![](https://postfiles.pstatic.net/MjAyMTA0MTNfMjI1/MDAxNjE4Mjc5MzIwNTkx.Fg3wAm2rJaXRf_hBfNx0iI12aLhtgfM8zRq0jKxxgoYg.fJiJkps_b_KP1CBo9vp6wvd72LszWKJoai4sIUTYWoYg.PNG.jcm931213/image.png?type=w966)

---

Source: https://maker.wiznet.io/becky/projects/ESP32-W5500-Ethernet--MQTT-TCP/
