라즈베리파이로 시작하는 Iot세상

33
2015 자자자자 OPEN SEMINAR 자자자자자자자 자자자자 IoT 자자 JAVACAFE 자자자

Transcript of 라즈베리파이로 시작하는 Iot세상

Page 1: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINAR

라즈베리파이로 시작하는IoT 세상JAVACAFE박진현

Page 2: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARWho are you?

군수정보체계 기술지원장교 (10~13)

국방 SI 프로젝트 수행 (13~ 현재 ) 13 년 육군 통합 응용체계 개발사업 13 년 육군 통합 응용체계 유지보수 12~13 년 통합응용체계 기능개선 사업

전자공학 ?회로도 ?임베디드 ?

Page 3: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARIoT?

Internet of Things 정보통신기술 기반으로 모든 사물을 연결해 사람과 사물 , 사물과 사물간에 정보를 교류하고 상호 소통하는 지능형 인프라 및 서비스기술

Page 4: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARIoT! Where??

Wearable Device

Smart Factory

Autonomous Driving Vehicle

Smart Home (Home Automation)

Etc…

Page 5: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Building Automation 난방 , 냉방 , 환기 등 빌딩의 각종 환경요소들을 전자 ( 기 ) 적 으로 제어하는 시스템

빌딩 안 , 밖의 전등제어 출입문 ,CCTV 등 보안제어 화재경보기 등 ..

Page 6: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Unity System Home Manager(1985)

Page 7: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

지금은 ..?

Page 8: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Page 9: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Ninja Sphere

Page 10: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Vivint

Page 11: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

Nest

Page 12: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

LG

Page 13: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSmart Home (Home Automation)

대부분 가정에 홈 네트워크 구축 (Wi-Fi) 스마트폰의 보급 ( 어디서든 인터넷 가능 !) 하드웨어 비용 감소 ( 네트워크 칩셋 , 마이크로 컨트롤러등 ) 하지만 ..

+ =

Page 14: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARDIY Smart Home

복잡하지 않은 하드웨어 제어 다양한 프로그래밍 언어 지원 적당한 성능 풍부한 관련자료

저렴한 비용 = 단돈 5 만원 ! + @..?

Page 15: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARRaspberry Pi

다양한 OS 지원 ( 대부분 Linux 기반 ) 적당한 하드웨어 스팩 (ARM11 700Mhz / 512Mb Ram) 오픈 하드웨어 플랫폼 다양한 래퍼런스 Java Runtime 구성 가능

Page 16: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPi-Home Project

비교적 저렴한 가격으로 스마트 홈 Hub 구성 원격지에서 집 내부의 기기 제어 및 각종 환경 모니터링 무료 SaaS/PasS 및 각종 오픈소스를 이용 , S/W 비용 최소화 하드웨어 플랫폼 업그레이드 (Pi2) 및 주변기기 확장 (arduino) 고려 최소한의 전기 / 전자 공학 지식 ( 불 안 낼 정도만 ) 을 바탕으로 시작

Page 17: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPi-Home Project Goals

기구 제어 전원 제어 ( 릴레이 이용 ) RF 신호 기반 기구 제어

환경 모니터링 온도 / 습도 모니터링 화재경보기

홈 서버 NAS WEB/WAS/DB

Page 18: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPi-Home Project Architecture

• 센싱된 데이터 전송• 장치 제어 결과 반환

• 장치 제어• 모바일 / 데스크톱 브라우져

• Pi4J

• Spring BootApplication

• 호스팅 / 상태값 저장 및 푸시서버 역활

• DDNS 를 지원하는 공유기혹은 고정아이피가 있다면 ..

Page 19: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARGPIO? Relay?

GPIO(General Purpose Input Output) 사용자가 Runtime 에 제어할 수 있는 입 / 출력 핀들의 모음

Relay 전기적 스위치

???

Page 20: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARRaspberry Pi Setting - OS

Raspbian Raspberry Pi + 데비안 리눅스 JDK1.8 / WiringPi 등 각종 라이브러리 내장 (Wheezy 버전 기준 )

설치방법 https://www.raspberrypi.org/downloads/raspbian/

