라즈파이에서 HelloWorld!
7501 단어 raspbianRaspberrypi3Node.js
소개
안건으로 라즈파이를 사용해 Bluetooth 통신시키거나 센서 붙이고 환경 정보 취하거나 하는 기회가 많아져 왔으므로 비망록으로서 라즈파이 관련의 기사를 써 가려고 생각합니다.
우선은 도입편으로서 라즈파이상에 Web서버를 시작해 PC 브라우저로부터 액세스 해 HelloWorld!라고 표시시키는까지의 순서입니다. 라즈파이용 표준 OS인 Raspbian 설치부터 서버 설정까지 썼습니다.
준비하는 것
라즈파이의 초기 설정
Raspbian 설치
Raspbian 사이트 에서 RASPBIAN STRETCH LITE 이미지를 다운로드합니다 (GUI는 필요하지 않으므로 여기에서는 경량 버전을 사용합니다).
PC에 SD 카드를 꽂아 이미지를 씁니다.
diskutil list
sudo diskutil unmountDisk /dev/disk2
sudo dd bs=1m if=/path/to/img of=/dev/disk2
SSH 활성화
디폴트라면 SSH를 사용할 수 없기 때문에 사용할 수 있도록 해 둡니다.
운영 PC에 SD 카드의 boot 볼륨을 마운트하여 SSH 활성화 파일을 만듭니다.
cd /Volumes/boot
touch ssh
라즈파이 설정
라즈파이에 SD 카드를 꽂아 유선 LAN, 전원을 연결합니다.
조작용 PC에서 라즈파이의 IP를 조사합니다.
라즈파이의 MAC 주소는 b8:27:eb로 시작하는 것 같습니다.
arp -a | grep b8:27:eb
위에서 나온 IP 주소에 SSH로 연결할 수 있으면 OK입니다.
ssh [email protected]
# 初期パスワードはraspberryです。
Raspbian 초기 설정
※이후의 커멘드는 root로 전환하고 나서 실시하는 상정으로 쓰고 있습니다.
미들웨어 업데이트 및 필요한 미들웨어를 적절하게 설치합니다.
apt-get update
apt-get upgrade -y --fix-missing
apt-get install vim git -y
Wi-Fi에 연결하고 싶은 경우는 raspi-config의 2 Network Options로 SSID등의 등록을 할 수 있습니다.
raspi-config
DHCP로 IP가 바뀌면 번거롭기 때문에 IP를 고정합니다.
# 例
cat << EOS >> /etc/dhcpcd.conf
interface wlan0
static ip_address=172.17.1.113/16
static routers=172.17.0.1
EOS
HelloWorld!
Node.js 및 npm 설치
먼저 apt로 설치합니다.
apt-get install nodejs npm -y
npm 업데이트.
npm i -g npm
Node.js의 버전 관리로 n을 사용합니다.
npm i -g n
Stable 버전으로 전환.
n stable
apt 관리 Node.js 및 npm 삭제
apt-get purge nodejs npm -y
모듈 초기 설정
npm 초기화 및 Express 설치.
mkdir -p /usr/local/src/helloworld
cd /usr/local/src/helloworld
npm init -f
npm i express
HelloWorld! 프로그램을 작성합니다.
// index.js
const app = require('express')();
app.get('/', (req, res) => res.send('HelloWorld!'));
app.listen(80);
웹 서버 시작.
node .
브라우저에서 액세스하여 HelloWorld!가 표시되면 OK.
프로세스 지속성
웹 서버의 프로세스를 상주시키고 싶은 경우는 Node.js로 쓰여진 forever 라는 라이브러리를 사용하면 편합니다.
글로벌 설치.
npm i -g forever
프로세스 시작.
forever start /usr/local/src/helloworld/index.js
아래와 같은 쉘 스크립트 작성하여 crontab에 등록해 두면 프로세스 감시도 할 수 있습니다.
#!/bin/bash
process_name=/usr/local/src/helloworld/index.js
check_process_log=/var/log/check-process.log
app_log=/var/log/node/helloworld.log
process_running=$(forever list | grep ${process_name} | wc -l)
if [ ${process_running} = 0 ]; then
forever -l ${app_log} -o ${app_log} -e ${app_log} -a start ${process_name} > /dev/null 2>&1
echo "[$(date +%FT%T%:z)] ${process_name} has started." >> ${check_process_log} 2>&1
else
echo "[$(date +%FT%T%:z)] ${process_name} is already running." >> ${check_process_log} 2>&1
fi
결론
라즈파이의 셋업으로부터 브라우저로 HelloWorld! 표시까지 할 수 있었으므로 다음번은 Bluetooth 사용해 여러가지 해 보고 싶습니다.
이상
Reference
이 문제에 관하여(라즈파이에서 HelloWorld!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hikida/items/c6124ce960e8004c3957
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
diskutil list
sudo diskutil unmountDisk /dev/disk2
sudo dd bs=1m if=/path/to/img of=/dev/disk2
cd /Volumes/boot
touch ssh
arp -a | grep b8:27:eb
ssh [email protected]
# 初期パスワードはraspberryです。
apt-get update
apt-get upgrade -y --fix-missing
apt-get install vim git -y
raspi-config
# 例
cat << EOS >> /etc/dhcpcd.conf
interface wlan0
static ip_address=172.17.1.113/16
static routers=172.17.0.1
EOS
Node.js 및 npm 설치
먼저 apt로 설치합니다.
apt-get install nodejs npm -y
npm 업데이트.
npm i -g npm
Node.js의 버전 관리로 n을 사용합니다.
npm i -g n
Stable 버전으로 전환.
n stable
apt 관리 Node.js 및 npm 삭제
apt-get purge nodejs npm -y
모듈 초기 설정
npm 초기화 및 Express 설치.
mkdir -p /usr/local/src/helloworld
cd /usr/local/src/helloworld
npm init -f
npm i express
HelloWorld! 프로그램을 작성합니다.
// index.js
const app = require('express')();
app.get('/', (req, res) => res.send('HelloWorld!'));
app.listen(80);
웹 서버 시작.
node .
브라우저에서 액세스하여 HelloWorld!가 표시되면 OK.
프로세스 지속성
웹 서버의 프로세스를 상주시키고 싶은 경우는 Node.js로 쓰여진 forever 라는 라이브러리를 사용하면 편합니다.
글로벌 설치.
npm i -g forever
프로세스 시작.
forever start /usr/local/src/helloworld/index.js
아래와 같은 쉘 스크립트 작성하여 crontab에 등록해 두면 프로세스 감시도 할 수 있습니다.
#!/bin/bash
process_name=/usr/local/src/helloworld/index.js
check_process_log=/var/log/check-process.log
app_log=/var/log/node/helloworld.log
process_running=$(forever list | grep ${process_name} | wc -l)
if [ ${process_running} = 0 ]; then
forever -l ${app_log} -o ${app_log} -e ${app_log} -a start ${process_name} > /dev/null 2>&1
echo "[$(date +%FT%T%:z)] ${process_name} has started." >> ${check_process_log} 2>&1
else
echo "[$(date +%FT%T%:z)] ${process_name} is already running." >> ${check_process_log} 2>&1
fi
결론
라즈파이의 셋업으로부터 브라우저로 HelloWorld! 표시까지 할 수 있었으므로 다음번은 Bluetooth 사용해 여러가지 해 보고 싶습니다.
이상
Reference
이 문제에 관하여(라즈파이에서 HelloWorld!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hikida/items/c6124ce960e8004c3957
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(라즈파이에서 HelloWorld!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hikida/items/c6124ce960e8004c3957텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)