STM32 + W5500 기반 HTTP/HTTPS 통신 구현
STM32에서 W5500으로 HTTP/HTTPS 구현
원본링크 : https://mischianti.org/stm32-ethernet-w5500-with-plain-http-and-ssl-https/
1) Introduction
본 프로젝트는 STM32 MCU와 WIZnet W5500 Ethernet Controller를 사용하여
일반 HTTP 요청뿐 아니라 SSL 기반 HTTPS 연결까지 구현하는 방법을 상세히 다룹니다.
특히 W5500은 TCP/IP 스택이 완전히 내장된 하드웨어 기반의 Ethernet 칩으로,
MCU가 복잡한 네트워크 스택을 직접 처리할 필요 없이 SPI 인터페이스만으로 안정적인 인터넷 통신을 제공하는 것이 장점입니다.
HTTPS는 CPU 부하가 큰 SSL 처리 과정이 필요하기 때문에
STM32에서 직접 TLS 처리를 수행하는 대신,
라이브러리 기반 접근과 W5500 소켓 구조를 활용한 안전한 처리 방법이 소개됩니다.
2) Required Components
STM32 보드 (예: STM32 Nucleo, Blue Pill 등)
W5500 Ethernet 모듈
RJ45 커넥터 포함 Ethernet 포트
LAN 케이블
3.3V 전원
SPI 연결용 점퍼 케이블
OpenSSL 또는 mbedTLS 라이브러리 (HTTPS용)
3) Hardware Setup
W5500은 3.3V 구동, SPI 인터페이스, 하드웨어 TCP/IP 스택을 제공하므로
STM32와 직접 연결만 하면 바로 동작합니다.
기본 연결 구조:
STM32 ↔ W5500 SPI
STM32 ↔ W5500 INT(인터럽트 핀)
STM32 ↔ RESET 핀
3.3V 전원 및 GND 연결
RJ45 → LAN
4) Interface Explanation (SPI / W5500 Socket)
■ SPI 인터페이스
W5500은 4-선식 SPI를 사용합니다:
SCK
MISO
MOSI
CS(Chip Select)
SPI 속도는 최대 80MHz까지 가능하지만 보드 환경에 따라 20~40MHz 정도가 안정적입니다.
■ W5500 Socket 구조
W5500은 8개의 독립 소켓(0~7) 제공
각 소켓에서 다음을 설정 가능:
TCP / UDP 모드
포트
RX/TX 버퍼 크기
인터럽트 플래그
HTTP/HTTPS 클라이언트에서는 보통 다음 소켓을 사용:
Socket 0: HTTP/HTTPS Request 전송
Socket 1: 추가 데이터 수신용 or 다른 서버 연결
5) Wiring Table
| STM32 Pin | W5500 Pin | Description |
|---|---|---|
| PA5 (SCK) | SCK | SPI Clock |
| PA6 (MISO) | MISO | Master In |
| PA7 (MOSI) | MOSI | Master Out |
| PB6 | CS | SPI Chip Select |
| PB7 | RESET | W5500 Reset |
| PB8 | INT | Interrupt Output |
| 3.3V | 3.3V | Power |
| GND | GND | Ground |
6) Software Environment Setup
필수 요소
STM32CubeIDE 또는 PlatformIO
STM32 HAL 라이브러리
WIZnet W5500 라이브러리
HTTP/HTTPS 클라이언트 코드
mbedTLS (HTTPS용 → MCU에서 TLS 처리)
프로젝트 구조 예
7) Full Code Examples
(1) W5500 초기화 코드
(2) HTTP 요청 코드
(3) HTTPS 요청 코드 예제
HTTPS에서는 TLS Handshake + W5500 raw socket 사용
8) Testing Steps
LAN 케이블을 연결하고 W5500에 전원 공급
STM32에서 SPI 초기화
네트워크 정보(IP/DNS/GW) 적용
Ping으로 W5500의 정상 작동 확인
HTTP 요청 테스트
HTTPS 요청 테스트 (SSL Handshake 확인)
서버 응답 데이터 확인
9) Troubleshooting
| 문제 | 원인 | 해결법 |
|---|---|---|
| Socket OPEN 실패 | SPI misconfig | SPI mode 0인지 확인 |
| DHCP 할당 불가 | GW/DNS 설정 오류 | Static IP 사용 |
| HTTPS Handshake 실패 | TLS 버전 또는 인증서 문제 | 서버 TLS 1.2인지 확인 |
| 데이터 손실 | 버퍼 부족 | 소켓 버퍼 4KB 이상 설정 |
10) Use Cases & Market Potential
산업용 IoT 기기 → 보안 통신 필요
데이터 로거 → HTTPS POST
원격 모니터링 시스템
스마트 미터, 스마트 빌딩
제조 장비의 클라우드 연동
W5500 기반 보안 게이트웨이
WIZnet W5500은 MCU 부하를 낮추면서도 Ethernet 연결을 안정적으로 제공하여
산업용 및 상용 시장에서 활용도가 매우 높습니다.
11) Module/Chip Technical Overview
■ W5500 특징
하드웨어 TCP/IP 스택
8개 소켓 지원
최대 80MHz SPI
TX/RX 버퍼 32KB
IPv4, TCP, UDP, ICMP, ARP 지원
Extremely low MCU load
■ STM32 특징
ARM Cortex-M 기반
고속 SPI 지원
mbedTLS 구동 가능
저전력 및 산업용에 적합
12) Conclusion
본 프로젝트는 STM32 + W5500 조합으로 HTTP/HTTPS 클라이언트 시스템을 구축하는 전체 과정을 정리했습니다.
W5500의 하드웨어 네트워크 스택과 STM32의 효율적 SPI 처리 능력을 결합하면
안정적이고 MCU 부하가 적은 Ethernet 기반 IoT 디바이스를 손쉽게 개발할 수 있습니다.
HTTPS까지 구현하여
보안성, 확장성, 산업용 신뢰성을 모두 확보할 수 있으며,
IoT 제품 개발에 매우 실용적인 아키텍처입니다.

