라즈베리파이로 보일러 제어하기

59
오픈플랫폼으로 보일러 제어하기 with Raspberry Pi MEAN Stack 김태훈 [email protected] 2014.11

Transcript of 라즈베리파이로 보일러 제어하기

Page 1: 라즈베리파이로 보일러 제어하기

오픈플랫폼으로

보일러 제어하기

with Raspberry Pi MEAN Stack 김태훈 [email protected]

2014.11

Page 2: 라즈베리파이로 보일러 제어하기

김태훈����������� ������������������  [email protected]����������� ������������������  NHN����������� ������������������  Technology����������� ������������������  Services����������� ������������������  ����������� ������������������  프론트엔드개발팀장����������� ������������������  SADI����������� ������������������  HTML5����������� ������������������  초빙교수����������� ������������������  Project����������� ������������������  Management����������� ������������������  Professional(PMP)����������� ������������������  페이스북����������� ������������������  프론트엔드개발그룹����������� ������������������  운영����������� ������������������  ����������� ������������������  wit.nts-corp.com����������� ������������������  facebook.com/groups/webfrontend����������� ������������������  

Page 3: 라즈베리파이로 보일러 제어하기

http://blog.initialstate.com/week-internet-things-iot-10172014/����������� ������������������  

IoT Internet of Things 컴퓨터, 모바일기기 뿐만 아니라 가전제품, 자동차, 생활용품 등등 모든 사물(things)을 인터넷에 연결하는 것

IoE Internet of Everythings IoT를 넘어서 사람, 데이터, 프로세스 등등 나머지 99%까지 모두 인터넷에 연결하는 것

Page 4: 라즈베리파이로 보일러 제어하기

http://micrium.com/iot/devices/����������� ������������������  

Page 5: 라즈베리파이로 보일러 제어하기

http://www.itworldcanada.com/blog/how-canadian-organizations-use-the-internet-of-things/97386����������� ������������������  

Page 6: 라즈베리파이로 보일러 제어하기
Page 7: 라즈베리파이로 보일러 제어하기
Page 8: 라즈베리파이로 보일러 제어하기
Page 9: 라즈베리파이로 보일러 제어하기
Page 10: 라즈베리파이로 보일러 제어하기
Page 11: 라즈베리파이로 보일러 제어하기

꼭 사야 해? 나 개발자인데......

만들어 볼 수는 없을까?

만들려면 어케해야하지?

납땜도 해야 하고 전자회로도 만들어야 하나?

Page 12: 라즈베리파이로 보일러 제어하기

내게 필요한 IoT?

HOME

SWEET HOME

겨울은 너무 추워!!! IoT로 집안 보일러를 켜고 꺼보는거야!

Page 13: 라즈베리파이로 보일러 제어하기
Page 14: 라즈베리파이로 보일러 제어하기

가격이 싸-야 작고 가벼워야 무선인터넷은 기본 프로그래밍 할 수 있는 전자장치를 제어 할 수 있는 새로 배울 필요가 (거의)없는

Page 15: 라즈베리파이로 보일러 제어하기

Arduino UNO Rev3 ATMega328 :고성능, 저전력의 8비트 AVR

* 마이크로컨트롤러

16MHz 클럭 스피드

14개의 디지털 In/Out Pin

6개의 아날로그 In Pin

USB-to-serial convert로 프로그래밍

WIFI ???

*AVR:����������� ������������������  Advanced Virtual RISC. 하버드 구조의 RISC 단일칩 마이크로 컨트롤러.

Page 16: 라즈베리파이로 보일러 제어하기

Arduino UNO Rev3 15,000원

Arduino WiFi Shield ?????

Q: 아두이노를 무선인터넷에 연결하려면? A: 확장쉴드가 필요함

120,000원

Page 17: 라즈베리파이로 보일러 제어하기

Micro Controller Unit Board

Page 18: 라즈베리파이로 보일러 제어하기

Raspberry Pi Model B/B++ 700 MHz ARM1176JZF-S CPU 듀얼코어 Broadcom VideoCore IV GPU 512MB 메모리 10/100Mbit 이더넷 / 2-4개의 USB 포트 26-40PIN GPIO / UART, I2C 버스 리눅스 탑재 가능(라즈비안) 45,000원 ~ 55,000원

Page 19: 라즈베리파이로 보일러 제어하기

http://www.electronicspecifier.com/design-automation/innovating-with-the-raspberry-pi-b����������� ������������������  

WiFi + =8,160원

Page 20: 라즈베리파이로 보일러 제어하기
Page 21: 라즈베리파이로 보일러 제어하기

보일러 on/off는?

릴레이 : - 전류가 흐르면 코일이 전자석이 됨 - 전자석이 스위치를 끌어당겨 줌

Page 22: 라즈베리파이로 보일러 제어하기

온도/습도 측정은?

HT-01D : - 정전용량 방식의 습도센서 - 밴드갭 온도센서 - 14bit 디지탈 출력(I2C 방식)

