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

이 글에서는 ESP32에 Hardwired Ethernet Module인 W5500을 연결하여 protocols-mqtt- tcp 실행 과정에 대해 설명합니다.
ORIGINAL POST
By becky
details

w5500_esp_mqtt.png image.png image.png

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

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

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

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

Step 1 : Example Configuration

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

cd espidf/example/protocols/mqtt/tcp

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

idf.py menuconfig

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

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

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

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 하기 위한 작업을 합니다.

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

https://mosquitto.org/download/

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

– 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”를 수신하였습니다.

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

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

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

w5500_esp_mqtt.png image.png image.png

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

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

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

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

Step 1 : Example Configuration

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

cd espidf/example/protocols/mqtt/tcp

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

idf.py menuconfig

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

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

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

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 하기 위한 작업을 합니다.

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

https://mosquitto.org/download/

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

– 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”를 수신하였습니다.

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

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

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

COMMENTS

Please Login to comment
  Subscribe  
Notify of
POSTED BY
Reusable S/W