---
title: "Arduino Smart Desk - SHProject 2"
url: "https://maker.wiznet.io/Alan/projects/arduino-smart-desk-shproject-2/"
markdown_url: "https://maker.wiznet.io/Alan/projects/arduino-smart-desk-shproject-2/md"
type: "UCC: User Created Content"
author: "DeviceCtrl"
author_url: "https://www.instructables.com/Arduino-Smart-Desk-SHProject-2/"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "DeviceCtrl"
original_url: "https://www.instructables.com/Arduino-Smart-Desk-SHProject-2/"
published: "2025-11-28"
language: "en"
likes: 0
views: 1197
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Arduino Smart Desk - SHProject 2

> Arduino Smart Desk - SHProject 2

Original author: DeviceCtrl (source: https://www.instructables.com/Arduino-Smart-Desk-SHProject-2/)

## Article

## Arduino Smart Desk (SHProject 2) 리뷰: 유선 Ethernet 기반으로 완성도를 끌어올린 데스크 자동화

[![Arduino Smart Desk - SHProject 2](https://content.instructables.com/FNX/SZ6S/LXDJ73KI/FNXSZ6SLXDJ73KI.jpg?auto=webp&frame=1&width=563&height=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo1NDowNy4w)](https://content.instructables.com/FNX/SZ6S/LXDJ73KI/FNXSZ6SLXDJ73KI.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo1NDowNy4w)

Instructables의 “Arduino Smart Desk (SHProject 2)”는 책상 환경을 중심으로 **조명 제어, 커튼 제어, 센서 모니터링(온습도/CO)**을 통합한 DIY 자동화 프로젝트다. 단순히 기능을 나열하기보다, 설치 환경과 운영 방식까지 고려해 **안정적인 운용 구조**를 설계했다는 점이 특징이다.

### 1) 구성의 현실성: 제어 + 안전 모니터링을 함께 묶다

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

[![Lighting](https://content.instructables.com/F50/D9Z4/LXDJ79FX/F50D9Z4LXDJ79FX.png?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxODo0MjozOC4w)](https://content.instructables.com/F50/D9Z4/LXDJ79FX/F50D9Z4LXDJ79FX.png?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxODo0MjozOC4w)

이 프로젝트는 책상 상부 조명과 커튼(DC 모터)을 릴레이로 제어하면서, 동시에 DHT11(온습도)과 MQ-7(CO) 센서를 통해 실내 상태를 측정한다. 특히 CO 센서를 포함한 점은 “편의 기능” 중심의 흔한 데모와 달리, 실제 공간 조건(가스 온수기 인접 등)에 기반해 설계를 확장했다는 의미가 있다.

### 2) 커튼 제어 설계: 인터럽트 기반의 명확한 상태 전환

[![Arduino Schematic](https://content.instructables.com/FRE/BR73/LXDJ72Y5/FREBR73LXDJ72Y5.png?auto=webp&frame=1&width=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0MzowMy4w)](https://content.instructables.com/FRE/BR73/LXDJ72Y5/FREBR73LXDJ72Y5.png?auto=webp&frame=1&width=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0MzowMy4w)

커튼은 릴레이 2개를 이용해 모터의 극성을 전환하는 방식이며, 상/중/하단에 **리드 스위치 3개**를 배치하고 커튼 쪽 자석을 이동시켜 위치를 감지한다. 중요한 점은 **attachInterrupt를 이용해 리드 스위치 신호를 즉시 처리**한다는 것이다.
이 방식은 커튼 제어에서 흔히 발생하는 “지연 정지” 문제를 줄이고, 모터 구동 중에도 센서 읽기나 네트워크 응답 같은 다른 작업을 병행할 여지를 만든다. 결과적으로 시스템 동작이 단순 폴링보다 안정적으로 구성된다.

### 3) 통신/데이터 구조: PC 폴링 + DB 적재로 운용을 단순화

[![Curtain Controller](https://content.instructables.com/F1S/V9HZ/LXDJ75CG/F1SV9HZLXDJ75CG.png?auto=webp&frame=1&width=376&fit=bounds&md=MjAyNC0wNi0xMyAxNzozMTo1NC4w)](https://content.instructables.com/F1S/V9HZ/LXDJ75CG/F1SV9HZLXDJ75CG.png?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxNzozMTo1NC4w)

저자는 장치 자체에 UI(디스플레이 등)를 붙이기보다, **PC가 1분 주기로 장치를 폴링하여 값을 수집하고 SQL DB에 저장**하는 구조를 택했다. 설치 위치 제약(특히 CO 센서 배치 특성)을 고려하면 합리적인 접근이다.
또한 통신은 TCP 대신 **UDP 기반 요청/응답**으로 구성해, 연결 관리의 부담을 줄이고 구현을 단순화했다. 홈 네트워크 내부에서 “정기 상태 수집”이 목적일 때는, 이런 형태가 운영과 유지보수 측면에서 장점이 있다(다만 누락 대비 재시도 같은 보완은 고려할 만하다).

### 4) WIZnet 관점: Ethernet Shield 기반(하드와이어드 TCP/IP)이 주는 실무적 이점

[![Curtain Control Continued](https://content.instructables.com/F51/WZI0/LXDJ7805/F51WZI0LXDJ7805.jpg?auto=webp&frame=1&width=546&fit=bounds&md=MjAyNC0wNi0xMyAxODoyNDo0OC4w)](https://content.instructables.com/F51/WZI0/LXDJ7805/F51WZI0LXDJ7805.jpg?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxODoyNDo0OC4w)

이 프로젝트는 Arduino Ethernet Shield를 사용한다. Arduino Ethernet 계열 쉴드는 WIZnet 네트워크 컨트롤러(W5100 계열 또는 Rev2의 W5500 계열)를 기반으로 널리 구성되며, 공통적으로 **하드웨어에서 TCP/IP 처리를 오프로딩**하는 구조를 갖는다.
이 프로젝트처럼 센서/릴레이/인터럽트 제어가 동시에 필요한 환경에서는, 네트워크 스택 부담을 MCU에서 덜어내는 것이 설계 난이도와 안정성에 직접적인 영향을 준다. 즉, Ethernet 쉴드 기반 접근은 “연결만 되는” 수준이 아니라, **제어 루프가 흔들리지 않도록 시스템 자원을 분배**하는 관점에서 의미가 있다.
또한 Cat6 기반 유선 인프라를 전제로 했다는 점은, Wi-Fi 환경에서의 혼잡/신호 변동/재연결 이슈를 줄여 장기 운용에 유리하다.

### 5) 보완점(리뷰 관점)

[![Curtain Controller](https://content.instructables.com/FOW/U6ST/LXDJ72YL/FOWU6STLXDJ72YL.png?auto=webp&frame=1&crop=3:2&width=824&height=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0NDoxMC4w)](https://content.instructables.com/FOW/U6ST/LXDJ72YL/FOWU6STLXDJ72YL.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0NDoxMC4w)

**UDP 신뢰성 보강**: 1분 폴링 구조라면 패킷 누락 시 재시도 정책(예: 2회 재요청)이나 응답 식별용 시퀀스 번호를 추가하면 기록 품질이 올라간다.

**안전/전원 설계**: 릴레이 기반 전원 제어는 배선/절연/전류 용량 등 안전 설계가 핵심이다. 실제 적용 시에는 전원부 구성과 보호(퓨즈, 차단 등)를 프로젝트 문서에 더 분명히 분리해두면 좋다.

**보드/핀 설명의 정리**: Mega를 사용하는 이유는 설득력 있지만, 제작자가 따라 할 때 혼동이 없도록 SPI/인터럽트 핀과 쉴드 결합에 대한 설명을 더 명시하면 재현성이 좋아진다.

### 결론

[![Arduino Ethernet Shield](https://content.instructables.com/FCK/DO4Q/LXDJ72XQ/FCKDO4QLXDJ72XQ.jpg?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0MzowMC4w)](https://content.instructables.com/FCK/DO4Q/LXDJ72XQ/FCKDO4QLXDJ72XQ.jpg?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxNTo0MzowMC4w)

[![Polling and Commanding the Unit](https://content.instructables.com/FKM/2AEC/LXDJ7AX3/FKM2AECLXDJ7AX3.png?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxOTowMDoyMC4w)](https://content.instructables.com/FKM/2AEC/LXDJ7AX3/FKM2AECLXDJ7AX3.png?auto=webp&frame=1&fit=bounds&md=MjAyNC0wNi0xMyAxOTowMDoyMC4w)

Arduino Smart Desk는 조명·커튼 같은 제어 요소와 CO/온습도 모니터링을 하나의 시스템으로 묶어, **실제 생활 환경에서 운용 가능한 형태로 설계**한 사례다. 특히 인터럽트 기반 커튼 제어와, PC 폴링/DB 저장 구조는 “동작 시연”을 넘어 “운용”을 고려한 선택으로 보인다.
여기에 Ethernet Shield(=WIZnet 기반 네트워크 오프로딩)와 유선 인프라를 결합함으로써, DIY 프로젝트에서 흔히 발생하는 통신 불안정/자원 분산 문제를 비교적 단순한 구조로 관리한 점이 이 글의 핵심 가치다.

---

#### Arduino Smart Desk 프로젝트는 무엇을 만들었나요?

**조명과 커튼을 원격으로 제어하고, 온습도·일산화탄소(CO)까지 측정해 기록하는 책상 기반 홈 자동화 시스템입니다.**
릴레이로 조명/모터를 제어하고, DHT11과 MQ-7 센서 값을 주기적으로 수집합니다.

#### 이 프로젝트에서 Ethernet을 사용한 이유는 무엇인가요?

**유선 네트워크는 Wi-Fi보다 통신 품질이 예측 가능하고, 장기간 운용 시 안정성이 높기 때문입니다.**
저자는 집 안에 Cat6를 포설해 유선 인프라를 활용했고, 이를 기반으로 장치를 네트워크에 연결했습니다.

#### 통신은 TCP가 아니라 왜 UDP를 썼나요?

**정기 폴링(1분 주기) 기반의 상태 수집에는 UDP가 구현이 단순하고 연결 관리 부담이 적기 때문입니다.**
PC가 타임스탬프를 보내면 장치가 센서/상태를 응답하는 방식으로 프로토콜을 단순화했습니다.

#### WIZnet 관점에서 이 프로젝트의 장점은 무엇인가요?

**WIZnet 기반 Ethernet Shield는 하드웨어 오프로딩(하드와이어드 TCP/IP)으로 MCU 부담을 줄여, 센서·릴레이·인터럽트 같은 제어 로직의 안정성을 높입니다.**
즉, 네트워크 처리 때문에 메인 제어 루프가 흔들리는 상황을 줄이는 설계에 유리합니다.

---

Source: https://maker.wiznet.io/Alan/projects/arduino-smart-desk-shproject-2/
