---
title: "REMS-RTA"
url: "https://maker.wiznet.io/lawrence/projects/rems-rta/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/rems-rta/md"
type: "UCC: User Created Content"
author: "Talha Ahmad"
author_url: "https://github.com/damhahlat/REMS-RTA"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Talha Ahmad"
original_url: "https://github.com/damhahlat/REMS-RTA"
published: "2026-05-03"
language: "en"
likes: 0
views: 223
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# REMS-RTA

> REMS-RTA

Original author: Talha Ahmad (source: https://github.com/damhahlat/REMS-RTA)

## Article

## Smart Home Environment Control System with ESP32 + W5500 (REMS-RTA)

> **A remote environment monitoring and control system using the W5500 web server**

---

### Overview

**REMS-RTA** is a smart home system for remotely monitoring and controlling a living environment — temperature, heating, cooling, and more.

It consists of two boards:

- **REMS board** (Remote Environment Management System) — the main controller that monitors the environment and issues commands. The ESP32 + W5500 combination has proven to be the most stable configuration.

- **RTA board** (REMS Testing Application) — an Arduino Nano-based test board that simulates real household loads such as a furnace and air conditioner.

GitHub: [damhahlat/REMS-RTA](https://github.com/damhahlat/REMS-RTA)

---

### System Architecture

![](https://maker.wiznet.io/upload/ckeditor5/789731801%5F1777834512%2Epng)

---

### Why W5500? — The Key Hardware Choice

Testing several microcontroller combinations showed that **ESP32 + W5500 was the most reliable**. Here's why.

#### Limitations of ESP32's built-in Wi-Fi alone

- **Reconnection instability** — dropped connections require complex recovery logic, risking missed commands

- **Software TCP/IP overhead** — the ESP32 CPU must handle both application logic and the network stack simultaneously

- **2.4 GHz interference** — shared with Wi-Fi, Bluetooth, and other household devices

#### How the W5500 solves this

The W5500 uses a **Hardwired TCP/IP** architecture. The entire TCP/IP stack is implemented in dedicated hardware (iMCU), so the ESP32 only needs to issue socket-level commands — no stack management required.

|  | ESP32 Wi-Fi only | ESP32 + W5500 |
| --- | --- | --- |
| TCP/IP processing | Software (CPU load) | Hardwired (no CPU load) |
| Connection stability | Wireless, reconnect risk | Wired, physically stable |
| Simultaneous sockets | Limited | 8 independent sockets |
| MCU compatibility | Built-in only | SPI — works with any MCU |

In practice, when a browser sends a heating or cooling command, the W5500 independently receives and processes the HTTP request. The ESP32 is free to focus entirely on sensing and control logic — no network overhead. And because it's wired Ethernet, the system works regardless of Wi-Fi congestion in the home.

---

### How It Works

The REMS board detects environmental changes and outputs command strings over serial:

```plaintext
"HEAT ON"  / "HEAT OFF"  →  heating control
"COOL ON"  / "COOL OFF"  →  cooling control
```

The RTA board receives these and activates the corresponding load:

```plaintext
A → Heat ON    B → Heat OFF
C → Cool ON    D → Cool OFF
```

---

### The Python Bridge

Direct pin-to-pin communication between the REMS and RTA boards had signal recognition issues, so a **Python script currently acts as the bridge**.

It does three things: auto-compile and upload firmware to both boards via arduino-cli, read serial messages from the REMS board, and forward translated commands to the RTA board.

```python
rems2Command = str(REMS2.readline())  if "HEAT ON"  in rems2Command: RTA2.write(bytes("A", "utf-8")) elif "HEAT OFF" in rems2Command: RTA2.write(bytes("B", "utf-8")) if "COOL ON"  in rems2Command: RTA2.write(bytes("C", "utf-8")) elif "COOL OFF" in rems2Command: RTA2.write(bytes("D", "utf-8"))
```

This adds some latency and is a temporary workaround, but it keeps the system functional while a direct hardware solution is developed.

---

### Hardware

| Board | Role | Notes |
| --- | --- | --- |
| ESP32 + W5500 | REMS main controller | Most stable combination |
| Arduino Mega | Alternative REMS board | Tested |
| Arduino Nano | RTA test board | Load simulation |

---

### Use Cases

Smart home HVAC automation, home environment monitoring, IoT control system prototyping, and W5500-based web server reference implementations.

---

### Current Status

This project is under active development. The W5500 web server interface is already stable. The next goal is replacing the Python bridge with direct board-to-board communication — making it a fully self-contained embedded system.

---

Source: https://maker.wiznet.io/lawrence/projects/rems-rta/
