라즈베리 파이 4 IoT - lajeubeli pai 4 IoT

“IoT!, 라즈베리파이로 만들고 파이썬으로 코딩하며 배운다!”
420의 분량에 단계별 초수/중수/고수 예제 실습과 실전 프로젝트 만들까지 라즈베리파이의 모든 것이 한 권에 담겨있습니다.

이 책의 주요 내용은 다음과 같습니다.
Chapter 01 라즈베리 파이 시작하기
이 장에서는 라즈베리 파이란 무엇인지 알아보고 이 책을 학습하기 위한 준비물을 알아본 뒤 라즈베리 파이에 라즈비안 운영체제를 설치 후 환경세팅을 한 뒤 간단하게 LED를 작동해봅니다.

Chapter 02 라즈베리 파이를 위한 리눅스 기초 배우기
리눅스는 리눅스 토발즈가 커뮤니티 주체로 개발한 컴퓨터 운영체제입니다. 이 장에서는 운영체제, 원격 접속, 리눅스 파일 시스템, 리눅스 명령어에 대해서 배워봅니다.

Chapter 03 라즈베리 파이를 위한 파이썬 기초 배우기
책에서는 라즈베리 파이와 연동을 위한 예제는 파이썬으로 구현을 합니다. 라즈베리 파이는 다양한 언어 파이썬, C, C++, JAVA, 펄, 루비 등을 지원 하지만 그래도 파이썬이 가장 많이 사용이 되고 IoT 및 빅테이터에 사용을 많이 하는 언어이기 때문에 다른 언어보다 파이썬을 다룹니다. 물론 파이썬만 다루는 교재가 아니기 때문에 여기서는 파이썬의 중급 및 고급 기능은 다루지 않고 라즈베리 파이를 사용하기 위해서 최소한의 범위로 알기 쉽게 설명합니다.

Chapter 04 라즈베리 파이를 위한 전자 기초 배우기
라즈베리 파이를 이용하여 LED, LCD, 각종 센서 등 여러 부품을 제어하기 위하여 기초적인 전자회로 이론 및 각 부품의 데이터시트를 활용하여 회로를 분석하는 방법을 익힙니다.

Chapter 05 라즈베리 파이 GPIO 및 센서 활용하기
파이썬 프로그래밍으로 라즈베리 파이의 GPIO를 제어해 보고 각종 센서 및 부품을 라즈베리 파이에 연결하여 동작시키는 방법을 알아봅니다.

Chapter 06 Flask를 활용하여 센서 제어하기
이 장에서는 Flask를 활용하여 센서를 제어해봅니다. Flask를 설치하고, VSCODE를 설치한 뒤 웹서버를 구축하여 LED를 제어하고, 그 외에도 ip, port, process, cron, daemon에 대해서 학습한 뒤 공공데이터를 활용해 봅니다.

Chapter 07 Maria 데이터베이스 활용하기
많은 자료들을 특정한 규칙에 맞게 대용량의 저장장치에 보관하여 필요한 업무에 사용될 수 있는 것을 데이터베이스라고 할 수 있다. 프로그래밍에 있어 데이터베이스에 있는 자료를 검색하고 가공하고 저장할 수 있는 능력은 꼭 필요한 부분이다. 이 장에서는 데이터베이스에 대한 기본적인 이해를 통해서 필요한 자료를 검색하고, 가공하고, 저장하며 파이썬에서 라즈베리 파이에서 설치된 Maria 데이터베이스 서버에 접속하는 방법에 대해 알아본다.

Chapter 08 블루투스 비콘(Beacon) 사용하기
블루투스 비콘에 대해 알아보고 라즈베리 파이 4를 별도의 추가 없이 비콘으로 변경하여 스마트폰에 비콘스캐너 앱을 설치한 후 라즈베리 파이 근처에 도달했을 때 비콘의 기능을 활용해 라즈베리 파이의 웹서버로 접속해 GPIO를 제어하는 방법을 알아봅니다.

Chapter 09 라즈베리 파이 카메라 활용하기
라즈베리 파이 카메라를 세팅하고 사진 찍기, 동영상 촬영을 해 본 뒤 UV4L 모듈을 이 용하여 웹 스트리밍을 구현해보고 Motion 모듈을 이용하여 모션 감지를 해본다.

Chapter 10 라즈베리 파이 카메라 활용하기
사물인터넷(IoT)에 널리 쓰이는 NodeMCU(ESP8266) 보드에 대해 알아보고 아두이노 IDE를 이용하여 프로그램 하는 방법과 간단한 실습 예제를 통해서 MQTT을 이용하여 사용하는 방법을 배워 봅니다.

Chapter 11 포트포워딩과 슈퍼디엠지로 우리집 LED 제어하기
집에 있는 유무선 공유기와 라즈베리 파이를 이용하여 웹서버를 만들고 공유기의 포트포 워딩이나 슈퍼디엠지 설정으로 어디에 있던지 인터넷으로 웹서버에 접속해 라즈베리 파이로 LED를 켜 고 센서를 확인하는 방법을 알아봅니다.

Chapter 12 OPEN API 활용하기
아마존은 20년 이상 인공 지능에 과감히 투자해왔고, 수많은 기계 학습 알고리즘을 보유하고 있습니다. 그리고 구글은 지능형 가상 비서 Google Assistant를 통해 음성 AI시장을 선도하고 있습니다. 이장에서는 라즈베리 파이를 활용한 아마존 머신 러닝 API와 구글 Assistant를 학습해 봅니다.

