서브메뉴

본문

라즈베리파이 3 활용 (사물인터넷을 위한)
라즈베리파이 3 활용 (사물인터넷을 위한)
저자 : 정원석
출판사 : 광문각
출판년 : 2018
정가 : 25000, ISBN : 9788970938424

책소개


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

목차


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.2.4 Headless 접속방법
 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

5. 사용 유틸리티
 5.1 SSH 기반
  5.1.1 putty, smarTTY, WinSCP
 5.2 시리얼 터미널
 5.3 Notepad++

6. 원격 데스크톱 연결
 6.1 RDP를 통한 원격 라즈베리파이 접속
 6.2 VNC를 통한 원격 라즈베리파이 접속

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

8. USB 부팅

PART 1 정리


PART 2 파이썬 기본

9. 파이썬 기초
 9.1 파이썬이란 무엇인가?
 9.2 파이썬 언어의 특징
 9.3 파이썬 시작하기
  9.3.1 Python 명령어 사용하는 방법
  9.3.2 IDLE을 사용한 실행방법
  9.3.3 대화창을 통한 실행방법
  9.3.4 파이썬 언어로 프로그램을 실행한다는 의미
 9.4 연산자
  9.4.1 산술 연산자 (+, -, *, /, //, %, **)
  9.4.2 관계 연산자 ( 〈 , 〉, 〈=, 〉=, ==, != )
  9.4.3 논리 연산자 (and, or, not)
  9.4.4 시프트 연산자 ( 〈〈 , 〉〉 )
  9.4.5 비트 연산자 (&, |, ^, ~)
  9.4.6 멤버 연산자 (in, not in)
  9.4.7 객체 비교 연산자 (is)
 9.5 변수와 객체
  9.5.1 변수와 객체의 관계
  9.5.2 다중변수 대입
 9.6 자료형 종류
  9.6.1 수치형
  9.6.2 문자열
  9.6.3 리스트 (list)
  9.6.4 튜플 (tuple)
  9.6.5 딕셔너리 (dictionary)
 9.7 시퀀스 자료형
  9.7.1 인덱싱 (indexing)과 슬라이싱 (slicing)
  9.7.2 더하기 (addition)
  9.7.3 곱하기
  9.7.4 항목 확인 (item check)
  9.7.5 내장함수 (built-in function)
 9.8 프로그램 제어문
  9.8.1 if, elif, else (조건문)
  9.8.2 for (반복문)
  9.8.3 while (반복문)
 9.9 문자열 처리
  9.9.1 문자열 대입
  9.9.2 문자열 합치기
  9.9.3 문자열 반복하기
  9.9.4 개별문자 접근
  9.9.5 문자열 추출
  9.9.6 문자열 포맷 변환
  9.9.7 문자열 처리 내장함수
  9.9.8 문자열, 숫자 상호 변환
  9.9.9 문자열 인코딩 및 디코딩
  9.10 사용자 입력 및 문자열 출력
  9.10.1 사용자 입력
  9.10.2 문자열 출력
 9.11 객체에 대한 참조 및 복사
  9.11.1 객체에 대한 참조
  9.11.2 객체의 복사
 9.12 함수
  9.12.1 함수의 정의
  9.12.2 기본인자 값 전달
  9.12.3 가변인자 함수
 9.13 지역 및 전역변수
 9.14 파일 다루기
  9.14.1 파일 생성
  9.14.2 파일 읽기
  9.14.3 open 함수의 매개변수
 9.15 주석 처리

10. 클래스
 10.1 구성
 10.2 클래스 상속
 10.3 연산자 오버로딩 (overloading)

11. 파이썬 모듈 (module)
 11.1 모듈의 구현 및 사용
 11.2 if __name__ == ‘__main__’ :

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

PART 2 정리

PART 3 리눅스에 대한 이해

13. 리눅스 기반의 라즈베리파이
 13.1 폴더구조
 13.2 프롬프트 구조
 13.3 명령어
  13.3.1 명령어 구조
  13.3.2 명령어 도움말
  13.3.3 자주 사용되는 명령어
 13.4 파일 속성
  13.4.1 파일 유형
  13.4.2 파일 사용 권한
 13.5 패키지 설치 및 관리도구 (apt-get)
  13.5.1 사용방법
  13.5.2 패키지 인덱스 정보
  13.5.3 패키지 정보 및 설치된 패키지 갱신
 13.6 쉘 스크립트
  13.6.1 쉘이란
  13.6.2 쉘 스크립트 예제
 13.7 시작 프로그램 등록
  13.7.1 /etc/rc.local 파일
  13.7.2 update-rc.d 명령
 13.8 루트 계정을 통한 SSH 접속
  13.8.1 루트 계정 활성화
  13.8.2 sshd_config 파일 수정

14. 리눅스 장치
 14.1 장치 종류
  14.1.1 블록 디바이스
  14.1.2 캐릭터 디바이스
 14.2 장치 파일
  14.2.1 USB 디스크 장치 마운트
  14.2.2 파이썬 코드를 이용한 저장 장치 읽기 쓰기
 14.3 시리얼 장치
  14.3.1 serial0 장치
  14.3.2 serial1 장치
  14.4 터미널 장치

PART 3 정리

PART 4 장치 제어

15. 시리얼 통신이란?
 15.1 시리얼 장치
  15.1.1 장치 이름
 15.2 파이썬 모듈 및 WiringPi 라이브러리 설치
  15.2.1 python3-serial 모듈 사용 방법
 15.3 USB 기반 시리얼 통신
  15.3.1 외부 장치와 USB 기반 시리얼 통신하기
  15.3.2 파이썬 기반의 시리얼 통신 프로그램
  15.3.3 C 언어 기반의 시리얼 통신 프로그램
 15.4 UART 기반 시리얼 통신(확장핀 사용)
  15.4.1 환경 설정 파일
  15.4.2 UART 핀 연결
  15.4.3 명령어 기반 동작 테스트
  15.4.4 파이썬 기반의 시리얼 통신 프로그램(1)
  15.4.5 파이썬 기반의 시리얼 통신 프로그램(2)
  15.4.6 C 언어 기반의 시리얼 통신 프로그램
 15.5 블루투스 기반 시리얼 통신
  15.5.1 페어링 과정
  15.5.2 연결 과정
  15.5.3 사용에 문제가 있을 경우
  15.5.4 스마트폰과의 데이터 송수신
  15.5.5 파이썬 기반의 시리얼 통신 프로그램
  15.5.6 C 언어 기반의 시리얼 통신 프로그램

16. 하드웨어 제어
 16.1 하드웨어 제어를 위한 프로그램 설치
  16.1.1 rpi.gpio 모듈 설치
  16.1.2 WiringPi 라이브러리 설치
 16.2 GPIO 제어
  16.2.1 rpi.gpio를 이용한 제어
  16.2.2 WiringPi를 이용한 제어
 16.3 인터럽트 제어
  16.3.1 rpi.gpio를 이용한 제어
  16.3.2 WiringPi를 이용한 제어
 16.4 PWM 제어
  16.4.1 pwm을 이용한 DC 모터 제어
  16.4.2 max14870 모듈을 사용한 모터 제어
 16.5 SPI 제어
  16.5.1 라즈베리파이에서의 SPI 사용
  16.5.2 bmp280 모듈 제어 (온도 및 기압 센서)
 16.6 I2C 제어
  16.6.1 라즈베리파이에서의 I2C 사용
  16.6.2 mpu-6050 모듈 제어 (가속도 및 자이로 센서)

17. 카메라 제어
 17.1 카메라 설정 및 파이썬 모듈 설치
 17.2 카메라 프리뷰 및 캡쳐
 17.3 카메라 녹화

PART 4 정리

PART 5 클라우드 서비스 활용 및 웹 서버 구축

18. 클라우드 기반의 서비스 활용
 18.1 클라우드란
 18.2 ThingSpeak
  18.2.1 ThingSpeak 사용법
  18.2.2 파이썬 기반의 클라우드 서비스 활용

19. 플라스크 기반의 웹 서버 구축 및 하드웨어 제어
 19.1 웹 서버란?
 19.2 플라스크
  19.2.1 플라스크 설치
  19.2.2 간단한 웹 서버 구현
 19.3 웹 서버 기반의 하드웨어 제어

PART 5 정리