|
CHAPTER 01 AIoT 시스템과 라즈베리파이
1.1 AIoT 개요 1.2 라즈베리파이 개요 1.3 라즈베리파이 하드웨어 구성 1.4 라즈베리파이 응용 1.5 학습 목표와 마일스톤 · 연습문제 CHAPTER 02 무선 통신 가능한 라즈베리파이 만들기 2.1 무선 인터넷 준비 2.2 라즈베리파이 운영체제 설치 2.3 마우스/키보드/디스플레이를 연결하여 무선 인터넷 설정 2.4 헤드리스 라즈베리파이 만들기 2.5 라즈베리파이 끄기 및 재부팅 2.6 시스템 업데이트 및 한글 설치 · 연습문제 CHAPTER 03 라즈베리파이 운영체제 3.1 리눅스 운영체제 3.2 사용자 관리 3.3 파일관리 3.4 프로세스 관리 3.5 유용한 명령 3.6 환경변수 · 연습문제 CHAPTER 04 라즈베리파이 카메라 활용 4.1 카메라 소개 4.2 VNC를 활용한 라즈베리파이에 원격 접속 4.3 USB 카메라 제어 4.4 파이썬 가상환경 4.5 OpenCV와 파이썬으로 카메라 제어 4.6 카메라로 얼굴 인식 · 연습문제 CHAPTER 05 라즈베리파이 카메라에 AI 활용 5.1 인공지능과 컴퓨터 비전 개요 5.2 환경 구축 5.3 객체 인식 5.4 얼굴 인식 · 연습문제 CHAPTER 06 라즈베리파이로 웹 서버 만들기 6.1 웹 서비스 6.2 플라스크 6.3 URL 라우팅 6.4 템플릿 HTML 파일의 동적 변경 6.5 웹 브라우저와 플라스크 사이의 데이터 전송 6.6 플라스크 종합 응용 - 원격 카메라 촬영 및 CCTV 웹 서버 만들기 · 연습문제 CHAPTER 07 메시지 통신과 MQTT 7.1 MQTT를 이용한 메시지 통신 7.2 MQTT 통신의 구성 요소와 통신 과정 7.3 라즈베리파이에 MQTT 활용 7.4 파이썬으로 MQTT 클라이언트 작성 7.5 라즈베리파이와 윈도우 사이의 메시지 전송 · 연습문제 CHAPTER 08 GPIO와 LED, 스위치, 초음파 센서 다루기 8.1 라즈베리파이와 GPIO 8.2 LED 제어 8.3 스위치 제어 8.4 초음파 센서 제어 · 연습문제 CHAPTER 09 직렬 통신 - 온습도 조도 센서 다루기 9.1 컴퓨터와 장치 사이의 통신 9.2 I²C 직렬 통신 9.3 SPI 직렬 통신 · 연습문제 CHAPTER 10 플라스크와 MQTT를 활용한 IoT 응용 시스템 만들기 10.1 라즈베리파이에서 웹과 MQTT 학습 필요성 10.2 라즈베리파이에서 PC 웹 브라우저로 문자열 전송 10.3 PC 웹 브라우저에서 라즈베리파이의 초음파 센서 모니터링 10.4 웹 브라우저에서 라즈베리파이의 LED 끄고 켜기 · 연습문제 CHAPTER 11 실시간 모니터링 차트 만들기 11.1 차트 11.2 Chart.js로 차트 만들기 11.3 동적으로 변하는 웹 차트 만들기 11.4 실시간 모니터링 차트 만들기 · 연습문제 Appendix A 파이썬 프로그래밍 (홈페이지에 PDF로 제공) |
황기태의 다른 상품
|
단순 사물인터넷(IoT)의 세상에서 이제 기기가 스스로 데이터를 수집하고, 수집한 데이터를 인공지능 기술로 분석하고, 판단하며, 학습하는 인공지능 사물인터넷(AIoT)의 세상이 되었습니다. AIoT에서 가장 중요한 기술 중 하나가 카메라에 AI를 활용하는 기술입니다. 이에 본 개정판은 카메라로부터 물체나 사람을 실시간으로 인식하고, 얼굴을 학습시키는 컴퓨터 비전 기술을 다루는 “라즈베리파이 카메라에 AI 활용” 장을 추가하였습니다.
AIoT에 많이 사용되는 라즈베리파이와 아두이노(Arduino)의 두 장치를 유사한 장치로 생각하고 그들의 성능과 용도가 다름을 알지 못하는 사람들이 더러 있습니다. 사실, 아두이노는 몇십 KB의 메모리밖에 가지지 않은 8비트 컴퓨터로서 운영체제 없이, 1개의 간단한 프로그램만 저장할 수 있으며, 전원이 켜지는 순간부터 저장된 프로그램 1개만 실행되는 매우 빈약한 장치입니다. 반대로, 라즈베리파이는 아두이노와 크기나 생김새는 비슷하지만, 1~8GB에 이르는 RAM과 64비트 SoC 칩을 갖춘 싱글 보드 컴퓨터로서 리눅스 운영체제를 탑재하였고 멀티태스킹을 하는 PC 수준의 컴퓨터입니다. 그러므로 AIoT 시스템에서 서버 역할이나 온디바이스(On - Device) AI 기능을 수행할 수 있고, 임베디드 환경에서 강력하고 다양한 기능을 실행할 수 있습니다. 오늘날 대부분의 학생들이 다루는 컴퓨터는 데스크톱 PC, 노트북, 탭 혹은 스마트폰으로서, 이들은 매우 잘 포장되어 있기 때문에, 학생들은 키보드와 마우스, 디스플레이를 통해서만 컴퓨터를 더듬거리듯 경험하고 있습니다. 즉, 컴퓨터 전공자가 컴퓨터의 민낯을 제대로 경험하지 못하고 있습니다. 라즈베리파이는, 학생들이 벌거벗은 컴퓨터와 직접 살갗을 맞대면서 지식과 경험을 얻을 수 있는 유익한 학습 도구입니다. 손으로 만질 수 있고, 키보드나 마우스, 디스플레이 없이 손바닥 크기의 보드 한 장으로도 컴퓨터가 되는 온보드 컴퓨터를 경험할 수 있습니다. 구체적으로 컴퓨터의 하드웨어 인터페이스, 하드웨어와 소프트웨어의 결합, 임베디드 컴퓨팅, AIoT 응용 시스템 등 다양한 지식과 경험이 주어지며, 이것은 전기, 전자, 통신을 다루는 하드웨어 전공자뿐 아니라 소프트웨어를 전공하는 컴퓨터 관련 모든 전공자들에게 해당합니다. 이 책은 이러한 목적을 달성하기 위해 다음과 같은 내용으로 작성되어 있습니다. · 라즈베리파이에 리눅스 운영체제를 설치하고, 마우스, 키보드, 디스플레이 없이 네트워크 연결만으로 사용할 수 있도록 구성하였고, 원격으로 로그인하여 라즈베리파이를 활용하는 방법을 다룹니다(1, 2장). · 라즈베리파이에 설치된 리눅스를 사용하는 방법을 다룹니다(3장). · 라즈베리파이에 웹카메라를 연결하고, OpenCV 라이브러리를 활용하여 사진 촬영, 얼굴 인식, 동영상 스트리밍으로 CCTV 만들기 등 카메라를 제어하는 다양한 응용을 다룹니다(4장). · 라즈베리파이 카메라에 AI를 활용하는 기술을 다룹니다. YOLO, FaceNet 프레임워크를 활용하여 실시간 객체 인식, 얼굴 학습 및 얼굴 인식 기술을 다룹니다(5장). · 라즈베리파이와 외부 세계와 통신하는 2가지 핵심 기법으로 Flask를 활용한 웹 서버 활용과(6장), AIoT의 표준 프로토콜인 MQTT로 메시지를 주고받는 응용을 다룹니다(7장). · LED, 택트 스위치, 초음파 센서, 온습도 센서, 조도 센서 등 기기와 센서를 라즈베리파이에 연결하고 파이썬 프로그램으로 제어하는 방법을 다룹니다(8, 9장). · 앞서 배운 리눅스, 파이썬, 카메라, 센서, 웹, MQTT 등 모든 지식을 활용하는 IoT 응용 시스템 구현 사례들을 다룹니다(10장). · 라즈베리파이에 구축된 센서나 데이터를 실시간으로 웹 차트에 업데이트하는 대시보드 작성을 다룹니다(11장). · 이 책의 모든 프로그래밍은 파이썬을 사용하며, 초판의 “4장 파이썬 언어”는 “부록 A 파이썬 프로그래밍”으로 만들어 PDF로 제공합니다. 이 책은 학습의 효율성을 위해 다음과 같이 특징을 가집니다. 첫째, 이 책은 100% 실습으로 이루어져 있습니다. 리눅스 설치에서부터, 와이파이로 작동하는 라즈베리파이 만들기, MQTT를 활용한 메시지 전송, LED와 초음파 센서 등 다양한 하드웨어 연결 및 제어, 실시간 대시보드 만들기까지 모든 과정이 실습으로 이루어져 있습니다. 둘째, 이 책은 다양한 그림과 설명으로 실습 과정을 체계적으로 기술합니다. 또한 실습의 의미를 이해할 수 있도록 충분한 설명을 담았기 때문에 학생 스스로 실습이 가능합니다. 셋째, 이 책의 학습 범위와 난이도는 대학 2~3학년에 적합하도록 설정되었습니다. 참고로 저자가 속한 학과에서는 2학년 2학기 강의에 편성되어 있습니다. 넷째, 이 책은 총 11장으로 구성되며, 학기 말에 팀/개별 프로젝트 진행을 추천합니다. 이제 이 책을 학습하고 나면 독자들은 여러 지식과 경험을 얻을 수 있습니다. PC나 노트북에서 프로그램만 작성하던 컴퓨터 전공자들이, 실제 CPU와 RAM, 버스, GPIO 핀이 노출된 컴퓨터 보드를 만지고 센서를 연결하고 프로그램으로 제어하는 과정을 통해 신선한 경험을 얻게 됩니다. 또한 가장 밑단의 센서에서부터 CPU와 RAM이 부착된 컴퓨터 보드, 운영체제, 파이썬 애플리케이션에 이르는 수직적 계층 구조를 몸소 체험하는 깊은 지식과 경험을 얻게 됩니다. 또한, 카메라와 영상을 다루는 AI 기술에 대한 기초 지식을 얻게 됩니다. 마지막으로 라즈베리파이, MQTT 브로커, 플라스크 웹 애플리케이션, 웹 브라우저, 메시징, AI 등이 결합된 실제 세상의 AIoT 응용 시스템의 구현 경험을 통해 확장된 시야를 얻게 됩니다. 저자는 이 책에 대학생이 라즈베리파이를 통해 알아야 할 기본 학습 내용과 AI 기초를 완벽히 담으려고 노력하였고 100% 실습으로 만들었습니다. 컴퓨터 관련 다양한 전공 학생들이 이 책을 통해 컴퓨터에 관한 지식에 깊이와 너비, 그리고 다양한 응용 세계를 경험하기를 바랍니다. 한편, 라즈베리파이 하드웨어 버전과 운영체제의 버전이 바뀌고, OpenCV 등 여러 라이브러리가 계속 변하고 있어 책의 본문이나 실습 환경이 필요에 따라 달라질 수 있는 점에 유의해 주시기 바랍니다. |