서론
지금까지 Zephyr ESP32 Wi-Fi 네트워크 통신을 단계적으로 실습하였습니다.
ESP32 CAN 보드를 Zephyr Custom Board로 구성하는 것부터 시작하여 Wi-Fi Scan과 AP 연결을 진행하였고, 이후 UDP와 TCP를 이용한 Socket 통신과 MQTT를 이용한 IoT 통신까지 차례로 구현하였습니다.
특히 마지막 MQTT 실습에서는 Orange Pi의 Mosquitto Broker와 FastAPI를 연결하여 ESP32에서 전송한 데이터를 Web Browser에서 확인하고, 반대로 Web Browser에서 전달한 명령을 ESP32에서 수신하는 양방향 통신도 확인하였습니다.
이번 글에서는 지금까지 진행한 실습의 전체 흐름과 각 단계에서 다룬 주요 내용을 간단히 정리해 보겠습니다.
Zephyr ESP32 시리즈의 전체 진행 과정
전체 실습은 다음과 같은 순서로 진행하였습니다.
ESP32 Board Porting
↓
Wi-Fi Scan
↓
Wi-Fi AP Connect
↓
UDP 통신
↓
TCP 통신
↓
MQTT 통신
↓
Mosquitto + FastAPI
↓
Web Browser
먼저 Custom Board Porting을 통해 자체 ESP32 보드를 Zephyr에서 사용할 수 있도록 구성하였습니다.
이후 Wi-Fi Scan과 AP Connect 실습을 통해 주변 AP를 검색하고, Wi-Fi에 연결하여 DHCP로 IP 주소를 할당받는 과정을 확인하였습니다.
UDP 실습에서는 Socket을 이용한 비연결형 데이터 송수신을 구현하였으며, TCP 실습에서는 연결 기반의 양방향 통신을 구현하면서 UDP와 TCP의 차이를 살펴보았습니다.
마지막 MQTT 실습에서는 Mosquitto Broker를 이용하여 ESP32의 Publish와 Subscribe를 구현하였습니다. 또한 FastAPI와 MQTT를 연결하여 ESP32의 데이터를 Web Browser에서 확인하고, 반대로 Web Browser에서 전달한 명령을 ESP32에서 수신하는 것도 확인하였습니다.
ESP32 → Mosquitto → FastAPI → Web Browser
ESP32 ← Mosquitto ← FastAPI ← Web Browser
이를 통해 단순한 네트워크 데이터 송수신에서 한 단계 더 나아가 실제 IoT 시스템에서 사용할 수 있는 기본적인 양방향 통신 구조까지 구현할 수 있었습니다.
아래는 전체 시리즈 실습에 대한 내용을 그림으로 정리하였습니다.

결론
이번 시리즈에서는 Zephyr의 Wi-Fi 기능을 시작으로 UDP와 TCP Socket 통신을 거쳐 MQTT까지 단계적으로 실습하였습니다.
각 실습을 진행하면서 Zephyr의 Network Management, Socket API, Thread 그리고 MQTT Publish/Subscribe 구조를 실제 코드와 함께 확인할 수 있었습니다.
특히 마지막에는 ESP32와 Mosquitto, FastAPI, Web Browser를 연결함으로써 임베디드 장치의 데이터를 웹에서 확인하고 웹에서 장치를 제어할 수 있는 기본적인 IoT 통신 구조까지 완성하였습니다.
아래는 시리즈의 링크 입니다.
Zephyr ESP32 실습 #1 – ESP32 CAN Board 포팅과 RGB LED 제어
Zephyr ESP32 실습 #2 – Wi-Fi Scan
Zephyr ESP32 실습 #3 – Wi-Fi AP 연결
Zephyr ESP32 실습 #4 – Wi-Fi UDP 통신
Zephyr ESP32 실습 #5 – Wi-Fi TCP 통신
아래는 이 시리즈와 관계있는 외부 글 입니다. 참조하면 많은 도움이 됩니다.
이번 시리즈를 통해 Zephyr에서 ESP32의 Wi-Fi 네트워크 기능을 사용하는 방법부터 UDP, TCP, MQTT 그리고 Web 연동까지 단계적으로 살펴보았습니다.
이것으로 ESP32를 이용한 Zephyr Wi-Fi 네트워크 실습 시리즈를 마무리합니다.