CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·방탄소년당 ·일본산당 ·소시당 ·개발한당 ·자전거당 ·이륜차당 ·AI당 ·안드로메당 ·소셜게임한당 ·골프당 ·바다건너당 ·걸그룹당 ·곰돌이당 ·나스당 ·콘솔한당 ·가상화폐당 ·키보드당 ·클다방 ·패스오브엑자일당 ·리눅서당 ·퐁당퐁당 ·물고기당 ·전기자전거당 ·노젓는당 ·디아블로당 ·찰칵찍당 ·라즈베리파이당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 라즈베리파이로 내 주식 모니터링 하기 28

35
2023-05-12 15:14:49 수정일 : 2023-05-12 15:18:50 106.♡.194.244
정민군

언젠가 클량에서 본 라즈베리파이용 터치스크린을 직구로 구입했는데, 설치만 해보고 서랍속에 넣어두었다가
최근 주식에 재미를 들려, 주식 모니터링 앱을 만들어 봤습니다.


IMG_1515.jpeg


앱은 저같은 웹 개발자가 접근하기 쉬운 크로스 플랫폼 프레임워크인 electron.js로 만들었고, 주식 시세 API는 한국투자증권 API를 사용했습니다. 대부분의 증권사 API가 DLL, OCX 등을 설치해 제공해서 리눅스에서 사용하기 어려웠고 그나마 한투에서 REST API를 제공하고 있어서 가입하고 App Key를 발급받아 사용했습니다.


개인적인 용도로 사용할거라 서버는 따로 두지 않고, 내가 가진 주식 정보를 JSON으로 GitHub에 올렸습니다.

[
  {
    "name": "나무가",
    "code": "190510",
    "image": "https://www.namuga.co.kr/images/common/logo.png",
    "bought": 16060
  },
  {
    "name": "넥스트칩",
    "code": "396270",
    "image": "https://www.nextchip.com/images/common/footer_logo.png",
    "bought": 11521
  },
  {
    "name": "LG엔솔",
    "code": "373220",
    "image": "https://www.lgensol.com/assets/img/common/logo.svg",
    "bought": 582500
  },
  {
    "name": "삼성전자",
    "code": "005930",
    "image": "https://www.samsung.com/sec/static/_images/common/logo_samsung_black.svg",
    "bought": 65416
  },
  {
    "name": "에코프로비엠",
    "code": "247540",
    "image": "https://www.ecoprobm.co.kr/images/korean/contents/ecoprobm.png",
    "bought": 261250
  }
]

지금은 전부 파란 불입니다 ㅠ 


electron.js로 프로젝트를 생성하고 키오스크 모드의 전체화면으로 설정합니다. 

그리고 webview를 만들어주고, 화면을 구성합니다.

MyScreenshot.png

상단에는 현재 날짜/시간, 우측 동그라미는 웹 소켓으로 데이터를 받을때마다 깜빡거리게 해서 정상적으로 동작하는지 나타냅니다.

아래에는 slick.js로 종목별로 10초마다 슬라이딩되도록 하고, 각 종목의 현재가, 전일대비 등락율, 시가, 최고/최저가, 내 평균 매입 단가 대비 증감금액, 매도/매수 대기 수량을 보여줍니다.


라즈베리파이에서 실행하기 위해 package.json에 아래와 같이 빌드 설정을 해줍니다.

{
  ...
  "build": {
    "linux": {
      "target": {
        "target": "deb",
        "arch": "armv7l"
      },
      "category": "Utility",
      "executableName": "minimon",
      "artifactName": "${productName}-${version}.${ext}"
    },
    "deb": {
      "fpm": [
        "--architecture",
        "armhf"
      ]
    }
  }
}

그리고 빌드!

➜  minimon git:(vertical) ✗ npm run build:linux64

