Wiznet makers

Aimee0

Published July 24, 2026 ©

139 UCC

23 WCC

24 VAR

0 Contests

0 Followers

0 Following

Original Link

Architecture of a Smart Home Controller Using SUPLA’s supla-device and W5500 Ethernet

Architecture of a Smart Home Controller Using SUPLA’s supla-device and W5500 Ethernet

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

Overview

supla-device는 switch, sensor, gate, roller shutter, lighting, HVAC 등 자체 SUPLA-compatible device를 개발하기 위한 open-source IoT device SDK다. 

Supla?

https://www.supla.org/en/

SUPLA는 폴란드에서 시작된 오픈소스(Open Source) 기반의 스마트홈(Home Automation) 플랫폼입니다. ESP32, ESP8266, Raspberry Pi, Arduino와 같은 MCU/싱글보드 컴퓨터를 이용해 직접 스마트홈 기기를 만들고, 이를 클라우드 또는 자체 서버와 연결하여 스마트폰이나 웹에서 제어할 수 있도록 설계되었습니다.

현재 저장소에는 Arduino Mega + W5500 Ethernet Shield의 최소 연결 예제인 Simple_W5500.ino와, ESP32-S3 + W5500에서 sensor channel과 web configuration까지 구성한 LAN_T-ETH-Lite-ESP32S3.ino가 포함되어 있다. 두 구조에서 W5500은 MCU와 SPI로 연결되어 SUPLA Server로 이어지는 유선 Ethernet 경로를 담당한다.

이 구조가 해결하는 문제는 고정 설치형 스마트홈 장치를 Wi-Fi에만 의존하지 않고 유선망에 연결하는 것이다. supla-device가 network initialization, SUPLA Server 접속, reconnect와 protocol lifecycle을 관리하므로 개발자는 relay, button, sensor, roller shutter와 같은 Channel 및 device logic에 집중할 수 있다.

실제 SUPLA community에서는 이 조합을 ESP32-S3 + W5500 기반 DIN-rail controller로 확장한 사례도 확인된다. 작성자가 공개한 사양은 32개의 10 A relay output, 40개의 GND/VCC input, 최대 16개 roller shutter 또는 32개 lighting channel, Wi-Fi/LAN 설정, 24 VDC 전원, 12-DIN enclosure, cloud 연결이 끊긴 상태의 local control을 포함한다. 다만 이 제품의 전체 firmware와 schematic은 공개 자료에서 확인되지 않으므로, 본 글에서는 검증 가능한 supla-device code example을 중심으로 설명한다.

https://www.olx.pl/d/oferta/sterownik-16-rolet-32-oswietlenie-supla-CID5216-IDWjFga.html?srsltid=AfmBOoo2kH4xtBz7fjT4LhnUTl8dl9KGwhZ7TYU0QJR2PiawfGkjcST_

https://forum.supla.org/viewtopic.php?t=15451

 

Technical Architecture

ItemConfirmed Details
WIZnet Chip/ModuleW5500 / W5500-based Ethernet Shield
MCU/BoardArduino Mega, T-ETH-Lite-ESP32S3
InterfaceSPI
Arduino Mega Pin MapSS 10, MISO 50, MOSI 51, SCK 52
ESP32-S3 Pin MapCS 9, IRQ 13, RST 14, SPI3_HOST, SCK 10, MISO 11, MOSI 12
ProtocolPersistent TCP connection to SUPLA Server; TCP 2016 with TLS is the default secure path, TCP 2015 is the legacy unencrypted path
Main Code PointsSupla::EthernetShield, Supla::ESPETHSPI, SuplaDevice.begin(), SuplaDevice.iterate()

Arduino Mega의 SPI pin과 Ethernet Shield의 SS pin 구성은 Arduino Ethernet library의 공식 설명과도 일치한다.

Arduino Mega + W5500 최소 경로

https://github.com/SUPLA/supla-device/blob/main/examples/arduino_mega/Simple_W5500/Simple_W5500.ino

examples/arduino_mega/Simple_W5500/Simple_W5500.ino는 W5500 Ethernet 연결에 필요한 최소 구조를 보여준다.

#include <SuplaDevice.h>
#include <supla/network/ethernet_shield.h>

uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
Supla::EthernetShield ethernet(mac);

