6/24/2018

MagicMirror and Smart Mirror 테스트

1. MagicMirror 

요즘 Raspberry Pi를 가지고 MagicMirror를 만들것이 유행이 되어서 그냥 따라해보기로 했다.
Magic Mirror는 LCD에  필름을 붙혀 거울처럼 사용하는데, 이 LCD에 각 기능을 넣어 Magic Mirror혹은 Smart Mirror라고 해서 사용하는데, 보기에도 편할 것 같다. 

  • 기본설정 
Raspberry Pi3 준비하고 Raspbian OS를 설치하고 기본설정을 해주자
  https://ahyuo.blogspot.com/2018/06/raspberry-pi3-raspbian-os.html

  • Magic Mirror 최종 결과물 및 설치방법 
  아래와 같이 자세히 설명해주는 Youtube
  https://www.youtube.com/watch?v=pcmjht0Hqvw

이미 소스는 존재하며,이를 이용하여 간단히 구현된 것을 보자

1.1 Node.js (NPM)

Web에 관련된 Node.js 관련사항을 잘 모르기때문에 간단히 아래와 같이 정리만 한다.
npm은 (Node Package Manager)라고 하면  아래 사이트에서 관리되는 것 같다.

NPM 사이트
  https://www.npmjs.com/

npm을 이용하여 Node.js를 관리하는 Package Manager라는데, 정확히 동작원리는 아직 모르겠다.

NPM관련내용
  https://ko.wikipedia.org/wiki/Npm_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)


  • NPM 명령어 확인 
명령어가 많아서 사용을 해보면서 익혀야 할 것 같은데,  추후 Node.js에 관심을 가질때 그때 하도록하자.


$ npm help
Usage: npm 

where  is one of:
    access, adduser, bin, bugs, c, cache, completion, config,
    ddp, dedupe, deprecate, dist-tag, docs, doctor, edit,
    explore, get, help, help-search, i, init, install,
    install-test, it, link, list, ln, login, logout, ls,
    outdated, owner, pack, ping, prefix, profile, prune,
    publish, rb, rebuild, repo, restart, root, run, run-script,
    s, se, search, set, shrinkwrap, star, stars, start, stop, t,
    team, test, token, tst, un, uninstall, unpublish, unstar,
    up, update, v, version, view, whoami

npm  -h     quick help on 
npm -l           display full usage info
npm help   search for help on 
npm help npm     involved overview

Specify configs in the ini-formatted file:
    /home/pi/.npmrc
or on the command line via: npm  --key value
Config info can be viewed via: npm help config


아래와 같이 쉽게 download가 Node.js를 node_modules에서쉽게 관리되는 것 같다.

$ npm install upper-case  # upper-case를 download를 한다고 함 
$ cd node_modules
$ ls upper-case  

아래와 같이 실행을 하면 npm에 관련된 package가 동작이 되는 것 같다.

$ cd ~/project
$ npm start 

NPM은 상위 node_modules는 Project 별로 별도로도 관리가 가능하며, 상위에 등록하고 싶다면 아래와 같이 하면된다.

$ cd ./usr/lib/node_modules/     # Main에 node_modules이 존재한것을 확인 가능 
$ ls
npm  pm2
$ ls /usr/bin/pm2       # 실행 파일 확인 
/usr/bin/pm2
$ ls /usr/bin/npm       # 실행 파일 확인 
/usr/bin/npm

pm2는 Autostart를 위해서 NPM package과 함께 shell script을 만들어 사용하는 것 같다.

NPM
  https://www.w3schools.com/nodejs/nodejs_npm.asp

PM2
  http://pm2.keymetrics.io/docs/usage/startup/

이것을 자세히 알려면 천상 Node.js까지 알아야 할 것 같은데,  그냥 기본 사용법만 알고 추후 시간되면 알아보자.

1.2 Magic Mirror 설치 및 동작 

  • Magic Mirror 및 Smart Mirror Github
  https://github.com/evancohen/smart-mirror
  https://github.com/MichMich/MagicMirror


$ bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"
or 
$ curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash

$ cd ~/MagicMirror
$ npm start 

상위처럼 하면 실행이 되지만 MagicMirror를 보면 내부에 config/config.js를 이용하여 각 Website의 키 값을 설정하도록 되어 있다.

  • pm2의 기능 
pm2를 이용하여 Autostart를 하는데 나에게 있어서 보고 한번 테스트 정도이지 별로 다 이용하고 싶지가 않은기능이다.