> minimon@1.0.0 build:linux64
> electron-builder --linux --x64

  • electron-builder  version=23.6.0 os=22.4.0
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/Users/jeongminkim/git/minimon/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • rebuilding native dependencies  dependencies=bufferutil@4.0.7, utf-8-validate@5.0.10 platform=linux arch=x64
  • packaging       platform=linux arch=x64 electron=18.3.15 appOutDir=dist/linux-unpacked
  • downloading     url=https://github.com/electron/electron/releases/download/v18.3.15/electron-v18.3.15-linux-x64.zip size=83 MB parts=8
  • downloaded      url=https://github.com/electron/electron/releases/download/v18.3.15/electron-v18.3.15-linux-x64.zip duration=10.838s
  • building        target=snap arch=x64 file=dist/minimon-1.0.0.snap
  • building        target=AppImage arch=x64 file=dist/minimon-1.0.0.AppImage
  • default Electron icon is used  reason=application icon is not set
  • rebuilding native dependencies  dependencies=bufferutil@4.0.7, utf-8-validate@5.0.10 platform=linux arch=armv7l
  • packaging       platform=linux arch=armv7l electron=18.3.15 appOutDir=dist/linux-armv7l-unpacked
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z size=1.6 MB parts=1
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/snap-template-4.0-2/snap-template-electron-4.0-2-amd64.tar.7z size=1.5 MB parts=1
  • downloading     url=https://github.com/electron/electron/releases/download/v18.3.15/electron-v18.3.15-linux-armv7l.zip size=73 MB parts=8
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z duration=1.366s
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/snap-template-4.0-2/snap-template-electron-4.0-2-amd64.tar.7z duration=2.329s
  • downloaded      url=https://github.com/electron/electron/releases/download/v18.3.15/electron-v18.3.15-linux-armv7l.zip duration=9.99s
  • building        target=deb arch=armv7l file=dist/minimon-1.0.0.deb
  • default Electron icon is used  reason=application icon is not set
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/linux-tools-mac-10.12.3/linux-tools-mac-10.12.3.7z size=520 kB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/linux-tools-mac-10.12.3/linux-tools-mac-10.12.3.7z duration=1.408s
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-20150715-2.2.2-mac/fpm-1.9.3-20150715-2.2.2-mac.7z size=5.4 MB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-20150715-2.2.2-mac/fpm-1.9.3-20150715-2.2.2-mac.7z duration=1.939s

dist 디렉토리 안에 빌드된 파일이 나타나며 deb 파일을 라즈베리파이로 옮겨줍니다.

➜  dist git:(vertical) ll
total 468360
-rw-r--r--   1 jeongminkim  staff   1.3K  5 12 12:00 builder-debug.yml
-rw-r--r--   1 jeongminkim  staff   279B  5 12 11:59 builder-effective-config.yaml
-rw-r--r--   1 jeongminkim  staff   364B  5 12 12:00 latest-linux.yml
drwxr-xr-x  22 jeongminkim  staff   704B  5 12 11:59 linux-armv7l-unpacked
drwxr-xr-x  22 jeongminkim  staff   704B  5 12 11:59 linux-unpacked
-rwxr-xr-x   1 jeongminkim  staff    82M  5 12 11:59 minimon-1.0.0.AppImage
-rw-r--r--   1 jeongminkim  staff    52M  5 12 12:00 minimon-1.0.0.deb
-rw-r--r--   1 jeongminkim  staff    70M  5 12 11:59 minimon-1.0.0.snap

이제 라즈베리파이로 접속해서 deb 파일을 설치합니다.

pi@raspberrypi:~ $ sudo dpkg -i minimon-1.0.0.deb
(데이터베이스 읽는중 ...현재 107244개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack minimon-1.0.0.deb ...
Unpacking minimon (1.0.0) over (1.0.0) ...
minimon (1.0.0) 설정하는 중입니다 ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1) ...
Processing triggers for mailcap (3.69) ...
Processing triggers for desktop-file-utils (0.26-1) ...

그리고 다음과 같이 3개의 쉘 스크립트를 작성합니다.

1. on.sh : 스크린 백라이트를 켜줍니다.

#!/bin/sh
echo 1 > /sys/class/backlight/rpi_backlight/brightness

2. off.sh : 스크린 백라이트를 꺼줍니다.

#!/bin/sh
echo 0 > /sys/class/backlight/rpi_backlight/brightness
pkill -ef -9 unclutter

3. turnOnMinimon.sh : 앱을 실행하여 화면에 띄웁니다.

#!/bin/sh
export XAUTHORITY=/home/pi/.Xauthority
export DISPLAY=:0.0
# 마우스 포인터 비활성화
unclutter -idle 0 &
# 앱 실행
minimon

사무실에서 볼거라, 출퇴근 및 점심시간에 맞춰 crontab에 등록해 줍니다.

pi@raspberrypi:~/scripts $ crontab -l
0 9 * * 1-6 /home/pi/scripts/turnOnMinimon.sh
15 12 * * 1-6 sudo /home/pi/scripts/off.sh
30 15 * * 1-6 sudo /home/pi/scripts/off.sh
10 9 * * 1-6 sudo /home/pi/scripts/on.sh
0 13 * * 1-6 sudo /home/pi/scripts/on.sh

짠~ 완성되었습니다.

이제 빨간 불이 켜지기만을 기다려봅니다 또르르..