Page 21: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARRaspberry Pi Setting - Network

무선 랜카드 || 유선 랜포트를 이용 XX time 공유기라면 쉽게 DDNS 및 포트포워딩 설정가능

Page 22: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARRaspberry Pi Setting – Hello Pi

pi / raspberry – 기본 ID/PW( 접속 후 필히 변경요망 ) Putty , XShell 등 SSH 터미널을 이용하여 접속

Page 23: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARWiring Pi & Pi4J

불행하게도 하드웨어 제어 코드는 대부분 C 로 되어있음 LED 하나 키는데 몇십 ~ 백라인 코딩 필요 (#include 난무 ) 코드가 하드웨어 플랫폼 및 버전에 종속적

Wiring Pi GPIO 제어를 손쉽게 할 수 있도록 제작된 C 라이브러리 Model B, Model B+, Pi2 등 다양한 버전의 하드웨어 지원 직접 핀을 제어할수 있는 gpio 라는 유틸리티 제공

Page 24: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARWiring Pi & Pi4J

Pi 에서 Java 사용시 각종 하드웨어 제어에 발생 일반적 I/O 라이브러리가 C 언어로 되어있음 이를 개발자가 JNI(Java Native Interface) 랩핑하여 사용

Pi4J 대부분의 I/O 작업들을 ( 하드웨어 제어 포함 ) Java 에서 가능

GPIO Pin 제어 ( 핀 상태 확인 , 핀 이벤트 핸들링 등 ) 시리얼 통신 관련 라이브러리 제공 하드웨어 / 네트워크 관련 정보 제공

Model A 부터 Pi2 까지 모델별 하드웨어 지원

Page 25: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPiFace ? PiFace!

8 개의 Output/Input Pins , 2 개의 Relay, 4 개의 스위치 등 제공 납땜 없이 드라이버로 각종 전선 연결 손쉬운 부착 및 과전류 보호회로 내장 Pi4J 에서 해당 Device 를 구현 완료

Page 26: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSpring Boot + Raspberry Pi

Not War, Just Jar 별도로 WAS 설치 불필요 (Embed Tomcat / Jetty 사용 ) 귀찮은 각종 설정들을 자동으로 해줌 + Raspberry Pi..?(Exclude Pi2)

최초 부팅이 좀 오래 걸림 ( 약 1 분 ) 대용량 서비스는 불가능 ( 동접 100+) 개인용 서버로는 안성맞춤 ( 빠른 개발 사이클 , 쉬운배포 등 )

Pi4J 를 사용 할 경우 하드웨어 제어를 위해 root 권한 필요 sudo java –jar [spring-boot-output].jar &

Page 27: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPi-Home Project (Demo)

사용자가 설정한 온도값 에 맞춰 자동으로 어항 환경 제어 Client : HTML + Javascript (Firebase 호스팅 이용 ) Server : SpringBoot + Raspberry Pi https://pi-home.firebaseapp.com/ ([email protected] /

javacafe)

Page 28: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARPi-Home Project (Demo)

현재 상태값과 시간별 온도값을 Firebase 에 저장

Page 29: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARHtml + JS + Bootstrap (Client..?)

index.html

Page 30: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSpring Boot + Raspberry Pi (Server)

Pom.xml • RelayController.java

Page 31: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARSpring Boot + Raspberry Pi (Server)

RelayController.java • RelayController.java• TemperatureController.-

java• Etc…

Page 32: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARDo It yourself

Raspberry Pi + 아이디어 + 약간의 전기 ( 자 ) 적 지식 평소에 생각하던 아이디어를 실현가능 구형 안드로이드 휴대폰 + pi = 방범용 카메라 Relay + 전기장판 = 최신형 (?) 원격제어 전기장판 Pi + torrent = NAS Etc..

고압 (100v+) 의 전류는 조심히 ! 기왕이면 Pi2 로 ..( 성능이 많이 좋아짐 )

Page 33: 라즈베리파이로 시작하는 Iot세상

2015 자바카페 OPEN SEMINARThank you :D

[email protected]

Sample Source Code https://github.com/kkk0410/pi-home