---
title: "EthernetSPI2"
url: "https://maker.wiznet.io/lawrence/projects/ethernetspi2/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/ethernetspi2/md"
type: "UCC: User Created Content"
author: "KHome"
author_url: "https://github.com/KHome/EthernetSPI2"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "KHome"
original_url: "https://github.com/KHome/EthernetSPI2"
published: "2025-05-29"
language: "en"
likes: 0
views: 1737
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# EthernetSPI2

> EthernetSPI2

Original author: KHome (source: https://github.com/KHome/EthernetSPI2)

## Article

## ESP32-CAM + W5500으로 이더넷 기반 JPEG 스트리밍 구현하기

ESP32-CAM은 무선(Wi-Fi)을 통해 이미지를 전송하는 데 흔히 사용되지만, 안정적인 유선 전송이 필요한 경우 W5500 Ethernet 컨트롤러와의 조합이 매우 유용합니다. 본 프로젝트는 이 두 모듈을 활용하여 **이더넷 기반 JPEG 스트리밍 카메라**를 구현하는 데 중점을 두고 있습니다.

---

### 🛠 주요 기능 및 구성

#### ✅ HSPI 기반의 안정적인 연결

ESP32-CAM은 **VSPI 핀을 카메라 모듈에 사용**하므로, W5500은 **HSPI 인터페이스**를 통해 연결됩니다. 이렇게 하면 SPI 리소스 충돌 없이 두 장치를 병행 사용할 수 있습니다.

#### ✅ 커스터마이징된 라이브러리

기존 Arduino Ethernet 라이브러리를 기반으로 하되, **W5100 및 W5200 관련 코드를 제거하고 W5500 전용으로 수정**된 `EthernetSPI2` 라이브러리를 사용합니다.

#### ✅ 예제 코드 제공

`examples/ESP32EthCamera.ino` 파일에는 **카메라 초기화 후 JPEG 이미지를 이더넷으로 스트리밍**하는 예제가 포함되어 있어 빠른 테스트가 가능합니다.

---

### 🔌 하드웨어 연결 방법

| ESP32-CAM 핀 | W5500 핀 |
| --- | --- |
| GPIO12 | MISO |
| GPIO13 | MOSI |
| GPIO14 | SCLK |
| GPIO2 | CS |
| GND | GND |

> **전원 공급**: ESP32-CAM과 W5500 모두 **외부 5V 전원**을 공유하여 공급합니다.

> **주의사항**: ESP32를 프로그래밍할 때는 **W5500의 전원을 차단**해야 충돌을 방지할 수 있습니다.

---

### 🧪 사용 방법

#### 1. 라이브러리 포함

cpp

CopyEdit

`#include <EthernetSPI2.h> `

#### 2. 이더넷 초기화

고정 IP 사용 시:

cpp

CopyEdit

`byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; Ethernet.begin(mac, ip);`

DHCP 사용 시:

cpp

CopyEdit

`Ethernet.begin(mac);`

#### 3. 서버 시작

cpp

CopyEdit

`EthernetServer server(80); server.begin();`

#### 4. loop 함수 내 스트리밍 처리

cpp

CopyEdit

`EthernetClient client = server.available(); if (client) { // 클라이언트 요청 확인 후 JPEG 데이터 전송 처리 }`

---

### ⚠️ 주의 사항 및 한계

**라이브러리 업데이트 중단**: 본 프로젝트는 **4년 전 마지막 커밋 이후로 업데이트가 없어**, 최신 Arduino IDE나 ESP32 보드와의 호환성 문제가 발생할 수 있습니다.

**대체 라이브러리 고려**: ESP32 Arduino 플랫폼 v3 이상에서는 **ETH.h**를 활용한 자체 이더넷 라이브러리를 지원하며, 보다 유연한 SPI 설정이 가능합니다.

**전원 안정성 확보**: 일부 W5500 모듈은 전원 품질이 낮을 수 있어, **100nF + 100uF + 1000uF 커패시터 조합을 5V 라인에 추가**하는 것을 권장합니다.

---

### 🧩 마무리

이 프로젝트는 ESP32-CAM과 W5500을 연동하여 **안정적인 유선 JPEG 스트리밍 시스템을 구현하고자 하는 사용자에게 훌륭한 시작점**이 될 수 있습니다. 다만, 최신 개발 환경에서는 **호환성 문제를 사전에 점검**하고, 필요한 경우 **다른 대체 라이브러리나 아키텍처**도 검토해보는 것이 좋습니다.

---

Source: https://maker.wiznet.io/lawrence/projects/ethernetspi2/
