Wiznet makers

irina

Published August 28, 2026 ©

188 UCC

5 WCC

104 VAR

0 Contests

0 Followers

0 Following

Original Link

CRANTROL: W5500-Based IoT Control Platform

CRANTROL is an ESP32-S3 and W5500 Ethernet remote control platform with 10-channel relay control, Flutter mobile app, Firebase sync, and captive portal setup.

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

👤 AUTHOR

ashhim

CRANTROL은 ESP32-S3와 WIZnet W5500을 기반으로 개발된 분산형 IoT 원격 제어 시스템입니다.

단순한 Ethernet Relay Controller에 그치지 않고 ESP32 Firmware, Flutter Mobile Application, Firebase Realtime Database 및 Captive Portal을 하나의 시스템으로 구성하여 인터넷을 통한 원격 장치 제어와 실시간 상태 동기화를 구현했습니다.

🔗 GitHub:
https://github.com/ashhim/Crantrol

🎯 PROJECT DESCRIPTION

CRANTROL은 PC, Server, Monitor, Router, Network Switch 및 기타 전기 장치를 원격에서 제어하기 위한 IoT Remote Power & Device Control System입니다. 하드웨어는 ESP32-S3 + W5500 Ethernet Controller를 중심으로 구성되며 기본적으로 10개의 독립적인 Relay Output을 지원합니다.

사용자는 Android/iOS용 Flutter Application을 이용해 장치를 제어하고, 명령과 상태 정보는 Firebase Realtime Database를 통해 ESP32-S3 Controller와 실시간으로 동기화됩니다. CRANTROL의 중요한 특징은 일반적인 ESP32 IoT 시스템과 달리 Wi-Fi가 아닌 W5500 Ethernet을 정상 운용을 위한 Primary Network로 사용한다는 것입니다.

Wi-Fi는 초기 설정이나 Network Recovery가 필요한 경우에만 AP와 Captive Portal을 제공하는 용도로 사용됩니다.

🧩 COMPONENTS

CategorySpecification
MCUESP32-S3
EthernetWIZnet W5500
Primary NetworkWired Ethernet
Wi-FiCaptive Portal Configuration
Relay Outputs10 Channels, Expandable
Cloud BackendFirebase Realtime Database
AuthenticationFirebase Authentication
Mobile ApplicationFlutter – Android / iOS
FirmwareArduino Framework / PlatformIO
Programming LanguageC++ / Dart
Configuration StorageESP32 NVS
StatusStatus LED / Network LED / RGB LED
FeedbackActive Buzzer

🏗️ SYSTEM ARCHITECTURE

CRANTROL은 크게 세 개의 Layer로 구성됩니다.

             												Flutter Mobile App
                												Android / iOS
                     												│
                     												│ Firebase SDK
                     					   						▼
          									Firebase Realtime Database
                     												│
              										Internet / Ethernet
                     												│
                     					   						▼
                  												W5500
                     												│ SPI
                     					   						▼
                 												ESP32-S3
                     												│
        						┌────── ─────┼────────────┐
        						│     						    │     					  	     │
   						10× Relays    			Status LEDs                  Buzzer
        						│
       						▼
 						PC / Server / Monitor / Router
 						Switch / Modem / Lighting / etc.
사용자가 Flutter App에서 Relay를 조작하면 명령은 Firebase Realtime Database에 기록되고, ESP32-S3가 Ethernet을 통해 이를 확인하여 실제 Relay를 제어합니다.

변경된 Hardware State는 다시 Firebase로 전달되어 연결된 Mobile Application에 실시간으로 반영됩니다.

🌐 Why W5500?

CRANTROL에서 W5500은 Primary Network Interface입니다.

일반적인 ESP32 IoT 장치가 Wi-Fi를 주 통신 수단으로 사용하는 것과 달리 CRANTROL은 상시 운용 시 Wired Ethernet을 우선적으로 사용하도록 설계되었습니다.

W5500은 ESP32-S3와 HSPI로 연결되며 Firmware의 Ethernet Manager가 다음 기능을 관리합니다.

  • W5500 Initialization
  • Ethernet Link Monitoring
  • IP Configuration
  • Connection Recovery
  • Internet Availability Detection

또한 단순히 Ethernet Cable 연결 여부만 확인하지 않습니다.

Ethernet Manager는 W5500 초기화, Ethernet Link/IP 상태, Connection Recovery 및 Internet Availability를 관리합니다. Firebase 연결과 실시간 동기화는 별도의 Firebase Client가 담당합니다.