Page 23: 라즈베리파이로 보일러 제어하기
Page 24: 라즈베리파이로 보일러 제어하기

http://www.tristancollins.me/computing/raspberry-pi-arrives/����������� ������������������  

OS 설치 RASPBIAN 다운로드 SD카드에 이미지 쓰기 SD카드를 RPI 삽입 후 부팅 기본설정 locale 설정 무선인터넷 설정 DDNS 설정

Page 25: 라즈베리파이로 보일러 제어하기

Open Source Fullstack JavaScript Platform for Modern Web Applications

Page 26: 라즈베리파이로 보일러 제어하기

Document-Oriented Storage 모든 데이터가 JSON 형태로 저장되며 schema가 없음

Full Index Support RDBMS에 뒤지지 않는 다양한 인덱싱을 제공합니다.

Replication & High Availability 데이터 복제를 통해 가용성을 향상시킬 수 있습니다.

Auto-Sharding Primary key를 기반으로 여러 서버에 데이터를 나누는 scale-out이 가능합니다.

Querying key 기반의 get, put 뿐만이 아니라 다양한 종류의 쿼리들을 제공합니다.

Fast In-Place Updates 고성능의 atomic operation을 지원합니다.

Map/Reduce 맵/리듀스를 지원합니다.

GridFS 별도 스토리지 엔진을 통해 파일을 저장할 수 있습니다.

Page 27: 라즈베리파이로 보일러 제어하기
Page 28: 라즈베리파이로 보일러 제어하기

자바스크립트 기반의 어플리케이션 실행 플랫폼 이벤트 기반, 비동기 I/O, 단일 스레드 루프를 통한 높은 처리 성능 자바스크립트 실행 엔진으로 구글 V8 기본 탑재 다양한 종류의 I/O를 이벤트 기반으로 비동기 처리 HTTP 서버 라이브러리를 포함하고 있어 웹, 네트워크 어플리케이션 개발에 적합

Page 29: 라즈베리파이로 보일러 제어하기
Page 30: 라즈베리파이로 보일러 제어하기
Page 31: 라즈베리파이로 보일러 제어하기

Web Applications Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.

APIs With a myriad of HTTP utility methods and Connect middleware at your disposal, creating a robust user-friendly API is quick and easy.

Performance Express provides a thin layer of features fundamental to any web application, without obscuring features that you know and love in node.js

node.js 환경에서 웹 어플리케이션을 개발하기 위한 프레임워크 node.js의 HTTP API를 추상화. URL 라우팅 기반의 미들웨어 처리 방식 웹 어플리케이션 개발에 필요한 유용한 API 제공

Page 32: 라즈베리파이로 보일러 제어하기
Page 33: 라즈베리파이로 보일러 제어하기

다양한 (클라이언트)웹 어플리케이션 개발에 필요한 구조, 모듈 집합 MVVM HTML 템플릿 지원 two-way data binding 다양한 지시어를 통한 개발 생산성 향상 ng-if, ng-repeat, ng-validate Form, Form validation 관련 도구 제공 DOM 컨트롤 with jQLite

Page 34: 라즈베리파이로 보일러 제어하기
Page 35: 라즈베리파이로 보일러 제어하기
Page 36: 라즈베리파이로 보일러 제어하기

MEAN Stack Architecture SERVER����������� ������������������  

DB����������� ������������������  

CLIENT����������� ������������������  

REST

JSON

JSON

Page 37: 라즈베리파이로 보일러 제어하기

개발

Page 38: 라즈베리파이로 보일러 제어하기

노드 패키지 모듈 설치

Page 39: 라즈베리파이로 보일러 제어하기

router.js

Page 40: 라즈베리파이로 보일러 제어하기

controllers/boiler.js

Page 41: 라즈베리파이로 보일러 제어하기
Page 42: 라즈베리파이로 보일러 제어하기
Page 43: 라즈베리파이로 보일러 제어하기

lib/ht01d.js

Page 44: 라즈베리파이로 보일러 제어하기
Page 45: 라즈베리파이로 보일러 제어하기

controllers/temp_humidity.js

Page 46: 라즈베리파이로 보일러 제어하기
Page 47: 라즈베리파이로 보일러 제어하기
Page 48: 라즈베리파이로 보일러 제어하기
Page 49: 라즈베리파이로 보일러 제어하기
Page 50: 라즈베리파이로 보일러 제어하기
Page 51: 라즈베리파이로 보일러 제어하기
Page 52: 라즈베리파이로 보일러 제어하기
Page 53: 라즈베리파이로 보일러 제어하기
Page 54: 라즈베리파이로 보일러 제어하기
Page 55: 라즈베리파이로 보일러 제어하기
Page 56: 라즈베리파이로 보일러 제어하기
Page 57: 라즈베리파이로 보일러 제어하기
Page 58: 라즈베리파이로 보일러 제어하기

앞으로 할 일

spark로 소형화 3D 프린터로 예쁜 케이스 에어컨 제어

Page 59: 라즈베리파이로 보일러 제어하기

Gracias!