Raspberry Pi Hardware Control with node.js

Ubuntu Korea Community Wiki
121.141.144.198 (토론)님의 2016년 9월 24일 (토) 13:06 판 (→‎node.js로 웹서버 구축)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

개요

  • Raspberry Pi를 활용하여 웹을 이용하여 하드웨어 제어를 해보자.

Stage 1

참여자

1. Preparing, 6. Jan

준비

  • 준비물 체크 및 구입방법 설명
  • OS 설치 방법 등
  • 참가자 닉네임 혹은 이름 등록, 출석체크에는 이니셜로 표기.
  • 역할 분담(위키러, 포토그래퍼 등)
  • GitHub 이용 방법 설명
  • 커리큘럼이 널널한것 같지만, 삼천포를 생각하면 그렇게 널널한편은 아님.

연관 강의

추가 아이디어 : Pi-Phone, Pi-CCTV, Amazon dash

2. What is javascript?, 13. Jan

출석체크

  • Koo, Yeon, PYTELL, YC, Drake

Javascript란 무엇인가?

  • 원래 웹브라우저에서 돌아가는 자바스크립트에 대한 내용 설명
  • 자바스크립트 오픈튜터리얼 홈페이지[1]의 강의 참조

다음 과제

  • 슬라이드 만들어오기(애니메이션 / 디자인은 각자 능력껏)
  • - 좌우로 버튼을 만들어 다음이미지를 볼 수 있게

연관 강의

3. What is node.js?, 20. Jan

출석체크

  • Drake, Yeon, PyTell, YC

node.js란 무엇인가?

  • node.js 오픈튜토리얼의 강의 참조
  • node.js 탄생배경 : 구글의 많은 사람들이 개발, 웹디자이너들이 자바스크립트를 많이 아니까 서버에서도 쓰면 좋지 않을까?
  • node.js는 비동기 소켓이라서 빠르다.(다른 요인도 있긴 있다.) 참조

다음과제

연관 강의

  • 현재 로컬 로케일을 정의하는 방법

<source lang="bash"> sudo dpkg-reconfigure locales </source>

  • nodejs에서 80번 포트를 사용하려면 root 권한이 필요하다.

4. LED && CLCD Control with node.js, 27. Jan

출석체크

  • Drake, Yeon, Koo, PyTell, YC

Character LCD 컨트롤

다음 과제

  • score Board 제작
  • 버튼(reset, A팀, B팀)을 이용해서 점수를 올리고 내리고를 한다.
  • 부가설명 : A팀 버튼을 누르면 A팀 점수가 올라가고, B팀 버튼을 누르면 B팀 점수가 올라간다. 리셋을 누르면 초기화.

연관 강의

5. Basic node.js Server, 3. Feb

출석체크

  • Drake, Koo, PyTell, YC

node.js 서버 기본

연관 강의

  • Wi-Fi 잡는 방법
  1. /etc/wpa_supplicant/wpa_supplicant.conf 에 network 부분을 추가

<source lang="plain"> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1

network={

 ssid="Drake 2.4G"
 psk="비밀번호"

}

network={

 ssid="DHLTOZ"
 psk="비밀번호"

} </source>

  1. /etc/network/interfaces 에 다음의 내용을 추가

<source lang="plain"> allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp

 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

</source>

  1. 재부팅!

다음 과제

6. Web Server with node.js, 17. Feb

출석체크

  • Drake, Koo, PyTell, Yeon, YC

node.js로 웹서버 구축

연관 강의

  • [$ npm install ~] 을 사용하면 현재 디렉토리에만 사용가능하게 되는데(현재 디렉토리에 /node_modules로 다운된다), [$ npm install -g ~] 처럼 -g(글로벌) 인자를 이용하면 모든 디렉토리에서 사용가능하다.

다음 과제

  • node.js로 만든 웹페이지에서 (html언어 : Text Box, Button 등) 문자열을 입력받아 라즈베리파이 LCD에 출력하기

7. Build up my first web LED, 24. Feb

출석체크

  • Yeon, YC, PyTell

웹으로 Character LCD 제어하기

  • 라즈베리파이가 서버가 되는 웹브라우저에 글자를 입력하면 라즈베리파이의 LCD에 글자가 출력해라

연관 강의

  • 스터디 chapter 2 주제: USB마이크를 이용한 음성제어 with raspberry pi (스터디명 : Piri)
    • 관련 아이디어 : 1. 마이크 2개를 이용하여 음성이 큰 쪽으로 향하는 작품

다음 과제

  • 외부 네크워크로 집에 있는 라즈베리파이를 제어하자.
  • message queue, Rabbit MQ

Next Study