이러한 구조는 W5500을 단순한 Ethernet 추가 기능이 아니라 상시 동작하는 Remote Controller의 핵심 Network Interface로 사용한 사례라는 점에서 의미가 있습니다.

📡 Ethernet for Operation, Wi-Fi for Configuration

CRANTROL에서 특히 흥미로운 부분은 Ethernet과 Wi-Fi의 역할을 명확하게 분리했다는 점입니다.

										NORMAL OPERATION
										ESP32-S3 ── W5500 ── Ethernet ── Firebase
                  							     										│
           							      										Flutter App


										INITIAL SETUP / RECOVERY
										ESP32-S3 ── Wi-Fi AP
               															│
        															Captive Portal
               															│
       															Browser Configuration
정상 운용 중에는 W5500 Ethernet을 사용합니다.

반면 Wi-Fi는 runtime data path로 사용하지 않는다 ,사용자는 Firmware를 다시 Flash하지 않고 Web Browser를 통해 장치 설정을 변경할 수 있습니다.

즉,

Ethernet은 안정적인 Runtime Communication을 담당하고, Wi-Fi는 편리한 Configuration Interface를 담당합니다.

이 역할 분리가 CRANTROL Network Architecture의 특징입니다.


☁️ Firebase Real-Time Control

Flutter App이 ESP32-S3와 직접 통신하는 구조가 아니라 Firebase Realtime Database가 중간 Synchronization Layer 역할을 합니다.

																		User
 																		↓
																		Flutter App
 																		↓
																		Firebase Realtime Database
 																		↓
																		W5500 Ethernet
 																		↓
																		ESP32-S3
 																		↓
																		Relay
Firebase에는 Relay State뿐 아니라 Device Configuration, Heartbeat, Online Status, Timer 및 System Command 등이 동기화됩니다.

따라서 여러 Mobile Device가 동일한 CRANTROL Controller에 접속하더라도 최신 Hardware State를 공유할 수 있습니다. Firebase Authentication과 Database Security Rules도 사용됩니다.


🔌 10-Channel Relay Control

CRANTROL은 기본적으로 10개의 독립 Relay Output을 지원합니다.

각 Relay는 개별적으로 다음 항목을 설정할 수 있습니다.

  • Custom Relay Name
  • GPIO Assignment
  • Enable / Disable
  • Active High / Active Low
  • Pulse Duration
  • Latched / Pulse Operation

Relay 구조 자체도 Modular하게 설계되어 향후 10채널 이상으로 확장할 수 있도록 구성되어 있습니다.


🖥️ APPLICATION EXAMPLES

CRANTROL은 처음에는 PC Remote Control 용도로 개발되었지만 Relay로 제어할 수 있는 다양한 장치에 적용할 수 있습니다.

Computer / Server Control : PC Power, Reset 및 Server 장치를 원격으로 제어

Network Equipment : Router, Switch 및 Modem의 원격 Power Cycle

AV Equipment : Monitor와 Speaker 등의 장치 제어

Lighting / Power Control : 조명이나 전원 장치의 원격 On/Off

Remote Maintenance : 현장에 직접 방문하지 않고 Network Equipment나 PC의 전원을 Reset

GitHub에서는 PC, Server, Monitor, Speaker, Router, Network Switch, Modem, Lighting 및 Power Supply 등을 대표적인 적용 대상으로 제시하고 있습니다.

🔗 RELATED EXISTING CONTENTS & EXPANSION VALUE

CRANTROL과 목적·구성이 겹치는 WIZnet Maker Site 프로젝트 네 편을 나란히 놓았습니다. "ESP32-S3 + W5500 릴레이 컨트롤러"라는 하드웨어 조합 자체는 사이트에 여러 번 등장하지만, 모바일 앱 + 클라우드 실시간 동기화 + 캡티브 포털을 하나로 묶은 완성형 스택은 CRANTROL이 유일합니다. 이 대비가 아래 비교의 핵심입니다.

 CRANTROL