Home Assistant는 IoT 대시보드용 플랫폼 소프트웨어입니다. 여기에는 포함되어 있는 add-on 기능을 이용하여 Mosquitto, Node-RED, InfluxDB, Grafana 등 IoT용 소프트웨어을 쉽게 설치하고 관리할 수 있습니다. Home Assistant의 본래 기능은 사용하지 않더라도, add-on 기능만 사용하여도 노력을 많이 줄일 수 있습니다.

 1  Home Assistant OS 사용

라즈베리파이에 Home Assistant OS를 설치합니다. 이 OS에는 미리 Home Assistant가 설치되어 있습니다. 그래서 설치 작업이 극히 간단합니다.

Home Assistant를 실행한 후에 add-on으로 IoT용 소트프웨어를 설치합니다.add-on을 사용하면 IoT용 소프트웨어를 쉽게 설치하고 관리할 수 있습니다. 이 방식에서는 성능이 좋은 하드웨어를 사용하는 것이 좋습니다.

당장 Home Assistant가 필요하지 않은데 그 메뉴를 통해서 IoT 소프트웨어에 접근해야 하는 것은 부담이 될 수도 있습니다. 그러나 편리한 add-on 방식이 그 부담을 충분히 상쇄할 수 있습니다.

이 방식은 라즈베리파이 4B, 라즈베리파이 3B+에서 테스트되었습니다.

라즈베리파이에 Home Assistant OS 설치하여 IoT 서버 만들기

IoT 서버를 가장 간단하게 구성할 수 있는 방법입니다. 리눅스가 아니라 PC 환경에서 모든 작업을 실행할 수 있으므로 추가로 학습해야 할 것이 적습니다. 난이도가 가장 낮은 방식입니다. 성능이 좋은 하드웨어를 사용하는 것이 좋습니다.

 2  도커+Home Assistant

IOTstack을 이용하여 라즈베리파이에 도커Home Assistant를 설치합니다.

Home Assistant를 실행한 후에 add-on으로 IoT용 소트프웨어를 설치합니다.add-on을 사용하면 IoT용 소프트웨어를 쉽게 설치하고 관리할 수 있습니다. 이 방식에서는 성능이 좋은 하드웨어를 사용하는 것이 좋습니다.

당장 Home Assistant가 필요하지 않은데 그 메뉴를 통해서 IoT 소프트웨어에 접근해야 하는 것은 부담이 될 수도 있습니다. 그러나 편리한 add-on 방식이 그 부담을 충분히 상쇄할 수 있습니다.

이 방식은 라즈베리파이 4B, 라즈베리파이 3B+에서 테스트되었습니다.

향후에 도커에 다른 소프트웨어를 설치할 필요가 있을 경우 선택합니다. 리눅스(라즈비안)를 학습할 의향이 없으면 1번 방식이 선택하는 것이 좋습니다.

라즈베리파이에 도커 방식으로 Home Assistant와 IoT용 서버 설치하기

도커 방식으로 모든 소프트웨어를 설치할 수 있는 자유도와 함께 IoT 서버를 가장 간단하게 구성할 수 있는 방법을 동시에 추구한 방식입니다. 리눅스(라즈비안)나 도커 이용을 위한 학습은 필요합니다. 난이도가 비교적 높은 방식입니다. 성능이 좋은 하드웨어를 사용하는 것이 좋습니다.

 3  도커 방식

도커(Docker) 방식으로 IoT 관련 소프트웨어를 손쉽게 설치할 수 있도록 IOTstack이라는 스크립트를 사용합니다. 라즈베리파이 OS, Mosquitto, Node-RED, InfluxDB, Grafana를 설치하는 방법과 외부에서 VPN으로 접속하기가 안내되어 있습니다. 그 외에도 확장할 수 있는 소프트웨어가 많습니다.

이 방식은 라즈베리파이 4B, 라즈베리파이 3B+에서 테스트되었으며 라즈베리파이 Zero W에서는 작동하지 않습니다.

라즈베리파이를 이용하여 IoT 서버 만들기(도커 방식)

IoT 서버를 구성하는 가장 보편적인 방법입니다. 직접 도커에 필요한 소프트웨어를 설치합니다. 리눅스(라즈비안)를 익히고 소프트웨어 전문가를 지향하는 사람에게 추천합니다. 난이도가 비교적 높습니다.

 4  일반 방식

일반적인 방식으로 소트웨어를 설치합니다. 하드웨어 성능이 낮아도 비교적 빨리 설치할 수 있습니다. 현재는 라즈베리파이 OS, Mosquitto, Node-RED를 설치하는 방법과 외부에서 VPN으로 접속하기가 안내되어 있습니다.

성능이 충분하지 않은 하드웨어를 사용하여 기본적인 IoT 서버를 구성할 때 적합한 방식입니다. 라즈베리파이 Zero W도 IoT용 서버로 사용할 수 있는 방법입니다. 하드웨어 성능이 충분하다면 이 방식보다는 위에서 언급된 방식 중에서 선택하는 것이 더 편합니다.

이 방식은 라즈베리파이 Zero W, 라즈베리파이 4B, 라즈베리파이 3B+에서 테스트되었습니다.

라즈베리파이를 이용하여 IoT 서버 만들기(일반 방식)

모든 IoT 서버를 설치하는 것이 아니라 필요한 소프트웨어만 선별해서 설치하여 사용하는 경우에 적합합니다. 리눅스(라즈비안)을 익혀야 하고, 소프트웨어에 맞는 방법으로 소프트웨어를 설치해야 하므로 난이도가 가장 높은 방식입니다.