사물인터넷을 위한 라즈베리파이 3 활용 (개정판)

고객평점
저자정원석
출판사항광문각, 발행일:2018/03/05
형태사항p.388 46배판:26
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9788970938424 [소득공제]
판매가격 25,000원  
포인트 500점
배송비결제주문시 결제
절판도서 및 품절도서 입니다 매장으로 문의바랍니다.
재고 0인 도서는 수량 부족으로 발송지연이 예상되니 주문 전 문의바랍니다.

책 소개


사물인터넷에 대한 아이디어를 구현할 수 있도록
 비전공자도 쉽게 라즈베리파이를 구현할 수 있는 활용서!!!
IT 관련 일을 시작한 지 20년 가까운 시점에 처음으로 책을 저술하게 되었다. 20년 동안 개발 관련 일을 하면서 그간 쌓은 기술 및 노하우를 책을 통해 전달하려 했지만 늘 시간이 부족하다는 핑계로 흐지부지되곤 하였다. 하지만 더 늦으면 안 되겠다는 생각에 책 집필을 가장 우선적으로 진행하기로 마음먹고 현재 화두가 되고 있는 사물인터넷 분야에 가장 적합한 환경인 라즈베리파이에 관한 책을 집필하기로 결정하였다. 필자는 몇 해 전부터 국내 여러 기관에서 라즈베리파이 교육을 해 오고 있었으며 주위에서 라즈베리파이 관련 책 집필에 대한 요구를 많이 받은 상태였기 때문에 이 책을 집필하게 되었다.

책 집필에 대한 결심 후, 독자들에게 유용한 정보를 전달하기 위해 어디부터 어떻게 시작할지 많은 고민을 하였다. 시중에 출간된 관련 서적들도 많이 읽어 보고 빈틈없는 실습 준비 끝에 책의 집필을 시작하였다. 이 책을 저술하면서 가장 중점을 둔 것은 보다 실무적이고 현업에서 많이 사용되는 내용을 담고자 하였다.

이 책은 비전공자라도 오픈소스 플랫폼에 관심이나 프로그래밍에 대한 조금의 지식만 있으면 쉽게 시작할 수 있도록 하였다. 이 책에 나오는 예제들을 따라 해보면 라즈베리파이를 쉽게 다루게 되고 라즈베리파이를 이용하여 본인이 생각하고 있는 아이디어를 쉽게 구현할 수 있는 발판이 될 것이다.

이 책은 라즈베리파이를 제어하기 위해 기초적이고 꼭 필요한 사용법을 시작으로 파이썬 프로그래밍 언어에 대한 내용, 리눅스에 대한 개념, 장치 제어 및 사물인터넷 구현에 핵심 중의 하나인 웹 서버 구현에 관한 내용으로 구성되어 있다. 라즈베리파이에서 많이 사용되는 프로그래밍 언어가 사용하기 쉽고 배우기 쉬운 파이썬인 만큼 이 책의 상당 부분이 파이썬에 대하여 다루고 있다. 이 책에서 언급된 파이썬 관련 부분만 잘 숙지하여도 파이썬 기반의 프로그램을 작성하기에 충분하다고 생각한다.

라즈베리파이의 기본 운영 체제가 리눅스 기반이므로 리눅스에 대한 개념을 전달하려고 하였으며, 이 책의 후반부에는 블루투스를 포함한 시리얼 통신, SPI, I2C, 카메라 등과 같은 장치들을 제어하는 방법을 다루었다. 이러한 장치 제어를 위하여 사용된 예제는 파이썬과 C 언어 기반으로 작성하여 독자들은 장치 제어에 있어 두 언어의 장단점을 이해할 수 있을 것으로 판단된다.

이 책의 마지막 부분에는 사물인터넷 개념과 더불어 웹 서버를 구현하는 방법 및 테스트 절차에 대하여 기술하였다.

이 책에 사용된 실습 기자재들은 여러 쇼핑몰을 통하여 각각 구매할 수도 있지만 국내의 한 쇼핑몰(www.toolparts.co.kr)과 협약하여 부품들을 쉽게 구매할 수 있도록 하였다.

작가 소개

null

 

목 차

PART 1 라즈베리파이 시작

1. 라즈베리파이를 시작하다
1.1 라즈베리파이 (RaspberryPi) 란?
1.2 MagPi 잡지
1.3 오픈 소스 (Open Source) 플랫폼
1.4 라즈베리파이 보드 구조
1.5 보드 케이스
1.6 라즈베리파이 사용에 필요한 기술 및 지식
1.7 운영체제 설치 및 부팅
1.8 운영체제 파티션 구조
1.9 라즈비안 과거 버전