setup()에서는 사용자가 발급한 GUID, AUTHKEY, SUPLA server address와 account email을 전달한다.

SuplaDevice.begin(
    GUID,
    "svr1.supla.org",
    "email@address",
    AUTHKEY);

실행 중에는 SuplaDevice.iterate()가 network connection과 SUPLA protocol 처리를 계속 수행한다.

Button / Sensor / Channel
→ Arduino Mega
→ Supla::EthernetShield / EthernetClient
→ W5500
→ Ethernet
→ SUPLA Server
→ SUPLA application and user interface

ethernet_shield.h는 DHCP를 우선 사용하고, 연결 후 local IP, subnet mask, gateway, DNS 정보를 기록한다. 또한 Ethernet.maintain()을 호출해 DHCP lease를 관리한다.

ESP32-S3 + W5500 확장 경로

https://github.com/SUPLA/supla-device/blob/main/examples/esp/LAN_T-ETH-Lite-ESP32S3/LAN_T-ETH-Lite-ESP32S3.ino

examples/esp/LAN_T-ETH-Lite-ESP32S3/LAN_T-ETH-Lite-ESP32S3.ino는 더 제품형에 가까운 구성이다.

Supla::ESPETHSPI Eth(
    ETH_PHY_W5500,
    1,
    9,
    13,
    14,
    SPI3_HOST,
    10,
    11,
    12);

이 예제에는 다음 기능이 함께 포함된다.

  • GPIO 34의 rising-edge impulse counter와 10 ms debounce
  • GPIO 35의 falling-edge impulse counter, pull-up과 50 ms debounce
  • Supla::EspWebServer 기반 local configuration
  • Supla::LittleFsConfig 기반 설정 저장
  • EEPROM 또는 optional SPI FRAM을 이용한 state storage
  • GPIO 2 status LED
  • StartInCfgMode 초기 설정 모드
Impulse Input
→ ESP32-S3 Channel Logic
→ Supla::ESPETHSPI
→ W5500
→ Ethernet
→ SUPLA Server
→ SUPLA user interface

SUPLA의 direct device communication은 장치가 SUPLA Server에 생성하는 장시간 TCP connection을 기반으로 한다. Device application에서 SUPLA Cloud를 직접 호출하는 구조가 아니라, SUPLA Server가 실시간 device communication의 중심에 위치한다.

WIZnet Role in This Project

W5500은 단순한 external PHY가 아니라 Ethernet MAC/PHY와 Hardwired TCP/IP stack을 통합한 Ethernet controller다. 외부 MCU와는 SPI로 연결되며 TCP, UDP, IPv4 등의 protocol, 8개의 independent hardware socket과 32 KB Tx/Rx buffer를 제공한다.

supla-device에서 확인되는 W5500의 역할은 다음과 같다.

  1. MCU와 유선망 사이의 Ethernet interface 제공
    Arduino Mega 또는 ESP32-S3에서 생성된 device state와 command traffic이 W5500을 통해 Ethernet network로 이동한다.
  2. SUPLA Server transport path 구성
    SUPLA device는 SUPLA Server에 persistent TCP connection을 생성한다. W5500은 이 TCP data path의 Ethernet controller로 사용된다.
  3. 고정 설치형 controller의 Wi-Fi 의존성 감소
    DIN-rail control panel, relay cabinet, gate controller와 같이 Ethernet 배선을 확보할 수 있는 환경에서 유선 연결 경로를 제공한다.
  4. Hybrid controller로 확장 가능한 구조
    SUPLA forum의 16/32 controller는 ESP32-S3의 Wi-Fi와 W5500 LAN을 configuration mode에서 선택할 수 있는 구조로 소개된다. 이는 local radio interface와 wired backbone을 동일한 application logic에서 관리하는 사례다.

W5500의 Hardwired TCP/IP 기능은 공식 사양으로 확인되지만, 이 프로젝트 자료에는 CPU 사용률, latency 또는 throughput 비교 결과가 없다. 따라서 확인 가능한 핵심 가치는 W5500을 통한 Ethernet transport와 socket 기반 network path이며, 정량적인 성능 향상은 별도 시험이 필요하다.