(본 프로젝트)
KinCony KC868-A2v3CONTROL_POWER_MQTTBEM104ESP32 + W5500 8-Ch Relay
성격개인 오픈소스, 완성형 시스템상용 DIN-레일 제품 ($55)개인/현장 배포 코드상용 산업용 모듈회로 설계 템플릿 (미완성)
MCUESP32-S3ESP32-S3-WROOM-1 (N16R8)Arduino Mega 2560자체 MCU (비공개)ESP32 38핀 보드
릴레이 채널10채널, 확장형2채널4채널2채널8채널 (설계만)
주 네트워크W5500 Ethernet (상시)W5500 Ethernet (Wi-Fi와 병행 노출)W5100/W5500 (고정 IP)W5500 EthernetW5500 Ethernet (Wi-Fi와 택일)
제어 프로토콜Firebase Realtime DBHTTP/MQTT (ESPHome) 또는 KCS v3 자체 프로토콜MQTT (LWT 포함)HTTP, Modbus-TCP, EasyBus-TCP미구현 (템플릿 단계)
모바일 앱Flutter (Android/iOS), 자체 개발없음 (Home Assistant/Tuya 앱 연동)없음없음 (URL 직접 호출)없음
초기 설정Wi-Fi 캡티브 포털정적 설정 (ESPHome YAML / KCS 웹 UI)Serial 명령 수동 재설정DHCP Plug & Play미구현
네트워크 장애 대응4단계 상태 판별 + Firebase 하트비트표시만 (Wi-Fi/Eth IP 동시 표시)MQTT LWT로 오프라인 감지Auto Ping 기반 Watchdog 재부팅없음
완성도프로토타입, 라이선스 명시 없음양산 제품, 매뉴얼·인증 존재현장 배포 추정, 자격증명 하드코딩양산 제품, 매뉴얼 존재미완성 템플릿

네 사례를 함께 보면 CRANTROL의 위치가 뚜렷해집니다. 하드웨어 철학(ESP32-S3 + W5500 wired-first)은 KinCony 같은 상용 제품과 같은 방향이고, 기능적 목적(다채널 원격 전원 제어)은 CONTROL_POWER_MQTT·BEM104와 같은 계열이지만, 그 위에 자체 개발한 모바일 앱과 클라우드 실시간 동기화 계층을 올렸다는 점에서 개인/오픈소스 프로젝트 중에서는 완성도가 높은 축에 속합니다. 

📘 CONCLUSION

CRANTROL은 단순한 ESP32 Relay Controller가 아닙니다.

ESP32-S3 + W5500 + 10-Channel Relay + Flutter + Firebase + Captive Portal을 하나의 시스템으로 구성한 완성도 높은 Remote Device Control Platform입니다.

특히 정상 운용에서는 W5500 Ethernet을 사용하고 Wi-Fi는 Provisioning과 Recovery에만 사용하는 Ethernet-First Architecture가 인상적입니다.

또한 Network Link, IP, Internet, Firebase 및 Heartbeat 상태를 지속적으로 확인하고 Flutter App과 Hardware State를 실시간으로 동기화하기 때문에 PC, Server 및 Network Equipment처럼 상시 연결성과 원격 관리가 중요한 장치에 적용하기 좋은 Reference Project입니다.

❓ FAQ

Q1. CRANTROL은 어떤 프로젝트인가요?

ESP32-S3와 W5500을 이용해 PC, Server, Network Equipment 및 Relay 기반 전기 장치를 원격 제어하는 IoT Platform입니다. Flutter App과 Firebase Realtime Database를 이용해 Remote Control과 실시간 상태 동기화를 구현합니다.

Q2. ESP32-S3에 Wi-Fi가 있는데 왜 W5500을 사용하나요?

CRANTROL은 장시간 안정적인 Remote Operation을 위해 W5500 기반 Wired Ethernet을 Primary Network Interface로 사용합니다. Wi-Fi는 정상 통신이 아니라 Captive Portal을 이용한 설정에 사용됩니다.

Q3. Wi-Fi는 언제 사용하나요?

초기 설정 또는 Network Recovery가 필요한 경우 ESP32-S3가 Wi-Fi AP를 활성화하여 Captive Portal을 제공합니다.

Q4. 몇 개의 Relay를 제어할 수 있나요?

기본적으로 10개의 독립 Relay를 지원하며 Software Architecture는 추가 Relay 확장을 고려해 설계되었습니다.

Q5. Smartphone에서 직접 ESP32-S3에 접속하나요?

아닙니다. 정상 운용 시 Flutter App과 ESP32-S3는 Firebase Realtime Database를 통해 명령과 상태를 동기화합니다.

Q6. 어떤 장치를 제어할 수 있나요?

PC, Server, Monitor, Router, Network Switch, Modem, Lighting 및 기타 Relay로 On/Off 또는 Pulse 제어가 가능한 장치에 적용할 수 있습니다.


👤 AUTHOR

ashhim

CRANTROL is a distributed IoT remote control system based on the ESP32-S3 and WIZnet W5500.