2. Host PC에서 라즈베리파이 연결하기
2.1 콘솔 기반의 제어
2.1.1 HDMI 모니터, USB 키보드, USB 마우스 연결환경
2.1.2 시리얼 연결
2.1.3 /boot/cmdline.txt 파일
2.2 SSH 기반의 제어
2.2.1 LAN 케이블 직접연결
2.2.2 공유기를 통한 LAN 케이블 연결
2.2.3 WiFi를 통한 연결
2.3 라즈베리파이 연결정보 확인하기
2.3.1 라즈베리파이 보드의 물리적 주소 (mac 주소)
2.3.2 공유기를 통한 내부 네트워크 연결정보 확인
2.3.3 포트 및 IP 스캔 유틸리티 사용
2.4 인터넷 연결확인
2.5 update 및 upgrade
2.6 호스트 이름으로 라즈베리파이 접속
2.6.1 삼바(Samba) 설치
2.7 시스템 종료와 재시작

3. 라즈베리파이 기본설정
3.1 raspi-config
3.2 한글 입력기 및 한글폰트 설치

4. 라즈베리파이 시스템 설정
4.1 cmdline.txt, config.txt
4.1.1 cmdline.txt
4.1.2 config.txt

5. 사용 유틸리티
5.1 SSH 기반
5.1.1 putty
5.1.2 smarTTY
5.1.3 WinSCP
5.2 시리얼 터미널
5.3 봉주르 브라우저
5.4 Notepad++

6. 원격 데스크톱 연결
6.1 RDP를 통한 원격 라즈베리파이 접속
6.2 VNC를 통한 원격 라즈베리파이 접속
6.2.1 TightVNCServer 설치
6.2.2 TightVNCServer 접속
6.2.3 VNC 서버 자동실행 (시작 프로그램 등록)
6.2.4 Host PC 클립보드 및 라즈베리파이 컷 버퍼 동기화

7. 나노(NANO) 편집기
7.1 사용법

PART 1 정리

