E-MODER KIOSK ๐Ÿ’ณ โ–ป 2ํƒ„

September 23, 2019

logo

๋ฌด์ธ์ฃผ๋ฌธ๊ฒฐ์ œ๊ธฐ ๊ฐœ๋ฐœ๊ธฐ

๐Ÿ’Ž ๋ชฉ์ฐจ

๐ŸŒฑ ์„œ๋ก 

์•ˆ๋…•ํ•˜์„ธ์š”~ ๐Ÿ‘‹

E-MODER KIOSK ๊ฐœ๋ฐœ๊ธฐ 2ํƒ„์ž…๋‹ˆ๋‹ค.

์•ž์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ฉด

  1. Raspberry Pi ํƒ€๊ฒŸ๋ณด๋“œ ํ™˜๊ฒฝ ์…‹ํŒ…
  2. Node Js ์„ค์น˜

๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

2ํƒ„ ์—์„œ๋Š” npm ์„ค์น˜ ๋ฐ ์…‹ํŒ… ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


โฌ† ๋ชฉ์ฐจ


๐ŸŒน ๋ณธ๋ก 

1. express

Node Js๋ฅผ ์„ค์น˜ํ•˜์…จ์œผ๋ฉด

$ npm install -g express

npm ์˜์กด์„ฑ ๋ชจ๋“ˆ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด package.json์— express๋ฅผ ์„ค์น˜ํ•˜์—ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉ์‹œ ์ปค๋งจ๋“œ ๋ช…๋ น์œผ๋กœ Express ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์„ ๋งŒ๋“œ๋Š”๋ฐ ์ˆ˜์›”ํ•˜๋‹ค.

$ express --ejs [Your app name]

express๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Jade ํ…œํ”Œ๋ฆฟ ์—”์ง„์œผ๋กœ ์„ค์น˜๊ฐ€ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ --ejs๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ค์น˜ํ•˜์—ฌ Ejs ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ ์…‹ํŒ…ํ•˜๋„๋ก ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ํด๋”์™€ ํŒŒ์ผ์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

1

2

package.json dependencies ๋ชฉ๋ก์ด๋‹ค.



2. pm2

ํƒ€๊ฒŸ๋ณด๋“œ ๋ถ€ํŠธ์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ ์‹œํ‚ฌ๋ ค๋ฉด

์„œ๋ฒ„ ์‹œ์ž‘ํ•˜๋Š” ๋ถ€ํŠธ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ๋ก๋ถ€ํ„ฐ ํ•ด์•ผํ•œ๋‹ค.

pm2-startup ๋งํฌ ์ฐธ์กฐ

$ pm2 startup
[PM2] You have to run this command as root. Execute the following command:
      sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>

ํ•ด๋‹น ์ปค๋งจ๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ•ด์ค€๋‹ค.

# Check if pm2-<USER> service has been added
$ systemctl list-units

# Check logs
$ journalctl -u pm2-<USER>

# Cat systemd configuration file
$ systemctl cat pm2-<USER>

# /etc/systemd/... ๋””๋ ‰ํ† ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋‚˜์˜ค๋ฉด
$ nano /etc/systemd/system/pm2-pi.service

# ๊ธฐ์ž… ํ›„ ์ €์žฅ
------------------------------------------------

[Unit]
Wants=network-online.target
After=network.target network-online.target

[....]

[Install]
WantedBy=multi-user.target network-online.target

------------------------------------------------

# Analyze startup
$ systemd-analyze plot > output.svg

๋ถ€ํŠธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.



3. chromium-browser

์„œ๋ฒ„๊ฐ€ pm2 startup๋กœ ์ž๋™ ์‹คํ–‰ ๋˜์—ˆ๋‹ค๋ฉด,

์ด์ œ ์„œ๋ฒ„ ์ฃผ์†Œ ex: localhost:3000 ์ด๋ผ๋Š” ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ผœ์ค˜์•ผํ•œ๋‹ค.

# ํฌ๋กœ๋ฏธ์›€ ์„ค์น˜
$ apt-get install -y chromium-browser

๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์—๋Š” ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ € midori๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ,

JavaScript์˜ ๋ชจ๋“  Effect๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š์•„ Chromium์„ ์„ค์น˜ํ•˜์˜€๋‹ค.

$ nano ~/.config/lxsession/LXDE-pi/autostart

# ํ•˜๋‹จ์— ์ถ”๊ฐ€
------------------------------------------------------------

@chromium-browser --incognito --kiosk http://localhost:3000/

------------------------------------------------------------

์„œ๋ฒ„ ์‹คํ–‰, ํŽ˜์ด์ง€ ๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค.


โฌ† ๋ชฉ์ฐจ


๐Ÿฅ€ ๊ฒฐ๋ก 

ํ˜„์žฌ ํƒ€๊ฒŸ๋ณด๋“œ๋ฅผ ์†Œ์ง€ํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„

์ƒ์„ธํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ์ง€ ๋ชปํ•œ์ ์— ๋Œ€ํ•ด ์ง„์‹ฌ์œผ๋กœ ์‚ฌ๊ณผ๋ง์”€๋ถ€ํ„ฐ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ˜“

์ถ”ํ›„์—๋Š” ์ œํ’ˆ์„ ๊ตฌ์ž…ํ•˜์—ฌ ์œ ํŠœ๋ธŒ์— ์—…๋กœ๋“œ๋ฅผ ์•ฝ์† ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿค™

์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ฉด

  1. Express ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ ์…‹ํŒ…
  2. PM2 autostart ์…‹ํŒ…
  3. chromium-berowser ์„ค์น˜ ๋ฐ autostart ์…‹ํŒ…

3ํƒ„ ์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


โฌ† ๋ชฉ์ฐจ



์—ฌ๋Ÿฌ๋ถ„์˜ ๋Œ“๊ธ€์ด ํฐํž˜์ด ๋ฉ๋‹ˆ๋‹ค. (เน‘โ€ขฬ€ใ…‚โ€ขฬ)ูˆโœง


Written by@[AGUMON]
์•„๊ตฌ๋ชฌ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

GitHubFacebook