자바로 구현하는 사물인터넷 프로젝트!
이 책은 기존의 라즈베리 파이 활용서와 달리 사물인터넷이라는 관점에서 전자부품과 자바로 사물을 만드는 방법과 인터넷 프로토콜을 통해 사물과 사람, 사물과 사물간에 상호 연동하는 방법을 중점적으로 설명한다.
이 책에서는 기본적인 전자부품뿐만 아니라 자바 8 SE 임베디드에 대한 실행 환경 구축, 통합 개발 환경을 이용한 개발, Device I/O API, CoAP과 MQTT를 이용한 통신 방법을 상세히 설명하고 있다. 특히 그동안의 개발 경험을 토대로 한 자동 제어 예제를 통해 사물인터넷에 대한 이해를 돕고 제품 개발의 기초를 알려준다.
★ 이 책에서 다루는 내용 ★ - 사물인터넷의 유사 기술 및 시장 동향 - 사물인터넷 프로토콜 및 자바 임베디드 솔루션 - 자바 8 SE 임베디드 패키징 - 넷빈즈를 이용한 임베디드 자바 개발 환경 구축 - LED, 가변 저항, 버튼, ADC, DAC 등 전자부품에 대한 설명 - OpenJDK의 Device I/O API를 이용한 센서 및 액추에이터 제어 - CoAP 프로토콜 소개 및 리소스, 감시, 탐색에 대한 구현 방법 - MQTT 프로토콜 및 JMS 연동과 MQTT 웹소켓 구현
상세 이미지
양성일
16년간 자바 프로그래머로 기업 솔루션, 홈 네트워크, 전자상거래, 검색엔진, 보안, 스마트폰 앱, 빌딩 자동 제어, 에너지 관리 등 다양한 분야의 소프트웨어를 개발했다. 특히 2001년에 OSGi 프레임워크를 기반으로 홈 네트워크 솔루션 개발에 참여했고 2010년 11월에 ADK, 아두이노 보드를 기반으로 한 오픈소스 하드웨어 플랫폼을 개발했으며 관련 지식과 정보를 여러 사람들과 공유하기 위한 하드로이드(http://www.hardroid.net)를 운영하면서 메이커(Maker)로 활동하고 있다. 현재는 상명대학교 그린에너지 연구소에서 빌딩 자동제어와 에너지 관리에 대해 연구하고 있다.
- ▣ 01장: 사물인터넷과의 만남
- 1-1 사물인터넷 소개
- 사물인터넷이란?
- 유사 기술
- 사물의 의인화
- 센서
- 통신
- 액추에이터
- 임베디드 시스템
- 임베디드 시스템이란?
- 임베디드 시스템의 종류
- 사물인터넷 동향
- 스레드 그룹(Thread Group)
- 올신 얼라이언스
- 오픈 인터커넥트 컨소시엄
- 산업 인터넷 컨소시엄
- 국제 인터넷 표준화 기구
- 블루투스 SIG
- 사물인터넷 프로토콜 소개
- 6LowPAN
- DTLS
- CoAP
- MQTT
- XMPP
- AMQP
- DDS
- LWM2M
- IEEE 802.15.4
- NFC
- ANT
- ZigBee
- 블루투스
- BLE
- 사물인터넷이란?
- 1-2 자바 임베디드
- 자바 ME 임베디드
- GCF
- MEEP 8
- Device I/O API
- 자바 SE 임베디드
- 자바 가상 머신
- 자바 SE 임베디드 프로파일
- 자바 임베디드 스위트
- 그 밖의 자바 임베디드 솔루션
- 임베디드를 위한 이벤트 프로세싱
- 자바 카드
- 안드로이드
- 자바 ME 임베디드
- 1-1 사물인터넷 소개
- ▣ 02장: 개발 환경 만들기
- 2-1 오픈소스 하드웨어 플랫폼
- 오픈소스 하드웨어 플랫폼
- 아두이노
- 라즈베리 파이
- 비글보드
- 자바의 라즈베리 파이 지원
- 오픈소스 하드웨어 플랫폼
- 2-2 라즈베리 파이에 자바 설치하기
- 호스트 컴퓨터에 자바 SE 임베디드 설치
- 다운로드
- 압축 풀기
- 디렉터리 구조
- 환경변수 설정
- 자바 SE 임베디드 패키징
- jrecreate 명령어
- 도움말 옵션(--help, -h)
- 디렉터리 지정 옵션(--dest, -d)
- 자바 가상 머신 옵션(-vm)
- 프로파일 옵션(--profile, -p)
- 확장 옵션(--extension, -x)
- 디버그 옵션(--debug, -g)
- 그 밖의 옵션
- 자바 실행 환경 만들기
- 예제 설명 및 라이브러리 선택
- 프로파일 선택
- 자바 실행 환경 만들기
- 네트워크 설정 및 자바 실행 환경 구성
- 라즈베리 파이의 고정 IP 설정
- 라즈베리 파이의 SSH 활성화
- PUTTY 설치
- WinSCP 설치
- 자바 실행 환경 설치
- 호스트 컴퓨터에 자바 SE 임베디드 설치
- 2-3 개발 환경 구축
- 통합 개발 환경 설치
- 넷빈즈 설치
- 자바 실행 환경 설정
- 애플리케이션 개발 및 디버깅
- 프로젝트 생성 및 코드 작성
- 실행 및 디버깅
- 통합 개발 환경 설치
- 2-1 오픈소스 하드웨어 플랫폼
- ▣ 03장: 사물 만들기
- 3-1 준비하기
- 하드웨어 플랫폼
- 자동 제어
- 사물 만들기
- 라즈베리 파이
- ARM
- GPIO
- 전자 부품
- 전압과 전류
- 저항
- LED(Light Emitting Diode)
- 브레드보드
- 점퍼선
- 하드웨어 플랫폼
- 3-2 Device I/O
- Device I/O 설치
- 소스코드 다운로드
- 자바 SE 임베디드에 설치
- Device IO를 호스트 PC에 복사
- Device IO 라이브러리를 클래스 경로에 추가
- Device IO 설정 파일 자동 복사 설정
- Hello World(LED 깜박이기)
- Device I/O 살펴보기
- Device I/O 아키텍처
- Device I/O API
- Device I/O 설치
- 3-3 GPIO 다루기
- 7 세그먼트 표시하기
- 버튼 입력 받기
- 푸시 버튼의 이벤트 수신
- 이벤트 모델
- 3-4 아날로그 입출력
- SPI 통신
- 라즈베리 파이의 SPI 활성화
- MCP 49X1 소개
- MCP 4911을 이용한 LED 밝기 조정
- MCP3002 소개
- 가변 저항 값 읽기
- 폴링
- 3-5 UART 통신
- UART
- 라즈베리 파이의 UART 설정 변경
- 아두이노 통신
- UART 연결
- 아두이노 스케치 개발
- 에코 클라이언트 개발
- PC와의 연결
- USB 시리얼 케이블
- 드라이버 설치
- USB 시리얼 케이블 연결
- 에코 서버 개발
- 예제 실행
- 3-6 단순한 자동 제어 만들기
- 회로도
- 관제점 관리자
- 관제점
- DI(Digital Input) 관제점
- DO(Digital Output) 관제점
- AI(Analog Input) 관제점
- AO(Analog Output) 관제점
- 관제점 관리자
- 명령어 처리기
- UART CLI 만들기
- UART 콘솔
- 프로그램 실행
- 3-1 준비하기
- ▣ 04장: 사물과 대화하기
- 4-1 CoAP을 이용해 대화하기
- CoAP란?
- CoAP 구조
- 사물과 대화하기
- CaAP 메시지
- CoAP 요청과 응답
- CoAP의 URI
- CoAP 메서드
- Californium
- Californium 클래스
- 넷빈즈 프로젝트에 Californium 라이브러리 추가
- 클라이언트 프로젝트 생성
- Hello CoAP
- CoAP 서버 구현
- HelloWorld CoAP 클라이언트 구현
- HelloWorld CoAP 실행
- 비동기 호출
- 리소스 감시
- CoAP 서버 예제에 감시 기능 지원 추가
- 감시 CoAP 클라이언트
- 감시 실행
- 리소스 탐색
- 리소스 탐색 클라이언트
- 탐색 실행
- 자동 제어 CoAP 서버 만들기
- JSONP
- 관제점 리소스
- 관제점 CoAP 서버
- CoAP 서버 실행
- CoAP 테스트를 위한 Copper
- Copper 설치
- 자동제어 CoAP 서버 실행
- Copper를 통한 자동 제어 실행
- CoAP란?
- 4-2 MQTT 비동기 메시징 시스템 활용
- MQTT란?
- MQTT 네트워크 구조
- 통신을 위한 단계
- 토픽
- 필터링
- QoS 및 보안
- ActiveMQ
- ActiveMQ 설치
- MQTT 활성화
- ActiveMQ 실행
- Paho
- Paho 클래스
- Hello MQTT
- 라이브러리 추가
- 전송 클라이언트(Publisher)
- 수신 클라이언트(Subscriber)
- 실행
- 토픽 필터링을 이용한 전송자 구분
- 토픽 정의
- 에코 클라이언트
- 전송 클라이언트
- 에코 실행
- 자동 제어 서버의 MQTT CLI 만들기
- MQTT 명령어 처리기
- MQTT 콘솔
- 빅데이터 처리기
- MQTT CLI 실행
- JMS와의 연동
- ActiveMQ의 JMS 활성화
- JMS와 MQTT 간 토픽 및 메시지 매핑
- JMS 콘솔
- 프로그램 실행
- HTML5의 웹 소켓을 이용한 연동
- ActiveMQ의 웹 소켓 지원
- Paho 자바스크립트 파일 다운로드
- 웹소켓을 이용한 Paho 자바스크립트 클래스
- 웹 콘솔 사용자 인터페이스
- AngularJS
- 웹 클라이언트 프로젝트 생성
- 뷰(View)
- 컨트롤러(Controller)
- 구글 크롬 설치
- 프로그램 실행
- MQTT란?
- 4-1 CoAP을 이용해 대화하기