PART 2 파이썬 기본
8. 파이썬 기초
8.1 파이썬이란 무엇인가?
8.2 파이썬 언어의 특징
8.3 파이썬 시작하기
8.3.1 Python 명령어 사용하는 방법
8.3.2 IDLE을 사용한 실행방법
8.3.3 대화창을 통한 실행방법
8.3.4 파이썬 언어로 프로그램을 실행한다는 의미
8.4 연산자
8.4.1 산술 연산자 (+, -, *, /, //, %, **)
8.4.2 관계 연산자 ( 〈 , 〉, 〈=, 〉=, ==, != )
8.4.3 논리 연산자 (and, or, not)
8.4.4 시프트 연산자 ( 〈〈 , 〉〉 )
8.4.5 비트 연산자 (&, |, ^, ~)
8.4.6 멤버 연산자 (in, not in)
8.4.7 객체비교 연산자 (is)
8.5 변수와 객체
8.5.1 변수와 객체의 관계
8.5.2 다중변수 대입
8.6 자료형 종류
8.6.1 수치형
8.6.2 문자열
8.6.3 리스트 (list)
8.6.4 튜플 (tuple)
8.6.5 딕셔너리 (dictionary)
8.7 시퀀스 자료형
8.7.1 인덱싱 (indexing)과 슬라이싱 (slicing)
8.7.2 더하기 (addition)
8.7.3 곱하기
8.7.4 항목 확인 (item check)
8.7.5 내장함수 (built-in function)
8.8 프로그램 제어 문
8.8.1 if, elif, else (조건문)
8.8.2 for (반복문)
8.8.3 while (반복문)
8.9 문자열 처리
8.9.1 문자열 대입
8.9.2 문자열 합치기
8.9.3 문자열 반복하기
8.9.4 개별문자 접근
8.9.5 문자열 추출
8.9.6 문자열 포맷 변환
8.9.7 문자열 처리 내장함수
8.9.8 문자열, 숫자 상호변환
8.9.9 문자열 인코딩 및 디코딩
8.10 사용자 입력 및 문자열 출력
8.10.1 사용자 입력
8.10.2 문자열 출력
8.11 객체에 대한 참조 및 복사
8.11.1 객체에 대한 참조
8.11.2 객체의 복사
8.12 함수
8.12.1 함수의 정의
8.12.2 기본인자 값 전달
8.12.3 가변인자 함수
8.13 지역 및 전역변수
8.14 파일 다루기
8.14.1 파일 생성
8.14.2 파일 읽기
8.14.3 open 함수의 매개변수
8.15 주석처리

9. 클래스
9.1 구성
9.2 클래스 상속
9.3 연산자 오버로딩 (overloading)

10. 파이썬 모듈 (module)
10.1 모듈의 구현 및 사용
10.2 if __name__ == ‘__main__’ :

11. 데코레이터 (decorator)
11.1 함수 꾸미기
11.2 ‘@’ 키워드를 이용한 데코레이터 구현

PART 2 정리


PART 3 리눅스에 대한 이해

12. 리눅스 기반의 라즈베리파이
12.1 폴더구조
12.2 프롬프트 구조
12.3 명령어
12.3.1 명령어 구조
12.3.2 명령어 도움말
12.3.3 자주 사용되는 명령어
12.4 파일 속성
12.4.1 파일유형
12.4.2 파일 사용권한
12.5 패키지 설치 및 관리도구 (apt-get)
12.5.1 사용방법
12.5.2 패키지 인덱스 정보
12.5.3 패키지 정보 및 설치된 패키지 갱신
12.6 쉘 스크립트
12.6.1 쉘이란
12.6.2 쉘 스크립트 예제
12.7 시작 프로그램 등록
12.7.1 /etc/rc.local 파일
12.7.2 update-rc.d 명령
12.8 루트 계정을 통한 SSH 접속
12.8.1 루트 계정 활성화
12.8.2 sshd_config 파일 수정

13. 리눅스 장치
13.1 장치 종류
13.1.1 블록 디바이스
13.1.2 캐릭터 디바이스
13.2 장치 파일
13.2.1 USB 디스크 장치 마운트
13.2.2 파이썬 코드를 이용한 저장장치 읽기 쓰기
13.3 시리얼 장치
13.3.1 serial0 장치
13.3.2 serial1 장치
13.4 터미널 장치

PART 3 정리


PART 4 장치제어

14. 시리얼 통신이란?
14.1 시리얼 장치
14.1.1 장치이름
14.2 파이썬 모듈 및 WiringPi 라이브러리 설치
14.2.1 python3-serial 모듈 사용 방법
14.3 USB 기반 시리얼 통신
14.3.1 외부장치와 USB 기반 시리얼 통신 하기
14.3.2 파이썬 기반의 시리얼 통신 프로그램
14.3.3 C 언어 기반의 시리얼 통신 프로그램
14.4 UART 기반 시리얼 통신 (확장핀 사용)
14.4.1 환경설정 파일
14.4.2 UART 핀 연결
14.4.3 명령어 기반 동작 테스트
14.4.4 파이썬 기반의 시리얼 통신 프로그램 (1)
14.4.5 파이썬 기반의 시리얼 통신 프로그램 (2)
14.4.6 C 언어 기반의 시리얼 통신 프로그램
14.5 블루투스 기반 시리얼 통신
14.5.1 페어링 과정
14.5.2 연결과정
14.5.3 사용에 문제가 있을 경우
14.5.4 스마트폰과의 데이터 송수신
14.5.5 파이썬 기반의 시리얼 통신 프로그램
14.5.6 C 언어 기반의 시리얼 통신 프로그램



15. 하드웨어 제어
15.1 하드웨어 제어를 위한 프로그램 설치
15.1.1 rpi.gpio 모듈 설치
15.1.2 WiringPi 라이브러리 설치
15.2 GPIO 제어
15.2.1 rpi.gpio를 이용한 제어
15.2.2 WiringPi를 이용한 제어
15.3 인터럽트 제어
15.3.1 rpi.gpio를 이용한 제어
15.3.2 WiringPi를 이용한 제어
15.4 PWM 제어
15.4.1 pwm을 이용한 DC 모터 제어
15.4.2 max14870 모듈을 사용한 모터 제어
15.5 SPI 제어
15.5.1 라즈베리파이에서의 SPI 사용
15.5.2 bmp280 모듈 제어 (온도 및 기압 센서)
15.6 I2C 제어
15.6.1 라즈베리파이에서의 I2C 사용
15.6.2 mpu-6050 모듈 제어 (가속도 및 자이로 센서)

16. 카메라 제어
16.1 카메라 설정 및 파이썬 모듈 설치
16.2 카메라 프리뷰 및 캡쳐
16.3 카메라 녹화

PART 4 정리


PART 5 웹 서버 구축

17. 플라스크 기반의 웹 서버
17.1 웹 서버란?
17.2 플라스크
17.2.1 플라스크 설치
17.2.2 간단한 웹 서버 구현

18. 웹 서버 기반의 하드웨어 제어

PART 5 정리

PART 6 사물인터넷

19. 사물인터넷이란?
19.1 M2M과 IoT
19.1.1 M2M (Machine to Machine)
19.1.2 IoT (Internet of Things)
19.2 사물인터넷 구현을 위한 기반기술
19.3 사물인터넷이 적용되는 실례
19.4 사물인터넷 시장전망

PART 6 정리

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우