책 소개
사물인터넷의 기본부터 실제 작동하는 시스템 설계 구축 실습, 실제 사물인터넷 장치 제작 실습 등 파이썬 프로그래밍의 기본 개념부터 시작해 점차 복잡한 사물인터넷 프로젝트 구현까지 한 권에 모두 담았다.
이 책은 8개의 쳅터로 구성되었고, 각 쳅터의 핵심 내용은 다음과 같습니다.
Chapter 01 파이썬 사물인터넷 시작하기
마이크로 파이썬을 사용하는 방법부터 시작하여 기초 문법에 대해서 알아본다.
Chapter 02 기본 입출력 기능 익히기
마이크로파이썬을 사용하여 하드웨어를 제어하고, 시리얼 통신을 통해 다른 장치와 상호작용하며, 타이머와 쓰레드를 활용하여 효율적으로 하드웨어를 다루는 방법을 알아본다.
Chapter 03 입력장치 및 센서
ESP32와 마이크로파이썬을 활용해 디지털 입력장치, 아날로그 입력장치와 센서를 연결하고 제어하며 데이터를 처리하고 통신하는 방법을 알아본다.
Chapter 04 출력장치 및 모터
ESP32와 마이크로파이썬을 활용해 부저, FND, 4-Digit FND, DC 모터, 서보 모터 등 출력장치와 모터를 제어해보고 활용 방법을 알아본다.
Chapter 05 사물인터넷
ESP32를 활용하여 블루투스 통신, Wi-Fi 통신, 인터넷 시간 표시, 날씨 표시, 공공 데이터 미세먼지, 이메일 보내기, 주식 시세 표시, 비트코인 시세 표시 등 실제 사물인터넷의 다양한 측면을 탐구하고 활용 방법을 알아본다.
Chapter 06 표준 프로토콜
사물인터넷 프로젝트 및 네트워크 통신 개발에 필수 지식인 TCP/IP, UDP, MQTT, 웹 서버 등 다양한 표준 통신 프로토콜을 알아본다.
Chapter 07 사물인터넷 서비스
IFTTT, ThingSpeak, Firebase, 텔레그램(Telegram) 등 인터넷 기반 서비스 및 플랫폼을 활용하여 IoT 프로젝트를 구축하고 제어하는 방법을 알아본다.
Chapter 08 작품만들기
사물인터넷(IoT) 기술을 적용해서 스마트홈 프로젝트 (웹 서버), 스마트팜 프로젝트 (MQTT), 스마트 환경 분석 프로젝트 (이메일), 날씨 정보 알리미 (ThingSpeak), 주식 및 코인 시세 알리미 (텔레그램) 등 실제 프로젝트를 직접 만들어본다.
<마이크로 파이썬을 활용해 사물인터넷(IoT) 프로젝트 만들기 with ESP32>책은 마이크로파이썬과 ESP32를 활용하여, 프로그래밍의 기본 개념부터 시작해 점차 복잡한 사물인터넷 프로젝트를 구현할 수 있는 능력을 기를 수 있도록 구성!
이 책에서 배우는 핵심 내용
- 사물인터넷의 기본부터 실제 작동하는 시스템 설계 구축 실습까지
- 파이썬을 사용해 실제 사물인터넷 장치를 만드는 과정을 단계별 실습
- 프로그래밍의 기본 개념부터 시작해 점차 복잡한 프로젝트 구현까지
- 다양한 하드웨어와 통신모듈을 사용하여 실제 작동하는 사물인터넷 장치 제자까지
이 책의 실습 시 필요한 소스 코드는 앤써북 공식 카페를 통해서 다운로드 받을 수 있고, 정오표나 중요 개정 및 알림 내용도 확인할 수 있다.
작가 소개
장문철
현) 미랩 대표
현) 다두이노(www.daduino.co.kr) 대표
전) 부천대학 정보통신과 겸임교수
(강의)
파이썬, 아두이노, 인공지능, AI 자율주행 자동차, 사물인터넷, 아두이노 드론, 라즈베리파이, 라즈베리파이 드론, ARM mbed 외
(저서)
만들면서 배우는 라즈베리파이 5와 40개의 작품들 (2024. 03 앤써북)
마이크로 파이썬을 활용해 사물인터넷(IoT) 프로젝트 만들기 with ESP32 (2024. 02 앤써북)
업무와 일상을 업 시키는 16가지 생성형 AI 활용(2024. 01 앤써북)
파이썬으로 구현하는 AI 자율주행 자동차 with 아두이노 자동차 만들기 (2023. 11 앤써북)
한권으로 끝내는 파이썬과 아두이노로 52개 작품만들기 (2023. 07 앤써북)
챗GPT 실전 활용 보고서 (2023. 07 앤써북)챗GPT & AI를 활용한 인공지능 그림 그리기 실전 (2023. 05 앤써북)
챗GPT를 활용한 40가지 파이썬 프로그램 만들기 (2023. 04 앤써북)
챗GPT를 활용한 아두이노 입문 (2023. 04 앤써북)
모두가 할 수 있는 인공지능으로 그림 그리기 (2023. 03 앤써북)
ChatGPT가 직접 쓴 챗GPT 입문 (2022. 11 앤써북)
업무에 바로 활용하는 SSS급 일잘러를 위한 파이썬과 40개의 작품들 (2023. 11 앤써북)
만들면서 배우는 아두이노 IoT 사물인터넷과 40개의 작품들 (2023. 08 앤써북)
아두이노 자동차의 모든 것 아두이노, 메이커, C언어, 자동차 (2022. 06 앤써북)
만들면서 배우는 파이썬과 40개의 작품들(2022. 02 앤써북)
만들면서 배우는 라즈베리파이와 40개의 작품들(2021. 09 앤써북)
AI 인공지능 자율주행 자동차(2021. 08 앤써북)
모두가 할 수 있는 앱 인벤터로 11개 인공지능 앱 만들기(2021. 06 앤써북)
만들면서 배우는 아두이노와 40개의 작품들(2021. 03 앤써북)
아두이노와 앱인벤터 입문+실전(종합편)(2020. 11 앤써북)
다두블럭으로 만들고 엔트리로 코딩하기(2017. 09 앤써북)
목 차
CHAPTER 01 파이썬 사물인터넷 시작하기
01-1 사물인터넷 개요
01-2 파이썬과 마이크로파이썬
파이썬 개요 및 특징
파이썬과 마이크로파이썬 차이
01-3 마이크로파이썬 개발환경 구성
ESP32와 PC 연결
CH340 드라이버 설치
ESP32에 마이크로파이썬 설치
라이브러리 설치
라이브러리 마이크로파이썬에 업로드하기
01-4 파이썬 기초 문법
출력과 입력
변수와 자료형
연산자와 제어문
오류 및 예외처리
함수, 클래스
import
CHAPTER 02 기본 입출력 기능
02-1 디지털 출력
LED 깜빡이기
파일 컴퓨터에 저장하기
main.py 파일 장치에 저장하고 바로 실행하기
결과
8개의 LED 제어하기
8개의 LED 파이썬답게 제어하기
키보드 인터럽트 사용해서 코드 안전하게 종료하기
LED에 효과주어 제어하기
02-2 디지털 입력
버튼 입력
버튼을 누르면 한 번만 출력
버튼을 확인하는 코드를 함수처리
여러 개의 버튼을 함수처리
버튼 클래스 생성
여러 개의 버튼 클래스로 생성
인터럽트로 버튼 입력받기
여러 개의 버튼 인터럽트로 입력받기
02-3 아날로그 출력
PWM을 사용하여 LED 밝기 조절하기
PWM의 주파수 조절하기
RGB LED 밝기 조절하기
RGB LED로 무지개 색상 표현하기
02-4 아날로그 입력
아날로그 입력받기
전압으로 환산하기
조건식과 함께 사용하기
02-5 시리얼 통신
시리얼 통신 포트 설정하기
데이터 전송하기
데이터 수신받기
예외처리하기
데이터 수신받아 응답하기
데이터 분리하기
프로토콜 만들어 데이터 분리하기
한줄로 코드 줄이기
02-6 하드웨어 타이머 및 쓰레드
하드웨어 타이머 사용하기
하드웨어 타이머 여러개 사용하기
쓰레드 사용하기
쓰레드 여러개 사용하기
CHAPTER 03 입력장치 및 센서
03-1 조도센서
조도센서로 밝기 확인하기
어두워지면 자동으로 켜지는 전등 만들기
03-2 가스감지센서
가스감지센서 값 전압으로 읽기
가스감지되면 LED켜기
03-3 조이스틱
조이스틱 값 입력받기
조이스틱 y축 값 뒤집기
03-4 초음파센서
초음파센서로 거리값 측정하기
초음파센서로 timeout으로 응답성 높이기
03-5 DHT11온습도센서
DHT11온습도센서 값 읽어 출력하기
예외처리하기
03-6 가속도자이로센서
가속도자이로센서 값 읽기
센서의 임계점 이상일 때 값 출력하기
기울기 각도 구하기
03-7 RFID
RFID 값 읽기
RFID 값 함수로 읽기
RFID 값 비교하여 조건 추가하기
CHAPTER 04 출력장치 및 모터
04-1 부저
도레미파솔라시도 출력하기
학교종 출력하기
04-2 FND 143
FND A~DP까지 하나씩 출력하기
FND 숫자 0~9까지 출력하기
함수로 코드 간략화하기
04-3 4digit FND
4자리에 값 표시하기
1234 표시하기
함수 만들어 4자리 표시하기
04-4 DC모터
DC모터 속도 조절하기
DC모터 방향 조절하기
04-5 서보모터
서보모터 각도 제어하기
서보모터 각도 for문 사용해서 제어
04-6 LCD
LCD에 글자 출력하기
LCD에 위치 지정하여 글자 출력하기
LCD에 글자 연속으로 출력
04-7 네오픽셀 LED
네오픽셀 LED R,G,B 켜기
다양한 색상 하나씩 켜기
04-8 SD카드
SD카드에 파일생성 후 쓰기
SD카드 파일에서 읽기
SD카드 파일에 연속으로 쓰기
SD카드 파일 목록 확인하기
SD카드 파일 삭제하기
CHAPTER 05 사물인터넷
05-1 블루투스 통신
블루투스 통신으로 데이터 주고받기
블루투스 통신으로 LED 제어하기
05-2 WIFI 통신
WIFI 스캔을 통해 주변 WIFI 찾기
WIFI 연결하기
WIFI 고정 IP 설정하기
WIFI AP모드로 변경하기
05-3 인터넷 시간표시
NTP 서버에 접속하여 시간받기
시간을 표시하기
+9시간을 더해 한국시간으로 표시하기
05-4 날씨표시
기상청 RSS 접속
기상청 RSS 접속하여 RSS데이터 받기
온도 습도 데이터만 출력하기
주기적으로 접속하여 온도 습도 데이터 출력하기
05-5 공공데이터 미세먼지
공공데이터 포털에서 활용 신청 및 데이터 확인하기
공공데이터 미세먼지 데이터 출력하기
json 데이터 분리하여 출력하기
강남대로의 미세먼지, 초미세먼지만 출력하기
05-6 이메일 보내기
구글 이메일 설정하기
내 구글 계정으로 이메일 보내기
이메일 보내는 부분 함수화 하기
여러 개의 메일을 전송하기
05-7 주식 시세 표시
네이버 주식데이터 접속하여 값 확인하기
삼성전자 주식 시세 확인하기
여러 개의 주식 시세 확인하기
05-8 비트 코인 시세 표시
업비트 API 활용하여 비트코인 데이터 확인하기
비트코인 시세 출력하기
여러 개의 가상화폐 시세 출력하기
CHAPTER 06 표준 프로토콜
06-1 TCP
TCP 서버 생성하여 데이터 통신
TCP 서버 데이터수신 쓰레드 생성
TCP 서버를 PC에 만들기
TCP 클라이언트로 데이터 통신
06-2 UDP
UDP로 데이터 주고받기
UDP로 데이터 송신
데이터 수신을 논블로킹으로 처리
06-3 MQTT
PC에 모스키토 MQTT 브로커 설치하고 설정하기
PC에 MQTT 프로그램 설치하기
자신의 컴퓨터의 IP 주소 확인하기
MQTT 데이터 발행하기
MQTT 데이터 구독하기
MQTT 발행 구독하기
06-4 웹서버
웹서버 버튼 만들기
웹서버 버튼으로 LED 제어하기
CHAPTER 07 사물인터넷 서비스
07-1 IFTTT
IFTTT 서비스 만들기
IFTTT 데이터 보내기
07-2 thingspeak
thingspeak 서비스 만들기
thingspeak에 데이터 전송하기
thingspeak에 무작위 데이터 계속 전송하기
07-3 firebase
firebase 프로젝트 생성
firebase에 데이터 쓰기
firebase에 데이터 읽기
07-4 텔레그램
텔레그램 봇 만들기
텔레그램 메시지 수신 및 id 확인
텔레그램 수신 메시지 등록하기
텔레그램 메시지 전송하기
CHAPTER 08 작품만들기
08-1 스마트홈 프로젝트
스마트홈 센서 읽어 출력하기
스마트홈 센서 조건추가하기
스마트홈 센서값 출력 웹페이지 만들기
08-2 스마트팜 프로젝트
스마트팜 센서값 읽어 출력하기
스마트팜 MQTT로 통신하기
08-3 스마트환경분석 프로젝트
인터넷 시간 받기
조도, 온도, 습도 센서 SD카드에 기록하기
10분마다 이메일 보내기
08-4 날씨정보 알리미
실내온도와 실외온도 출력하기
실내온도와 실외온도 thingspeak에 기록하기
08-5 주식, 코인 시세 알리미
비트코인, 삼성전자 금액 출력하기
비트코인, 삼성전자 금액 10분마다 텔레그램으로 전송하기
역자 소개
재화 등의 배송방법에 관한 정보 | 상품 상세설명페이지 참고 |
---|---|
주문 이후 예상되는 배송기간 | 상품 상세설명페이지 참고 |
제품하자가 아닌 소비자의 단순변심, 착오구매에 따른 청약철회 시 소비자가 부담하는 반품비용 등에 관한 정보 | 배송ㆍ교환ㆍ반품 상세설명페이지 참고 |
제품하자가 아닌 소비자의 단순변심, 착오구매에 따른 청약철회가 불가능한 경우 그 구체적 사유와 근거 | 배송ㆍ교환ㆍ반품 상세설명페이지 참고 |
재화등의 교환ㆍ반품ㆍ보증 조건 및 품질보증 기준 | 소비자분쟁해결기준(공정거래위원회 고시) 및 관계법령에 따릅니다. |
재화등의 A/S 관련 전화번호 | 상품 상세설명페이지 참고 |
대금을 환불받기 위한 방법과 환불이 지연될 경우 지연에 따른 배상금을 지급받을 수 있다는 사실 및 배상금 지급의 구체적 조건 및 절차 | 배송ㆍ교환ㆍ반품 상세설명페이지 참고 |
소비자피해보상의 처리, 재화등에 대한 불만처리 및 소비자와 사업자 사이의 분쟁처리에 관한 사항 | 소비자분쟁해결기준(공정거래위원회 고시) 및 관계법령에 따릅니다. |
거래에 관한 약관의 내용 또는 확인할 수 있는 방법 | 상품 상세설명페이지 및 페이지 하단의 이용약관 링크를 통해 확인할 수 있습니다. |
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |