# 월마트의 3.88달러 아날로그 시계를 ESP8266 기반 Wi-Fi 시계로 변환

> Clean Markdown view of GeekNews topic #26553. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26553](https://news.hada.io/topic?id=26553)
- GeekNews Markdown: [https://news.hada.io/topic/26553.md](https://news.hada.io/topic/26553.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-02-10T09:48:40+09:00
- Updated: 2026-02-10T09:48:40+09:00
- Original source: [github.com/jim11662418](https://github.com/jim11662418/ESP8266_WiFi_Analog_Clock)
- Points: 1
- Comments: 1

## Topic Body

- 저가형 **아날로그 쿼츠 시계**를 **ESP8266 모듈**과 **Arduino 스케치**로 제어해 인터넷 시간에 동기화하는 프로젝트  
- **NTP 서버**에서 15분마다 시간을 받아 정확도를 유지하며, **서머타임 자동 조정** 기능을 포함  
- 시계의 **Lavet 스테핑 모터 코일**을 분리해 ESP8266이 제어할 수 있도록 개조하고, **EERAM 칩**을 이용해 전원 차단 시에도 시침·분침·초침 위치를 저장  
- 초기 설정 시 ESP8266이 제공하는 **웹 페이지 인터페이스**를 통해 시계 바늘 위치를 지정하고, 이후에는 상태 페이지에서 **SVG 또는 HTML Canvas**로 시계 상태를 시각화  
- 저가 하드웨어를 활용해 **정확한 네트워크 동기화 시계**를 구현할 수 있는 오픈소스 예시로, **임베디드 IoT 제어 기술**의 실용적 응용을 보여줌  

---
### 프로젝트 개요
- **ESP8266 WiFi Analog Clock**은 WEMOS D1 Mini ESP8266 모듈과 Arduino 스케치를 사용해 **NTP(Network Time Protocol)** 서버에서 지역 시간을 자동으로 받아 표시하는 시스템  
  - 15분마다 NTP 서버에 재연결해 시계의 정확도를 유지  
  - **서머타임(Daylight Saving Time)** 자동 조정 기능 포함  
- 프로젝트는 **저가형 아날로그 쿼츠 시계**를 기반으로 하며, 하드웨어 개조와 소프트웨어 제어를 결합  

### 하드웨어 구성
- 사용된 시계는 **월마트에서 3.88달러에 구입한 아날로그 쿼츠 시계**  
- 시계의 **쿼츠 무브먼트**를 열어 내부 **Lavet 스테핑 모터 코일**을 쿼츠 오실레이터로부터 분리하고, 각 리드선에 ESP8266 연결용 와이어를 납땜  
  - 대부분의 무브먼트는 나사 없이 스냅 방식으로 조립되어 있음  
  - 코일의 선은 머리카락보다 가늘어 매우 취급에 주의 필요  
- 완성된 회로는 **EERAM IC**와 기타 부품을 **퍼포보드(perfboard)** 위에 구성  

### 소프트웨어 동작
- **AnalogClock.ino** 스케치는 ESP8266이 초당 10회 실제 시간과 시계 표시 시간을 비교  
  - 시계가 늦으면 초침을 빠르게 이동시켜 동기화  
  - 시계가 빠르면 실제 시간이 따라잡을 때까지 대기  
- 초침 이동은 **양극성 펄스(bipolar pulse)** 를 Lavet 모터 코일에 인가해 이루어짐  
  - 모터 특성에 따라 **PULSETIME 상수**를 조정해야 하며, 실험적으로 30ms가 적합  
- 저가형 시계에는 바늘 위치 피드백이 없어 전원 차단 시 위치 정보가 손실됨  
  - 이를 해결하기 위해 **Microchip 47L04 Serial EERAM(4Kbit SRAM + EEPROM 백업)** 을 사용  
  - 시침·분침·초침 위치를 매초 저장하고, 재전원 시 복원  

### 초기 설정 및 웹 인터페이스
- 스케치 최초 실행 시 ESP8266이 **간단한 웹 페이지**를 제공해 사용자가 시계 바늘의 초기 위치를 지정  
- 이후 ESP8266은 EERAM에 저장된 데이터를 이용해 바늘 위치를 기억  
- 작동 중에는 **상태 페이지(status page)** 를 제공하며, 다음 세 가지 표시 모드를 지원  
  - **SVG 기반 시계판 그래픽 표시**  
  - **HTML Canvas 기반 시계판 표시**  
  - **텍스트 전용 상태 표시**  

### 라이선스 및 기술 정보
- 프로젝트는 **MIT 라이선스**로 공개  
- 주요 언어 구성은 **C++ 64.1%** , **C 35.9%**  
- GitHub 저장소는 **252개의 스타(star)** 와 **2개의 포크(fork)** 를 보유  
- 관련 주제 태그: **arduino**, **esp8266**, **clock**, **analog-clock**, **ntp**, **hardware-construction**  

### 의의
- 저가형 시계를 **Wi-Fi 동기화형 스마트 시계**로 전환하는 실용적 예시  
- **ESP8266과 Arduino 환경**을 활용한 **정밀 시간 제어 및 웹 기반 인터페이스 구현** 사례  
- **IoT 하드웨어 개조 및 펌웨어 동기화 기술**을 학습하기 위한 오픈소스 참고 자료

## Comments



### Comment 50925

- Author: neo
- Created: 2026-02-10T09:48:40+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46947096) 
- 정말 멋진 프로젝트임  
  특히 흥미로웠던 부분은 **“SRAM with EEPROM backup”** 칩이었음  
  이 칩은 시계 바늘의 위치를 이동할 때마다 영구적으로 저장할 수 있게 해주는데, 일반 EEPROM처럼 **쓰기 수명**을 소모하지 않음  
  단가도 1달러 미만이라 취미나 소규모 프로젝트에 유용한 부품임
  - 이 칩의 작동 원리를 정리해보면 이렇다고 생각함  
    SRAM과 EEPROM이 하나의 패키지 안에 컨트롤러와 함께 들어 있고, 근처에 작은 **커패시터(4.7µF)** 가 있음  
    SRAM은 전원이 유지되는 동안 데이터를 보존하고, EEPROM은 전원이 꺼져도 데이터를 영구 저장하지만 쓰기 횟수 제한이 있음  
    컨트롤러는 전압이 낮아지는 걸 감지하면 SRAM의 내용을 EEPROM으로 즉시 덤프함  
    커패시터는 이 순간 EEPROM에 데이터를 쓸 수 있도록 전력을 공급함  
    전원이 복구되면 EEPROM의 데이터를 다시 SRAM으로 복사함  
    단점은 용량이 4킬로비트로 작다는 점이지만, 1달러로 이런 문제를 해결할 수 있다면 충분히 가치 있음
  - 비슷한 기술인지는 확실치 않지만, Adafruit의 [제품 링크](https://www.adafruit.com/product/1897)도 흥미로움
  - 나는 **FRAM**도 이런 용도로 좋아함  
    특히 디버그 로그를 링 버퍼 형태로 저장해두면, 개발용 PC에 연결되지 않아도 임베디드 시스템의 **크래시 로그**를 남길 수 있어서 유용함
- Walmart의 가격이 $3.88로 보이지만, **지역·사용자별 동적 가격 정책** 때문에 내 지역에서는 $5.92로 표시됨  
  [제품 링크](https://www.walmart.com/ip/Mainstays-Basic-Indoor-8-78-Black-Analog-Round-Modern-Wall-Clock/761592027)
- 우리 집에는 WWVB 신호로 자동 시간 보정을 기대하는 **Seiko 원자시계**가 있음  
  하지만 지금 사는 곳에서는 신호가 너무 약해서 수동 설정이 매우 번거로움  
  그래서 **ESP32와 NTP 서버**를 이용해 전 세계 원자시계 신호를 에뮬레이션하는 [Arduino 코드](https://github.com/tanvach/clocksync)를 직접 만들었음  
  각국의 원자시계 방송 신호의 역사와 차이를 알아보는 것도 꽤 흥미로움
  - 단, WWVB와 같은 주파수로 송신하는 것은 **불법일 가능성**이 높으니 주의해야 함
- 누군가 [이런 프로젝션 시계](https://www.homedepot.com/p/La-Crosse-Technology-5-in-Color-Projection-Atomic-Digital-Alarm-Clock-with-Outdoor-temperature-616-146/203634255)를 개조하는 걸 보고 싶음  
  빨간색 프로젝션 밝기가 밤에 딱 좋지만, **Wi-Fi 동기화**가 안 돼서 NTP나 GPS로 시간을 맞출 수 없음  
  프로젝터 부분이 리본 케이블로 본체에 연결돼 있어서 리버스 엔지니어링하면 재미있을 듯함  
  이상적으로는 천장에 **LED 매트릭스**로 시간 외의 정보도 표시되면 좋겠음  
  그런 제품이 있긴 하지만 [buyfrixos.com](https://buyfrixos.com/)처럼 매우 비쌈
  - 밝기 낮은 버전을 직접 만든 적 있음  
    [내 제작기 링크](https://www.stavros.io/posts/i-made-another-little-bedside-clock/)
  - 링크된 제품은 “Atomic Time” 기능이 있어서 WWVB 신호로 동기화되는 듯함  
    나도 이런 저가형 벽시계를 여러 개 쓰는데, **시간 오차가 거의 없음**  
    NTP보다 지터가 적을 수도 있다고 생각함
  - 나도 WWV/WWVB 시계를 좋아함  
    한 번도 시간을 맞출 필요가 없고, NTP 시계와도 1초 이내로 일치함  
    다만 오븐이나 전자레인지 시계는 꺼버리고 싶음
  - 사실 이런 개조를 하다 보면 부품값과 시간 때문에 결과적으로 **기성품 가격이 합리적**이라는 결론에 이르게 됨
  - Temu에서 산 디지털 시계 몇 개가 있는데, **시간이 점점 빨라지는 문제**가 있음  
    한 달이면 1분 정도 앞서서 Wi-Fi 동기화 기능이 있었으면 좋겠음
- 이런 **해킹 감성**이 너무 좋음  
  요즘 제품들이 점점 폐쇄적으로 변하면서, 단순하고 해킹 가능한 물건을 직접 만드는 게 그리워졌음  
  언젠가 생업에서 벗어나면, **단순하고 신뢰성 높으며 해커 친화적인 가전제품**을 직접 만들고 싶음  
  이런 프로젝트를 보면 정말 감탄스러움
- 손을 덜 더럽히고 싶다면 [Crazy Clock](https://www.tindie.com/products/nsayer/crazy-clock/)을 추천함  
  딸을 위해 샀는데, **불규칙한 똑딱거림**이 공부할 때 방해돼서 지금은 쉬고 있음  
  그래도 꽤 즐거운 경험이었음
  - “Early clock” 모드는 시계를 0~10분 빠르게 유지해서 **지각 방지용**으로 좋음  
    다만 집안에 시계가 여러 개 있으면 하나만 쓰기로 마음먹어야 효과가 있음
- 예산이 좀 더 있다면, 30초마다 **‘쿵’ 소리**가 나는 대형 시계도 있음  
  [Gents Turret Movement 소개](https://waitingtrain.blogspot.com/2015/05/a-large-gents-turret-slave-movement.html)  
  나는 이걸 이용해 [튜닝 포크 기반 전자기 시계](https://www.secretbatcave.co.uk/projects/electromechanical-clock/)를 만들었음  
  정밀한 시간원 대신 **튜닝 포크와 74xx 로직**으로 구동함
  - 이런 **튜닝 포크 시계**는 정말 멋짐  
    왜 Accutron이 아직도 이런 시계를 만들지 않는지 의문임  
    공진 주파수를 이용하는 방식이 **쿼츠 시계와 유사하지만 시각적으로 더 매력적**임
- 스테퍼 모터용 **H-브리지 회로**를 설계할 때는 역전류를 반드시 고려해야 함  
  그렇지 않으면 스파이크로 오동작하거나 **마이크로컨트롤러가 손상**될 수 있음  
  **옵토 트랜지스터**로 게이트 전압을 분리하고, 모터 전원은 별도로 공급하는 게 이상적임
- “€0짜리 폐기물로 €400짜리 영상 편집 데크 만들기”라는 [YouTube 영상](https://www.youtube.com/shorts/KlWYC6mzVkQ)을 봤음  
  [GitHub 프로젝트](https://github.com/timonoko/Jogwheel)도 있음
  - **VCR 컨트롤러를 디지털 입력 장치로 재활용**하는 아이디어가 훌륭함  
    예전 덱이나 LANC 컨트롤러가 아직 많이 남아 있어서 활용 가치가 큼
- 이 프로젝트는 멋지지만, **시간 드리프트**가 생길 가능성이 있어 보임  
  시계가 정확한 시간을 알고 있어도, 실제 구동 속도가 조금씩 어긋나면 누적 오차가 커질 수 있음  
  특히 PULSETIME 상수를 1ms만 잘못 설정해도 하루 만에 차이가 생길 수 있음  
  물론 Lavet 스테퍼 모터는 이론적으로 일정한 **진동수 기반 스텝**을 유지하지만, 마모나 노이즈로 인한 편향이 생길 수도 있음  
  다만 벽시계 수준에서는 무시할 만한 오차일 수도 있음
  - **Lavet형 스테퍼 모터**는 펄스 수로 동작이 제어되므로, 펄스 폭보다는 개수가 중요함  
    [Wikipedia 설명](https://en.wikipedia.org/wiki/Lavet-type_stepping_motor)을 참고하면 이해가 쉬움
  - pulsetime은 단순히 한 스텝을 전진시키는 시간일 뿐임  
    스텝이 누락되지 않는 한 **누적 오차는 발생하지 않음**  
    즉, 스텝 카운트를 정확히 유지하면 충분함
