Wiznet makers

josephsr

Published July 04, 2026 ©

135 UCC

13 WCC

13 VAR

0 Contests

0 Followers

0 Following

Original Link

(temp) Full-Stack Embedded System: ESP32-S3 W5500 Ethernet and Automatic Irrigation Control

완성 제품보다 임베디드 IoT 학습·포트폴리오형 저장소

COMPONENTS
PROJECT DESCRIPTION

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 Outputs
 

The 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 ItemRole
W5500 Ethernet moduleSPI-based Ethernet controller for ESP32-S3
InterfaceSPI
Network FunctionEthernet TCP server path
Software LayerArduino Ethernet library / ESP-IDF Ethernet + lwIP
TOE AssessmentDirect W5500 socket-register-level TOE control is not shown

Operation Flow

W5500 Ethernet Flow

  1. ESP32-S3 configures W5500-related GPIO and SPI pins.
  2. Ethernet initialization is performed through Arduino Ethernet library or ESP-IDF Ethernet driver.
  3. The board obtains or sets an IP address.
  4. A TCP server listens on port 5000.
  5. A PC-side client connects and exchanges TCP data.
  6. The Python client validates the echo server behavior from the host side. 

Automatic Irrigation Flow

  1. The STM8 controller manages local control components such as keypad, LCD, RTC, watchdog, and valve outputs.
  2. The ESP32 gateway connects to Wi-Fi and communicates with backend PHP endpoints over HTTP.
  3. Control data is received from the backend and transferred to the STM controller over UART.
  4. Sensor and valve-state data are sent back to the backend.
  5. The mobile application layer exists as a Flutter project scaffold with IoT-related dependencies. 

Technical Characteristics

AreaDescription
Ethernet Bring-upProvides both Arduino and ESP-IDF paths for ESP32 + W5500
TCP Test PathIncludes an ESP32 TCP server and a Python client
MCU-to-Gateway DesignUses ESP32 as a network-facing gateway and STM8 as a local controller
Local ControlIncludes keypad, LCD, RTC, watchdog, and valve control logic
Backend LinkUses PHP scripts for data insertion and control-data retrieval
Mobile LayerFlutter project and IoT-related dependencies are present

Strengths

StrengthDescription
Framework ComparisonArduino and ESP-IDF implementations allow comparison of abstraction levels
Practical Hardware PathW5500, ESP32-S3, STM8, UART, and valve outputs are represented in code
Layered IoT StructureFirmware, gateway, backend, and mobile layers are all present
TestabilityThe Python TCP client provides a simple host-side verification path
Expansion PotentialThe structure can be extended toward MQTT, REST API cleanup, or a more complete mobile dashboard

Limitations

LimitationDescription
Integration ScopeThe Ethernet example and irrigation system are not integrated into one product
DocumentationRoot-level architecture and setup documentation are limited
TOE DetailDirect W5500 socket-register programming is not shown
Network ConfigurationVisible code includes fixed IP, Wi-Fi credential, and endpoint values
Backend RobustnessVisible PHP scripts use direct SQL string construction
UART ProtocolThe visible code uses fixed-position data exchange; a complete packet specification is not confirmed
Mobile UIThe 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

ItemInformation
Repository OwnerNhatTran-97
Main RepositoryNhatTran-97/Full-Stack-Embedded-System
Related SubmoduleNhatTran-97/Automatic_Irrigation_System
Public DescriptionThe root repository is described as a collection of projects by the author
Irrigation Project ContextDeveloped 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 moduleESP32-S3용 SPI 기반 Ethernet controller
InterfaceSPI
Network FunctionEthernet TCP server 경로
Software LayerArduino Ethernet library / ESP-IDF Ethernet + lwIP
TOE 판단W5500 socket register 직접 제어 방식은 확인되지 않음

동작 흐름

W5500 Ethernet 흐름

  1. ESP32-S3가 W5500 관련 GPIO와 SPI pin을 설정한다.
  2. Arduino Ethernet library 또는 ESP-IDF Ethernet driver를 통해 Ethernet을 초기화한다.
  3. DHCP 또는 static IP 방식으로 IP를 설정한다.
  4. TCP port 5000에서 server를 실행한다.
  5. PC client가 TCP로 접속해 데이터를 송수신한다.
  6. Python client는 host 측에서 echo server 동작을 검증한다. 

자동 관수 흐름

  1. STM8 controller는 keypad, LCD, RTC, watchdog, valve output 등 local control 요소를 담당한다.
  2. ESP32 gateway는 Wi-Fi에 접속하고 PHP backend endpoint와 HTTP로 통신한다.
  3. Backend에서 받은 control data는 UART를 통해 STM controller로 전달된다.
  4. Sensor 및 valve state data는 backend로 전송된다.
  5. Flutter mobile layer는 IoT 관련 dependency와 app scaffold를 포함한다. 

기술적 특징

영역내용
Ethernet Bring-upArduino와 ESP-IDF 양쪽에서 ESP32 + W5500 연결을 다룸
TCP Test PathESP32 TCP server와 Python client를 통한 검증 경로 포함
MCU-to-Gateway 구조ESP32가 network-facing gateway, STM8이 local controller 역할을 담당
Local ControlKeypad, LCD, RTC, watchdog, valve control logic 포함
Backend 연동PHP script 기반 data insertion 및 control-data retrieval 구조
Mobile LayerFlutter 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 UIFlutter 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 OwnerNhatTran-97
Main RepositoryNhatTran-97/Full-Stack-Embedded-System
Related SubmoduleNhatTran-97/Automatic_Irrigation_System
Public Description작성자가 진행한 프로젝트를 보여주기 위한 저장소
Irrigation Project Context2022년 national startup competition 참여 프로젝트

GitHub repository owner는 NhatTran-97이며, 자동 관수 프로젝트는 main repository에서 submodule로 연결되어 있다.

Documents
  • Full-Stack-Embedded-System

Comments Write