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

Post on 13-Feb-2017

1.054 views 4 download

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

2015 자바카페 OPEN SEMINAR

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

2015 자바카페 OPEN SEMINARWho are you?

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

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

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

2015 자바카페 OPEN SEMINARIoT?

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

2015 자바카페 OPEN SEMINARIoT! Where??

Wearable Device

Smart Factory

Autonomous Driving Vehicle

Smart Home (Home Automation)

Etc…

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

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

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

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

Unity System Home Manager(1985)

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

지금은 ..?

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

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

Ninja Sphere

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

Vivint

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

Nest

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

LG

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

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

+ =

2015 자바카페 OPEN SEMINARDIY Smart Home

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

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

2015 자바카페 OPEN SEMINARRaspberry Pi

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

2015 자바카페 OPEN SEMINARPi-Home Project

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

2015 자바카페 OPEN SEMINARPi-Home Project Goals

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

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

홈 서버 NAS WEB/WAS/DB

2015 자바카페 OPEN SEMINARPi-Home Project Architecture

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

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

• Pi4J

• Spring BootApplication

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

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

2015 자바카페 OPEN SEMINARGPIO? Relay?

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

Relay 전기적 스위치

???

2015 자바카페 OPEN SEMINARRaspberry Pi Setting - OS

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

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

2015 자바카페 OPEN SEMINARRaspberry Pi Setting - Network

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

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

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

2015 자바카페 OPEN SEMINARWiring Pi & Pi4J

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

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

2015 자바카페 OPEN SEMINARWiring Pi & Pi4J

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

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

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

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

2015 자바카페 OPEN SEMINARPiFace ? PiFace!

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

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 &

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

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

javacafe)

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

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

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

index.html

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

Pom.xml • RelayController.java

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

RelayController.java • RelayController.java• TemperatureController.-

java• Etc…

2015 자바카페 OPEN SEMINARDo It yourself

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

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

2015 자바카페 OPEN SEMINARThank you :D

pjh0410@gmail.com

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