출처 : https://blog.mingoon.com/17
정민군 님의 게시글 댓글
SIGNATURE
https://blog.mingoon.com
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [28]
귀룽나무
IP 14.♡.27.167
05-12 2023-05-12 15:50:24
·
오~ 이거 좋네요!
정민군
IP 106.♡.194.244
05-12 2023-05-12 16:28:04
·
@KOXX님 만들어놓으니 뿌듯했는데.. 자꾸 파란불만 나와서 마음은 아픕니다 ㅎㅎ
Nunki
IP 223.♡.247.98
05-12 2023-05-12 16:25:23
·
모르는게 약 아닐까요 또르르
정민군
IP 106.♡.194.244
05-12 2023-05-12 16:28:27
·
@Nunki님 그렇겠죠... ㅠ 언젠가 켜질 빨간불만 기다리며..
ㄱㅡ
IP 223.♡.48.27
05-15 2023-05-15 15:36:57
·
@Nunki님 ㅠㅠㅠㅠㅠㅠㅠ
전자기기좋아하는
IP 121.♡.226.178
05-12 2023-05-12 16:27:32
·
근 두달간 주식창 볼때마다 가슴에서 피가 세어나와 요즘은 안보고 있습니다. 파랗다 못해 이젠 멍처럼 거무틱해짐 ㅜㅜ
정민군
IP 106.♡.194.244
05-12 2023-05-12 16:28:38
·
@전자기기좋아하는님 ㅠㅠ 저두요..
초코바
IP 223.♡.56.132
05-12 2023-05-12 18:26:51
·
한투가 REST API 를 지원하는군요.

좋은 정보 감사합니다
정민군
IP 220.♡.217.19
05-12 2023-05-12 19:35:16
·
@초코바님 네 성투하세요!! ^^
삽질대마왕
IP 219.♡.57.154
05-12 2023-05-12 21:39:37
·
@초코바님 저도 이거때문에 한투로 갈아탔습니다. 자동 리벨런싱 해야되서 ㅋ
슈퍼마리옹
IP 121.♡.22.202
05-12 2023-05-12 22:32:09
·
가..갖고싶을정도네요... 봐도 따라 만들 수 없다는게 슬프군요 ㅠ,.ㅠㅋㅋ
정민군
IP 220.♡.217.19
05-12 2023-05-12 23:54:38
·
@슈퍼마리옹님 오.. 같은 슈퍼마리오!! 공부해보시고 도움이 필요하심 쪽지를 주세요...ㅎㅎ
하늘기억
IP 180.♡.36.110
05-12 2023-05-12 23:22:08
·
모르는데 이해하는척 하는 짤 하나 투척해주세요.
정민군
IP 220.♡.217.19
05-12 2023-05-12 23:55:18
·
@하늘기억님 ㅎㅎ
좁은문
IP 107.♡.157.236
05-12 2023-05-12 23:24:06
·
라즈베리 파이는 저점에서 구매하셨군요!
정민군
IP 220.♡.217.19
05-12 2023-05-12 23:56:05
·
@좁은문님 2019년에 영입한 3b+ 입니다.. 이제 늙어서 보내주고 싶은데 4는 아직 비싸네요 ㅠ
일론마스크
IP 222.♡.159.87
05-13 2023-05-13 02:51:31
·
종가 9900원 장중 1만원 돌파, 축하드립니다~
정민군
IP 220.♡.217.19
05-13 2023-05-13 09:50:51
·
@일론마스크님 ㅎㅎ 조금만 더 조금만 더.. 기도중입니다.
한-라-산
IP 185.♡.152.165
05-13 2023-05-13 10:54:03
·
가격변동 (일정 %) 시 노티피케이션 기능도 가능하겠네요?
정민군
IP 221.♡.102.88
05-13 2023-05-13 13:02:25
·
@한-라-산님 네 가능합니다~
길을가다가
IP 211.♡.145.7
05-13 2023-05-13 12:14:35
·
주식으로 돈 많이 버시고, 아이스크림 하나만 사주세요!
정민군
IP 221.♡.102.88
05-13 2023-05-13 13:02:58
·
@길을가다가님 예압! 1번 예약입니다! ㅎㅎ
드래곤카우
IP 14.♡.145.146
05-13 2023-05-13 12:50:44
·
증권사 계정 비밀번호 잊어버리는 방법 판매합니다~~
정민군
IP 221.♡.102.88
05-13 2023-05-13 13:03:28
·
@드래곤카우님 ㅎㅎㅎ 비번 찾기 안되나용?
드래곤카우
IP 14.♡.145.146
05-13 2023-05-13 13:05:47
·
@정민군님 비밀번호 찾는 절차를 복잡하게 (모 코인 거래소처럼 주민번호 뒷자리를 가린 신분증과 함께 찍은 사진 업로드?..) 하면 매우 귀찮아서 안보게 됩니다 ㅎㅎ
정민군
IP 221.♡.102.88
05-13 2023-05-13 13:29:28
·
@드래곤카우님 아.. 그럴만하겠군요 ㅠ
모모는철부지
IP 211.♡.246.122
06-01 2023-06-01 15:00:03
·
오~ 좋네요.
저는 주식보다는 공공데이터에서 제공하는 정보로 환율이랑 거시경제지표 등을 모니터링 할려고 하는데
많은 참고가 되겠습니다.

좋은 정보 감사합니다.
정민군
IP 106.♡.194.244
06-01 2023-06-01 17:29:30
·
@모모는철부지님 오호~ 만드시면 공유해주세요 ㅎㅎ
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.