또한 TLS는 W5500 자체가 아니라 host MCU와 software stack에서 처리해야 한다. 현재 Arduino Mega용 EthernetShield 구현은 TLS를 비활성화하므로 Simple_W5500.ino는 기본 연결 구조를 이해하기 위한 prototyping reference에 가깝다. Secure production device에는 TCP 2016과 TLS를 지원할 수 있는 MCU와 client stack을 선택해야 한다.

Developer Takeaways

  • 가장 작은 시작점은 Simple_W5500.ino다.
    Arduino Mega, W5500 Ethernet Shield, MAC address, GUID, AUTHKEY, server 정보만으로 SUPLA network lifecycle을 확인할 수 있다. 이후 relay, button, sensor Channel을 추가하는 방식으로 확장할 수 있다.
  • Network interface는 application보다 먼저 설계해야 한다.
    Issue #51은 ESP32에 W5500을 연결했을 때 Ethernet 경로에 필요한 client와 Wi-Fi client가 다를 수 있다는 문제를 기록한다. 현재 codebase의 Network::createClient() abstraction은 SUPLA protocol과 실제 transport client 생성을 분리하는 설계 포인트다.
  • Arduino Mega와 ESP32-S3의 역할을 구분하는 것이 좋다.
    Arduino Mega 예제는 간단한 wired proof-of-concept에 적합하다. Web configuration, secure connection, persistent state, 다수의 sensor 및 control Channel이 필요한 경우에는 ESP32-S3 + W5500 구조가 더 확장하기 쉽다.
  • Local control과 remote control을 분리하면 controller의 실용성이 높아진다.
    실제 16/32 controller 사례처럼 physical input에서 relay output으로 이어지는 local path는 Internet 연결 없이도 동작하게 구성하고, 상태 동기화와 remote command만 W5500 또는 Wi-Fi를 통해 SUPLA Server로 전달할 수 있다. 공개된 forum 자료는 offline operation을 지원한다고 설명하지만, 해당 제품의 구체적인 failover algorithm은 확인되지 않았다.

Related Maker Content and Application Value

Maker Site ContentSimilarityDifferenceExpansion Value
DOMIX — Open Source Modular Home Automation SystemESP32-S3, W5500, DIN-rail, 중앙형 smart home controllerDOMIX는 MQTT, ESPHome, Zigbee, RS485, I²C module을 결합한 독립 플랫폼이고, 본 사례는 SUPLA device protocol과 Channel framework가 중심W5500 기반 중앙 제어반을 SUPLA, ESPHome, MQTT 구조와 비교하는 architecture reference로 확장 가능.
Arduino SPS 24V I/O Smart Home PCB strommessung IOBroker ModbusArduino Mega, W5500, 24 V I/O, DIN-rail smart home controller기존 글은 HTTP, Modbus와 ioBroker 중심이며, 본 사례는 SUPLA Server의 persistent TCP와 Channel model 중심동일한 Arduino Mega/W5500 hardware에서 application protocol이 제품 구조를 어떻게 바꾸는지 비교 가능.
ESP32 + W5500 기반 ESP-NOW ↔ Ethernet 스마트홈 게이트웨이ESP32와 W5500을 이용한 smart home Ethernet path기존 글은 ESP-NOW sensor network를 MQTT/Home Assistant로 변환하는 gateway이며, 본 사례는 SUPLA-compatible device가 직접 server에 접속향후 wireless sensor 또는 room controller를 SUPLA Ethernet gateway에 통합하는 Hybrid architecture로 확장 가능.

이 프로젝트는 주거용 smart home 외에도 gate 및 access controller, DIN-rail lighting panel, roller shutter controller, energy 또는 pulse counter, 소형 building automation과 remote I/O controller에 적용할 수 있다.

특히 SUPLA의 Channel abstraction은 hardware input/output을 사용자에게 노출되는 device function과 연결한다. 여기에 W5500 Ethernet path를 결합하면 단순한 TCP client 예제를 넘어, 실제 switch·sensor·relay 기능을 server와 동기화하는 reusable device architecture를 구성할 수 있다.

Verified Scope and Sources

