(temp) Full-Stack Embedded System: ESP32-S3 W5500 Ethernet and Automatic Irrigation Control
완성 제품보다 임베디드 IoT 학습·포트폴리오형 저장소
Project Overview
Full-Stack-Embedded-System is not a single integrated product. It is a compact embedded systems repository that combines two project paths: W5500 Ethernet examples for ESP32-based MCUs and an automatic irrigation system implemented as a submodule.
The Ethernet_W5500 path explores how to connect MCUs with the W5500 Ethernet module for embedded systems and IoT applications. Its README lists ESP32 + W5500 examples for Arduino and ESP-IDF as completed, with STM32 + W5500 marked as planned.
The Automatic_Irrigation_System path is a 2022 automatic irrigation project developed for a national startup competition. Its README describes local keypad control, timer-based scheduling, remote mobile operation, and testing on the EIU campus before selection among the top 70 teams in the national finals.
System Structure
[Ethernet_W5500]
PC / Python TCP Client
↓ TCP
Ethernet Network
↓
W5500 Ethernet Module
↓ SPI
ESP32-S3
↓
Arduino Ethernet Library
or ESP-IDF esp_eth + esp_netif + lwIP Socket
↓
TCP Echo Server[Automatic_Irrigation_System]
Mobile App / Control Interface
↓ HTTP
PHP Backend
↓ Database
ESP32 Wi-Fi Gateway
↕ UART
STM8 Valve Controller
↓
Keypad / LCD / RTC / Motor / 8 Valve OutputsThe two project paths share an embedded IoT theme, but the repository does not show them as one merged W5500-based irrigation gateway.
WIZnet Product Role
The WIZnet product used in this repository is the W5500 Ethernet module. It is used as an SPI-based Ethernet controller for ESP32 networking examples. The Arduino example defines W5500 reset, chip select, SCLK, MISO, and MOSI pins, initializes SPI, starts Ethernet, and opens a TCP server on port 5000.
The ESP-IDF implementation uses W5500 MAC/PHY creation, SPI bus setup, esp_netif, static IP configuration, and lwIP socket APIs. The TCP server is implemented through socket, bind, listen, accept, recv, and send.
| WIZnet Item | Role |
|---|---|
| W5500 Ethernet module | SPI-based Ethernet controller for ESP32-S3 |
| Interface | SPI |
| Network Function | Ethernet TCP server path |
| Software Layer | Arduino Ethernet library / ESP-IDF Ethernet + lwIP |
| TOE Assessment | Direct W5500 socket-register-level TOE control is not shown |
Operation Flow
W5500 Ethernet Flow
- ESP32-S3 configures W5500-related GPIO and SPI pins.
- Ethernet initialization is performed through Arduino Ethernet library or ESP-IDF Ethernet driver.
- The board obtains or sets an IP address.
- A TCP server listens on port 5000.
- A PC-side client connects and exchanges TCP data.
- The Python client validates the echo server behavior from the host side.
Automatic Irrigation Flow
- The STM8 controller manages local control components such as keypad, LCD, RTC, watchdog, and valve outputs.
- The ESP32 gateway connects to Wi-Fi and communicates with backend PHP endpoints over HTTP.
- Control data is received from the backend and transferred to the STM controller over UART.
- Sensor and valve-state data are sent back to the backend.
- The mobile application layer exists as a Flutter project scaffold with IoT-related dependencies.
Technical Characteristics
| Area | Description |
|---|---|
| Ethernet Bring-up | Provides both Arduino and ESP-IDF paths for ESP32 + W5500 |
| TCP Test Path | Includes an ESP32 TCP server and a Python client |
| MCU-to-Gateway Design | Uses ESP32 as a network-facing gateway and STM8 as a local controller |
| Local Control | Includes keypad, LCD, RTC, watchdog, and valve control logic |
| Backend Link | Uses PHP scripts for data insertion and control-data retrieval |
| Mobile Layer | Flutter project and IoT-related dependencies are present |
Strengths
| Strength | Description |
|---|---|
| Framework Comparison | Arduino and ESP-IDF implementations allow comparison of abstraction levels |
| Practical Hardware Path | W5500, ESP32-S3, STM8, UART, and valve outputs are represented in code |
| Layered IoT Structure | Firmware, gateway, backend, and mobile layers are all present |
| Testability | The Python TCP client provides a simple host-side verification path |
| Expansion Potential | The structure can be extended toward MQTT, REST API cleanup, or a more complete mobile dashboard |
Limitations
| Limitation | Description |
|---|---|
| Integration Scope | The Ethernet example and irrigation system are not integrated into one product |
| Documentation | Root-level architecture and setup documentation are limited |
| TOE Detail | Direct W5500 socket-register programming is not shown |
| Network Configuration | Visible code includes fixed IP, Wi-Fi credential, and endpoint values |
| Backend Robustness | Visible PHP scripts use direct SQL string construction |
| UART Protocol | The visible code uses fixed-position data exchange; a complete packet specification is not confirmed |
| Mobile UI | The Flutter dashboard file is present, but visible implementation is limited |
Application Value
This repository is useful as an embedded IoT prototype study case. It provides W5500 Ethernet bring-up examples, TCP server validation, ESP32 gateway logic, STM8-based local control, and backend/mobile integration elements in one project collection.
The strongest technical value is the combination of low-level device connectivity and higher-level IoT system layering. The repository shows how embedded networking, local control, backend communication, and app scaffolding can be arranged in a prototype-stage system.
Author Information
| Item | Information |
|---|---|
| Repository Owner | NhatTran-97 |
| Main Repository | NhatTran-97/Full-Stack-Embedded-System |
| Related Submodule | NhatTran-97/Automatic_Irrigation_System |
| Public Description | The root repository is described as a collection of projects by the author |
| Irrigation Project Context | Developed in 2022 for a national startup competition |
The GitHub repository owner is NhatTran-97, and the automatic irrigation project is linked as a submodule from the main repository.
Final Summary
Full-Stack-Embedded-System combines ESP32-S3 W5500 Ethernet examples with an automatic irrigation prototype based on STM8, ESP32 Wi-Fi, PHP, and Flutter. The W5500 section provides practical Ethernet and TCP validation examples, while the irrigation submodule shows a layered IoT structure with local control, gateway communication, backend scripts, and mobile-app scaffolding. The repository is best understood as a prototype-oriented embedded IoT project collection.
Full-Stack Embedded System: ESP32-S3 W5500 Ethernet 및 자동 관수 Prototype
프로젝트 개요
Full-Stack-Embedded-System은 단일 완성형 제품보다는 embedded IoT 예제와 prototype을 함께 정리한 저장소다. 구성은 크게 ESP32 기반 W5500 Ethernet 예제와 자동 관수 시스템 submodule로 나뉜다.
Ethernet_W5500는 MCU와 W5500 Ethernet module의 연결 방식을 다룬다. README는 ESP32 + W5500 Arduino 예제와 ESP-IDF 예제를 완료 상태로 표시하고, STM32 + W5500 지원은 planned 상태로 표시한다.
Automatic_Irrigation_System은 2022년 national startup competition 참여를 위해 개발된 자동 관수 프로젝트다. README는 local keypad control, timer 기반 scheduled irrigation, mobile application 기반 remote control을 주요 기능으로 설명한다.
시스템 구조
두 경로는 embedded IoT networking과 control이라는 공통 주제를 갖지만, 저장소 내에서 하나의 W5500 기반 자동 관수 gateway로 통합된 구조는 확인되지 않는다.
WIZnet Product Role
이 저장소에서 확인되는 WIZnet 제품은 W5500 Ethernet module이다. W5500은 ESP32 networking 예제에서 SPI 기반 Ethernet controller로 사용된다. Arduino 예제는 W5500 reset, chip select, SCLK, MISO, MOSI pin을 정의하고, SPI 초기화 후 Ethernet을 시작하며 TCP port 5000에서 server를 실행한다.
ESP-IDF 구현은 W5500 MAC/PHY 생성, SPI bus 설정, esp_netif, static IP 설정, lwIP socket API를 사용한다. TCP server는 socket, bind, listen, accept, recv, send 흐름으로 구성된다.
| WIZnet 항목 | 역할 |
|---|---|
| W5500 Ethernet module | ESP32-S3용 SPI 기반 Ethernet controller |
| Interface | SPI |
| Network Function | Ethernet TCP server 경로 |
| Software Layer | Arduino Ethernet library / ESP-IDF Ethernet + lwIP |
| TOE 판단 | W5500 socket register 직접 제어 방식은 확인되지 않음 |
동작 흐름
W5500 Ethernet 흐름
- ESP32-S3가 W5500 관련 GPIO와 SPI pin을 설정한다.
- Arduino Ethernet library 또는 ESP-IDF Ethernet driver를 통해 Ethernet을 초기화한다.
- DHCP 또는 static IP 방식으로 IP를 설정한다.
- TCP port 5000에서 server를 실행한다.
- PC client가 TCP로 접속해 데이터를 송수신한다.
- Python client는 host 측에서 echo server 동작을 검증한다.
자동 관수 흐름
- STM8 controller는 keypad, LCD, RTC, watchdog, valve output 등 local control 요소를 담당한다.
- ESP32 gateway는 Wi-Fi에 접속하고 PHP backend endpoint와 HTTP로 통신한다.
- Backend에서 받은 control data는 UART를 통해 STM controller로 전달된다.
- Sensor 및 valve state data는 backend로 전송된다.
- Flutter mobile layer는 IoT 관련 dependency와 app scaffold를 포함한다.
기술적 특징
| 영역 | 내용 |
|---|---|
| Ethernet Bring-up | Arduino와 ESP-IDF 양쪽에서 ESP32 + W5500 연결을 다룸 |
| TCP Test Path | ESP32 TCP server와 Python client를 통한 검증 경로 포함 |
| MCU-to-Gateway 구조 | ESP32가 network-facing gateway, STM8이 local controller 역할을 담당 |
| Local Control | Keypad, LCD, RTC, watchdog, valve control logic 포함 |
| Backend 연동 | PHP script 기반 data insertion 및 control-data retrieval 구조 |
| Mobile Layer | Flutter project와 IoT 관련 dependency 포함 |
장점
| 장점 | 내용 |
|---|---|
| Framework 비교 가능 | Arduino와 ESP-IDF 구현을 모두 포함해 abstraction level 차이를 확인할 수 있음 |
| 실제 하드웨어 흐름 | W5500, ESP32-S3, STM8, UART, valve output이 코드상 확인됨 |
| 계층형 IoT 구조 | Firmware, gateway, backend, mobile layer가 모두 포함됨 |
| 테스트 용이성 | Python TCP client로 host 측 TCP 검증 가능 |
| 확장 가능성 | MQTT, REST API 정리, mobile dashboard 구현 등으로 확장 가능 |
한계
| 한계 | 내용 |
|---|---|
| 통합 범위 | Ethernet 예제와 자동 관수 시스템이 하나의 제품으로 통합되어 있지는 않음 |
| 문서화 | 루트 수준의 architecture 및 setup 문서가 제한적임 |
| TOE 상세 | W5500 socket register 직접 제어 방식은 확인되지 않음 |
| 네트워크 설정 | visible code 기준 IP, Wi-Fi credential, endpoint 값이 고정되어 있음 |
| Backend 안정성 | visible PHP script에서 직접 SQL 문자열 구성 방식이 확인됨 |
| UART Protocol | 고정 위치 기반 data exchange가 보이며, 완전한 packet specification은 확인되지 않음 |
| Mobile UI | Flutter dashboard 파일은 존재하지만 visible implementation은 제한적임 |
적용 가치
이 저장소는 embedded IoT prototype 분석 자료로 활용할 수 있다. W5500 Ethernet bring-up, TCP server 검증, ESP32 gateway logic, STM8 local control, backend/mobile integration 요소를 하나의 프로젝트 모음에서 확인할 수 있다.
기술적 가치는 low-level device connectivity와 higher-level IoT system layering의 조합에 있다. Embedded networking, local actuator control, backend communication, mobile app scaffold가 prototype 단계에서 어떻게 배치되는지 확인할 수 있다.
저자 정보
| 항목 | 내용 |
|---|---|
| Repository Owner | NhatTran-97 |
| Main Repository | NhatTran-97/Full-Stack-Embedded-System |
| Related Submodule | NhatTran-97/Automatic_Irrigation_System |
| Public Description | 작성자가 진행한 프로젝트를 보여주기 위한 저장소 |
| Irrigation Project Context | 2022년 national startup competition 참여 프로젝트 |
GitHub repository owner는 NhatTran-97이며, 자동 관수 프로젝트는 main repository에서 submodule로 연결되어 있다.