Rather than being a simple Ethernet relay controller, the project combines ESP32 firmware, a Flutter mobile application, Firebase Realtime Database, and captive-portal provisioning into a complete remote device-control platform.

🔗 GitHub:
https://github.com/ashhim/Crantrol

🎯 PROJECT DESCRIPTION

CRANTROL is an IoT Remote Power & Device Control System designed to remotely manage computers, servers, monitors, routers, network switches, and other electrical equipment.

The embedded controller is built around an ESP32-S3 with a WIZnet W5500 Ethernet Controller and supports 10 independently configurable relay outputs by default.

Users control and monitor the system through a Flutter application for Android and iOS, while commands and hardware states are synchronized through Firebase Realtime Database.

A key characteristic of CRANTROL is its Ethernet-first network architecture. W5500-based wired Ethernet is used during normal operation, while the ESP32-S3's Wi-Fi is reserved for captive-portal configuration during initial provisioning or network recovery.

 

🧩 COMPONENTS

CategorySpecification
MCUESP32-S3
EthernetWIZnet W5500
Primary NetworkWired Ethernet
Wi-FiCaptive Portal Configuration
Relay Outputs10 Channels, Expandable
Cloud BackendFirebase Realtime Database
AuthenticationFirebase Authentication
Mobile ApplicationFlutter – Android / iOS
FirmwareArduino Framework / PlatformIO
LanguagesC++ / Dart
Configuration StorageESP32 NVS
Status IndicatorsStatus / Network / RGB LEDs
Audible FeedbackActive Buzzer

🏗️ SYSTEM ARCHITECTURE

CRANTROL uses a distributed three-layer architecture:

             											Flutter Mobile App
                											Android / iOS
                     											│
                 											Firebase SDK
                     											▼
          											Firebase Realtime Database
                     											│
              											Internet / Ethernet
                     											▼
                  											W5500
                     											│ SPI
                     											▼
                 											ESP32-S3
                     											│
        					┌────────── ─┼────────────┐
        					│        						    │            						 │
   					10× Relays    				Status LEDs    			Buzzer
        					│
        					▼
 					PC / Server / Monitor / Router
					 Switch / Modem / Lighting / etc.

When a user operates a relay from the Flutter application, the command is written to Firebase. The ESP32-S3 receives the update over Ethernet and controls the corresponding relay.

The resulting hardware state is then reported back through Firebase so that every connected application remains synchronized.

🌐 Why W5500?

The W5500 is the primary network interface in CRANTROL.

Instead of relying on the ESP32-S3's built-in Wi-Fi for continuous communication, CRANTROL uses wired Ethernet during normal operation.

The firmware's Ethernet Manager handles W5500 initialization, link monitoring, IP configuration, connection recovery, Internet availability detection, and cloud connectivity.

CRANTROL also distinguishes multiple network states rather than relying only on physical cable detection:

The Ethernet Manager handles W5500 initialization, Ethernet link/IP status, connection recovery, and Internet availability. Firebase authentication and real-time synchronization are handled separately by the Firebase Client.

📡 Ethernet for Operation, Wi-Fi for Configuration

One of the most interesting design choices in CRANTROL is the clear separation between Ethernet and Wi-Fi.

						NORMAL OPERATION
						ESP32-S3 ── W5500 ── Ethernet ── Firebase
                       														│
                  														Flutter App

						INITIAL SETUP / RECOVERY
						ESP32-S3 ── Wi-Fi AP
               						│
        						Captive Portal
               						│
       						Browser Configuration
W5500 Ethernet handles continuous runtime communication.

W5500 Ethernet serves as the primary runtime and Firebase communication path. The ESP32-S3 Wi-Fi interface is not used for normal application data traffic; in the current firmware, it operates as a local captive-portal configuration interface.

☁️ Firebase Real-Time Control

The Flutter application does not communicate directly with the ESP32 hardware.

Instead, Firebase Realtime Database acts as the synchronization layer between the mobile application and embedded controller.

																	  User
 																		↓
																Flutter App
 																		↓
															Firebase Realtime Database
 																		↓
															W5500 Ethernet
 																		↓
																ESP32-S3
 																		↓
																	Relay

Relay states, device configuration, heartbeat information, online status, timers, and system commands are synchronized through Firebase.

Firebase Authentication and database security rules are also used to control access to device data.

🔌 10-Channel Relay Control

CRANTROL supports 10 independent relay outputs by default.

Each relay can be configured with a custom name, GPIO assignment, enable/disable state, Active High/Low operation, pulse duration, and latched or pulse operation.

