---
title: "ARMOR-RADAR"
url: "https://maker.wiznet.io/Sunny_/projects/armor-radar/"
markdown_url: "https://maker.wiznet.io/Sunny_/projects/armor-radar/md"
type: "UCC: User Created Content"
author: "JuanenRac"
author_url: "https://github.com/JuanenRac/ARMOR-RADAR"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "JuanenRac"
original_url: "https://github.com/JuanenRac/ARMOR-RADAR"
published: "2026-11-06"
language: "en"
likes: 0
views: 8
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ARMOR-RADAR

> Field-node firmware (Waveshare ESP32-S3-ETH, three radars or presence sensors, Ethernet and Wi-Fi) with its own web panel, and its host-tested core

Original author: JuanenRac (source: https://github.com/JuanenRac/ARMOR-RADAR)

## Article

## Project description

![ARMOR_BANNER.svg](https://raw.githubusercontent.com/JuanenRac/ARMOR-NODE-RADAR/fb6decd6bcc6ddf0b059dcfdc978d7bc145d15d1/images/ARMOR_BANNER.svg)

## ARMOR-NODE-RADAR: ESP32-S3 Perimeter Radar Node with a W5500 Ethernet Link

### About JuanenRac

**JuanenRac(Electro Hobby 3D)**은 A.R.M.O.R.(Autonomous Radar & Multimodal Observation Range)를 개발하는 메이커입니다. A.R.M.O.R.는 경계 보안 시스템으로, 공통 메시지 계약(ARMOR-COMMON), 서버(ARMOR-SERVER), 웹 콘솔(ARMOR-STUDIO), 여러 종류의 현장 노드 등 독립된 저장소로 나뉘어 있습니다. 각 저장소는 자체 버전, 테스트, README를 갖습니다.

ARMOR-NODE-RADAR는 그중 "경계의 눈" 역할을 하는 레이더 노드 펌웨어입니다. 저장소는 GPL-3.0-or-later이며, README와 문서는 8개 언어로 제공됩니다.

#### Overview

**ARMOR-NODE-RADAR**는 Waveshare ESP32-S3-ETH 보드에서 동작하는 현장 노드 펌웨어입니다. 노드 하나가 레이더 또는 재실 센서를 최대 3개 읽고, 트랙·조도·상태를 MQTT로 서버에 게시합니다. 노드마다 자체 웹 패널이 내장되어 있어 네트워크, 브로커, 레이더, 핀, 사용자, 펌웨어 업데이트, 로그를 설정할 수 있습니다.

펌웨어는 ESP-IDF C++로 작성되었고(검토 시점 버전 0.8.0.4), 하드웨어와 무관한 코어는 PC에서 13개 테스트 프로그램, 4,633개 검사로 시험합니다. 같은 펌웨어로 Ethernet 보드(`s3-eth`, 기본)와 Wi-Fi 전용 보드(`s3-wifi`)를 빌드할 수 있습니다.

### Technical Architecture

![ARMOR-NODE-RADAR 아키텍처: 누가 부르는지, 무엇을 포함하는지, 그리고 무엇에 의존하는지](https://github.com/JuanenRac/ARMOR-NODE-RADAR/raw/main/images/architecture.svg)

#### Product

| Item | Confirmed Details |
| --- | --- |
| Project | ARMOR-NODE-RADAR (v0.8.0.4) |
| Board | Waveshare ESP32-S3-ETH (ESP32-S3R8, 240 MHz 듀얼코어, 8 MB 옥탈 PSRAM, 16 MB 플래시) |
| Ethernet Controller | **WIZnet W5500**, SPI 연결, RJ45 10/100 |
| Network | 유선 DHCP 또는 고정 주소, 선택형 Wi-Fi AP(Ethernet 포트에 브리지), 또는 Wi-Fi 접속 |
| Power | PoE(보드의 별도 PoE 모듈) 또는 USB |
| Sensors | HLK-LD2450, LD2461, 재실 센서 4종(LD2410, LD2412, LD2410S, MR24HPC1), 조도 VEML7700 |
| Protocol | MQTT(기본 평문, 선택형 TLS), HTTP 80 / HTTPS 443 패널 |
| Updates | 패널에서 OTA, 롤백, SHA-256 + Ed25519 서명 확인 |
| License | GPL-3.0-or-later |

#### Radar Data Path

![ARMOR-NODE-RADAR의 저장소 구조](https://github.com/JuanenRac/ARMOR-NODE-RADAR/raw/main/images/repository-structure.svg)

![ARMOR-NODE-RADAR Network Topology](이미지 업로드 위치: armor-node-radar-topology-ko.png)

| Stage | 설명 |
| --- | --- |
| UART | LD2450 하나당 하드웨어 UART 하나. ESP32-S3의 UART 3개를 모두 사용 (기본 RX 16, 17, 18 / TX 15, 21, 38) |
| Framer / Decoder | 256000 baud, 8N1, 30바이트 프레임, 초당 10프레임, 타깃 최대 3개. 잡음 속에서 프레임을 재동기화 |
| Tracks | 타깃이 트랙으로 변환됨. 레이더를 75도 간격으로 설치하면 최대 270도를 덮는다고 설명 |
| Messages | ARMOR-COMMON 공통 계약으로 검증되는 JSON. 레이더가 보고하지 않으면 텔레메트리를 보내지 않음 |

레이더가 조용한 것과 고장 난 것을 구분하기 위해, 보고하는 레이더가 없으면 "이상 없음" 메시지를 보내는 대신 텔레메트리를 중단합니다. 빈 핀은 입력, 출력, PWM, 아날로그로 설정해 서버의 장치로 노출할 수 있고, 기본값이 꺼짐인 노드 내 경계 엔진(구역 6개, 제외 구역 3개, 트립와이어 3개 등)은 브로커에 닿지 않는 동안 이벤트를 보관합니다.

#### Ethernet and Panel

![개요](https://github.com/JuanenRac/ARMOR-NODE-RADAR/raw/main/images/screenshots/overview.png)

Ethernet이 노드 밖으로 나가는 모든 통신을 담당합니다.

| Function | 설명 |
| --- | --- |
| MQTT | 브로커로 텔레메트리·상태·이벤트 게시. 노드마다 계정을 사용 |
| Web Panel | 펌웨어에 내장. 80 포트, 선택적으로 노드가 직접 만든 자체 서명 인증서의 443 포트 |
| OTA | GitHub에서 받은 이미지는 SHA-256 일치와 유효한 Ed25519 서명이 있어야 설치 |
| Health Report | 약 1분마다 가동 시간, 마지막 재시작 사유, 메모리, 링크 상태 게시 |
| Wi-Fi AP Bridge | 선택형 액세스 포인트를 Ethernet 포트에 브리지해 하나의 네트워크로 사용 (무선 메시가 아님) |

#### Resilience and Security

- MQTT last will과 birth 메시지로 노드의 온라인 상태를 항상 마지막 메시지로 남깁니다.

- 브로커에 메시지를 10분간 넘기지 못하면 노드를 재시작합니다(시간당 최대 3회).

- 내부 메모리가 부족하면 새 패널 연결을 거부해 레이더와 네트워크 태스크를 보호합니다.

- 패널은 기본적으로 사설 네트워크에만 응답하고, 사용자별·주소별로 틀린 비밀번호 횟수를 셉니다.

- 브로커 TLS 링크(`mqtts://`)는 선택 사항이며 기본값은 꺼짐입니다. 아직 보드에서 핸드셰이크를 실행해 보지 않았습니다.

### WIZnet Role in This Project

![WIZnet Role in This Project](이미지 업로드 위치: ESP32-S3 — SPI — W5500 — RJ45 — LAN 구간)

**W5500은 Waveshare ESP32-S3-ETH 보드의 유선 Ethernet 컨트롤러이며, 노드의 모든 외부 통신이 이 링크를 지납니다.**

저장소에서 확인되는 W5500 관련 내용은 다음과 같습니다.

| 근거 | 내용 |
| --- | --- |
| README | 노드가 유선 Ethernet(W5500)으로 DHCP 또는 고정 주소를 사용하고 PoE 또는 USB로 전원을 받는다고 설명 |
| 보드 프로필 `sdkconfig.board.s3-eth` | SPI Ethernet을 켜고 W5500 드라이버만 활성화, DM9051·KSZ8851SNL은 비활성화 |
| 같은 프로필 | Wi-Fi AP를 Ethernet 포트에 브리지하는 네트워크 인터페이스 브리지를 활성화 |
| 하드웨어 문서 | GPIO 9~14를 W5500용으로 예약(핀으로 제공하지 않음). `s3-wifi` 이미지에는 W5500 드라이버가 없음 |
| 하드웨어 문서 | 실제 ESP32-S3-ETH 노드에서 Ethernet, MQTT, 패널, OTA가 동작한다고 기록 |

**참고: W5500의 일반적 특성.** W5500은 TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE를 하드웨어로 처리하고, 소켓 8개와 내부 32 KB TX/RX 버퍼를 갖춘 10/100 Ethernet 컨트롤러입니다. ESP32-S3에는 Ethernet MAC이 없어서 유선 연결에는 외부 컨트롤러가 필요하고, W5500이 MAC과 PHY를 SPI로 제공합니다. 이 노드는 UART 3개, HTTPS 패널, MQTT, Bluetooth 설정, 서명된 업데이트를 함께 처리하고 내부 메모리(약 300 KB)를 여러 구성 요소가 나눠 쓰므로, 자체 패킷 버퍼를 가진 컨트롤러가 어울리는 구조입니다. 다만 이는 칩의 일반 특성과 구조적 추정이며, 저장소가 소켓 사용 방식이나 메모리 절감량을 설명하거나 측정해 공개한 것은 아닙니다.

확인하지 못한 범위는 다음과 같습니다.

- SPI 클럭 속도, 소켓 할당, 인터럽트·리셋 핀 배선: Ethernet 소스 파일을 읽지 못했습니다.

- PoE 전력 경로와 전류: 하드웨어 문서가 아직 측정하지 않았다고 밝힙니다.

- Ethernet 포트에 브리지된 Wi-Fi AP: 아직 노드에서 기록되지 않았다고 문서가 밝힙니다.

### Developer Takeaways

#### Link, Panel and Updates on One Cable

데이터, 설정 패널, 펌웨어 업데이트, 상태 보고를 모두 하나의 Ethernet 링크로 처리하고, 같은 펌웨어로 Ethernet 보드와 Wi-Fi 전용 보드를 빌드 프로필만 바꿔 지원합니다. 보드가 없는 기능은 이미지에서 빼고 패널에서도 숨기는 방식입니다.

#### Fail Closed on Sensor Data

보고하는 레이더가 없거나 조도 값이 없으면 텔레메트리를 보내지 않습니다. 침묵한 센서가 "조용한 경계"로 보이는 오해를 막는 설계입니다.

#### Self-Protection for Long Uptime

데드맨 스위치, 메모리 가드, 복구 가능한 설정 백업, 서명된 OTA와 롤백을 갖췄습니다. 몇 달씩 무인으로 도는 노드가 스스로 이상을 알아채되 재시작 루프에 빠지지 않도록 횟수를 제한하는 방식은 다른 Ethernet 노드에도 참고할 수 있습니다.

### FAQ

**Q1. W5500은 어디에 사용되나요?**

Waveshare ESP32-S3-ETH 보드의 유선 Ethernet 컨트롤러로, SPI로 연결됩니다. `s3-eth` 빌드 프로필이 W5500 드라이버를 켜고, 하드웨어 문서가 GPIO 9~14를 예약합니다.

**Q2. Ethernet 없이도 쓸 수 있나요?**

같은 펌웨어에 Ethernet이 없는 ESP32-S3-WROOM-1 보드용 `s3-wifi` 프로필이 있습니다. 다만 하드웨어 문서는 이 보드에 대해 아직 아무것도 시험하지 않았다고 밝힙니다.

**Q3. 실제 하드웨어에서 검증된 범위는 어디까지인가요?**

하드웨어 문서는 실제 ESP32-S3-ETH 노드에서 HTTP·HTTPS 패널, 플래시 설정, Ethernet, 노드별 계정의 MQTT, 텔레메트리, 실시간 지도, OTA가 동작한다고 기록합니다. Wi-Fi AP 브리지, 조도 센서, 매핑된 핀, PoE 전류는 아직 노드에서 기록되지 않았습니다. LD2461과 재실 센서 디코더는 매뉴얼 예제와 일치하는 수준입니다.

**Q4. LD2450이 실제 레이더에서 검증되었나요?**

저장소 문서가 서로 다릅니다. README 상태표는 실제 레이더에서 동작한다고 하고, 하드웨어 경계 문서는 실제 모듈에서 캡처한 프레임이 아직 없다고 합니다. README 개요도 두 보드 모두 실행해 본 적이 없다고 적어 자체 상태표와 어긋납니다. 작성자가 확인해 줄 때까지 레이더 결과는 미확인으로 보아야 합니다.

**Q5. 코드를 재사용해도 되나요?**

GPL-3.0-or-later이므로 조건에 따라 재사용할 수 있고, 변경 사항은 같은 라이선스로 공유해야 합니다. 작성자는 독립적인 보안 검토가 아직 없었다고 밝힙니다.

---

Source: https://maker.wiznet.io/Sunny_/projects/armor-radar/
