다른 명령
개요
데이터는 네이버 금융 API(m.stock.naver.com)에서 실시간으로 가져오고, e-ink 수명 보호를 위해 가격이 바뀔 때만 화면을 갱신하도록 구성했습니다. Waveshare 2.13” 모델 기준이고, 다른 사이즈는 코드 상단에서 모듈만 바꾸면 됩니다.
주요 특징
- 주요 특징
- 데이터 소스: 네이버 모바일 금융 API(m.stock.naver.com/api/stock/{code}/basic) — 별도 API 키 불필요, 응답 안정적
e-ink 보호 로직: • 가격/등락이 바뀌었을 때만 화면 갱신 (해시 비교) • 장중 1분, 장외 30분 주기로 자동 전환 • SIGTERM/SIGINT 수신 시 화면 클리어 후 sleep 모드 진입 화면 구성 (2.7” 264x176 가로 모드): • 상단: 현재 시각 + [장중/장외] 표시 • 종목별 영역에 종목명, 현재가(큰 글씨), ▲▼ 등락폭/등락률, 시가/고가/저가 확인이 필요한 부분
라이브러리 설치
1. 의존 패키지 설치
# 시스템 패키지 sudo apt update sudo apt install -y python3-pip python3-pil python3-numpy fonts-nanum sudo apt install -y python3-spidev python3-rpi.gpio # 파이썬 패키지 pip3 install requests Pillow # SPI 활성화 (raspi-config → Interface Options → SPI → Enable) sudo raspi-config
2. Waveshare e-Paper 라이브러리 설치
코드 상단 libdir 경로가 위와 일치하는지 확인.
다른 모델 사용 시 from waveshare_epd import epd2in7 as epd_module 부분만 변경:
• 2.13”: epd2in13_V3
• 2.9”: epd2in9_V2
• 4.2”: epd4in2
• 7.5”: epd7in5_V2
cd ~ git clone https://github.com/waveshare/e-Paper.git
3. 실행 테스트
python3 stock_monitor.py
4. 부팅 시 자동 실행 (systemd) /etc/systemd/system/stock-monitor.service 파일 생성:
[Unit] Description=Stock Price e-Paper Monitor After=network-online.target Wants=network-online.target [Service] Type=simple User=pi WorkingDirectory=/home/pi/stock_monitor ExecStart=/usr/bin/python3 /home/pi/stock_monitor/stock_monitor.py Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
활성화
sudo systemctl daemon-reload sudo systemctl enable stock-monitor.service sudo systemctl start stock-monitor.service sudo systemctl status stock-monitor.service
로그확인
journalctl -u stock-monitor.service -f