2026년 7월 24일 기준으로 확인된 범위는 다음과 같다.

  • supla-device는 GPL-2.0 open-source SDK이며 바로 flash하는 완성 firmware가 아니다.
  • Arduino Mega와 W5500을 연결하는 Simple_W5500.ino가 현재 main에 포함되어 있다.
  • 이 파일은 2026년 7월 13일 PR #173 관련 commit에서 추가됐다.
  • ESP32-S3와 W5500을 사용하는 LAN_T-ETH-Lite-ESP32S3.ino는 Release v24.8 이후 계열에 포함되어 있다.
  • 최신 published Release는 2026년 4월 2일의 v26.4다. 따라서 Simple_W5500.ino를 사용하려면 현재 main 또는 해당 파일이 포함되는 후속 Release를 확인해야 한다.
  • GitHub 저장소는 확인 시점에 Star 55, Fork 29, 2,403 commits를 표시했다. 이 수치는 이후 변동될 수 있다.
  • SUPLA forum의 16/32 controller는 실제 적용 사례지만 전체 source code, schematic, 인증 및 성능 시험 결과는 현재 공개 자료에서 확인되지 않는다.
  • OLX 검색 결과에서도 동일 명칭의 16/32 controller 판매 흔적이 확인되지만, 판매 페이지는 구현 근거보다 제품화 활동을 확인하는 보조 자료로만 사용했다.
SourceLinkChecked DateNotes
SUPLA supla-device GitHubRepository2026-07-24SDK 범위, code structure, license, activity 확인
Arduino Mega W5500 exampleSimple_W5500.ino2026-07-24SPI pin map, MAC, GUID/AUTHKEY, server connection code
ESP32-S3 W5500 exampleLAN_T-ETH-Lite-ESP32S3.ino2026-07-24W5500 SPI constructor, impulse counters, web configuration, EEPROM
Network client issueIssue #512026-07-24ESP32/W5500 client abstraction 문제
W5500 example changePull Request #1732026-07-24Simple_W5500.ino 추가. Local Git commit d08ddc3b로 검증
GitHub ReleasesReleases2026-07-24최신 published Release v26.4
SUPLA official siteSUPLA2026-07-24Open smart home platform과 LAN/Wi-Fi 적용 범위
W5500 official documentationW5500 Overview2026-07-24Hardwired TCP/IP, SPI, 8 sockets, 32 KB buffer
SUPLA controller forumSterownik Rolet / Oświetlenia 16/322026-07-24ESP32-S3, W5500, Wi-Fi/LAN, 32 relay, 40 input, offline operation
Commercial listing indicatorOLX search result2026-07-24제품 판매 흔적 확인. 구현 세부 근거로는 사용하지 않음

supla-device의 W5500 사례는 하나의 완제품보다 더 넓은 개발 레퍼런스를 제공한다. Arduino Mega 예제는 SUPLA와 W5500을 연결하는 가장 작은 출발점을 보여주고, ESP32-S3 예제는 web configuration과 persistent storage를 포함한 확장 구조를 제시한다. 여기에 실제 DIN-rail roller shutter·lighting controller 사례를 함께 보면, W5500이 SUPLA-compatible smart home device의 유선 network path로 어떻게 사용될 수 있는지 구체적으로 이해할 수 있다.

FAQ

Q. 이 프로젝트는 어떤 문제를 해결하나요?

A. supla-device는 switch, sensor, relay, roller shutter와 같은 MCU 기반 장치를 SUPLA Server에 연결하는 공통 개발 구조를 제공합니다. W5500을 적용하면 Arduino Mega 또는 ESP32-S3 기반 장치에 Wi-Fi와 구분되는 유선 Ethernet 연결 경로를 구성할 수 있습니다. (Source)

Q. W5500은 이 프로젝트에서 어떤 역할을 하나요?

A. W5500은 Arduino Mega 또는 ESP32-S3와 SPI로 연결되어 SUPLA Server로 이어지는 Ethernet network path를 제공합니다. W5500 자체는 Ethernet MAC/PHY, Hardwired TCP/IP stack 및 hardware socket을 통합한 Ethernet controller입니다. (Source)

Q. 현재 공개 자료에서 확인되지 않은 내용은 무엇인가요?

A. SUPLA forum에 소개된 16/32-channel controller의 전체 source code, schematic, 세부 pin map, 인증 및 성능 측정 결과는 현재 공개 자료 기준으로 확인되지 않습니다. 따라서 공개된 supla-device example과 해당 상용 controller가 동일한 hardware 또는 firmware를 사용한다고 단정할 수 없습니다. (Source)

 

 

 

Documents
Comments Write