The relay abstraction is modular, allowing additional channels to be incorporated in future hardware revisions.

🖥️ APPLICATION EXAMPLES

CRANTROL can be used for:

  • Remote PC and server power/reset control
  • Router, switch, and modem power cycling
  • Monitor and speaker control
  • Lighting control
  • Smart power distribution
  • Remote maintenance systems
  • Other relay-controlled electrical equipment

🔗 RELATED EXISTING CONTENTS & EXPANSION VALUE (English)

Four WIZnet Maker Site projects share meaningful overlap with CRANTROL's purpose and structure. The "ESP32-S3 + W5500 relay controller" hardware combination itself appears repeatedly on the site, but Among the projects compared here, CRANTROL is the only one that bundles a self-built mobile app, real-time cloud synchronization, and captive-portal provisioning into one complete stack — and that contrast is the point of the comparison below.

 CRANTROL
(this project)
KinCony KC868-A2v3CONTROL_POWER_MQTTBEM104ESP32 + W5500 8-Ch Relay
NaturePersonal open-source, complete systemCommercial DIN-rail product ($55)Individual/field-deployed codeCommercial industrial moduleCircuit design template (unfinished)
MCUESP32-S3ESP32-S3-WROOM-1 (N16R8)Arduino Mega 2560Proprietary MCU (undisclosed)ESP32 38-pin board
Relay channels10, expandable2428 (design only)
Primary networkW5500 Ethernet (always-on)W5500 Ethernet (exposed alongside Wi-Fi)W5100/W5500 (static IP)W5500 EthernetW5500 Ethernet (either/or with Wi-Fi)
Control protocolFirebase Realtime DBHTTP/MQTT (ESPHome) or KCS v3 proprietaryMQTT (with LWT)HTTP, Modbus-TCP, EasyBus-TCPNot implemented (template stage)
Mobile appCustom-built Flutter (Android/iOS)None (Home Assistant/Tuya app instead)NoneNone (direct URL calls)None
ProvisioningWi-Fi captive portalStatic config (ESPHome YAML / KCS web UI)Manual serial reconfigurationDHCP plug & playNot implemented
Network-fault handling4-state ladder + Firebase heartbeatDisplay only (shows both IPs)MQTT LWT for offline detectionAuto Ping watchdog rebootNone
MaturityPrototype, no stated licenseShipping product, manual + specsApparently field-deployed, hardcoded credentialsShipping product, manual availableUnfinished template

Read together, these four cases sharpen exactly where CRANTROL sits. Its hardware philosophy (ESP32-S3 + W5500, wired-first) points the same direction as a commercial product like KinCony's; its functional goal (multi-channel remote power control) puts it in the same family as CONTROL_POWER_MQTT and BEM104 — but layering a custom mobile app and real-time cloud sync on top makes it unusually complete for a personal/open-source project. 

📘 CONCLUSION

CRANTROL is more than a simple ESP32 relay controller.

It integrates ESP32-S3 + W5500 + 10-Channel Relay Control + Flutter + Firebase + Captive Portal Provisioning into a complete remote device-control platform.

Its Ethernet-first architecture is particularly noteworthy: W5500 Ethernet provides continuous runtime connectivity, while Wi-Fi is reserved for configuration and recovery.

Combined with real-time cloud synchronization and multi-level network monitoring, CRANTROL provides a useful reference architecture for remotely managing PCs, servers, networking equipment, and other always-connected relay-controlled devices.

❓ FAQ

Q1. What is CRANTROL?
CRANTROL is an ESP32-S3 and W5500-based remote device-control platform that combines relay control, a Flutter mobile application, and Firebase real-time synchronization.

Q2. Why use the W5500 when the ESP32-S3 already has Wi-Fi?
W5500 Ethernet is used as the primary runtime network interface for stable, continuously connected operation. Wi-Fi is reserved for captive-portal configuration.

Q3. When is Wi-Fi used?
W5500 Ethernet serves as the primary runtime and Firebase communication path. The ESP32-S3 Wi-Fi interface is not used for normal application data traffic; in the current firmware, it operates as a local captive-portal configuration interface.

Q4. How many relays does CRANTROL support?
The current implementation supports 10 independently configurable relay outputs and is designed to allow future expansion.

Q5. Does the Flutter app communicate directly with the ESP32?
No. The application and controller exchange commands and status information through Firebase Realtime Database.

Q6. What devices can CRANTROL control?
Typical examples include PCs, servers, monitors, routers, network switches, modems, lighting systems, and other relay-controlled equipment.

Documents
Comments Write