Top

Windows 10 IoT 프로그래밍 [라즈베리파이와 Windows 10 IoT 코어, Azure IoT 스위트를 활용한 IoT 프로그래밍 가이드]

  • 원서명Programming for the Internet of Things: Using Windows 10 IoT Core and Azure IoT Suite (ISBN 9781509302062)
  • 지은이다위드 보리츠키(Dawid Borycki)
  • 옮긴이김도균, 최준규
  • ISBN : 9791161754772
  • 45,000원
  • 2020년 12월 30일 펴냄
  • 페이퍼백 | 836쪽 | 188*235mm
  • 시리즈 : 윈도우 시스템 프로그래밍

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/programming-iot)

부록 PDF는 여기에서 내려 받으세요.
요약

가장 쉽게 접할 수 있는 IoT 디바이스인 라즈베리파이를 선택해 윈도우 10 IoT와 UWP를 사용한 임베디드 프로그래밍을 설명한다. 더 나아가 라즈베리파이와 함께 사용할 수 있는 여러 가지 센서와 마이크, 카메라, 모터, 블루투스, 와이파이에 이르기까지 다양한 디바이스를 스마트하게 만드는 프로젝트를 중심으로 설명을 풀어간다. 마이크로소프트 애저의 IoT 솔루션을 활용해 원격 디바이스 제어와 데이터 수집, 분석을 처리하는 커스텀 솔루션을 만들어가는 과정을 담아내 IoT 프로그래밍의 정수를 보여준다.

이 책에서 다루는 내용

■ 상호 연결된 임베디드 디바이스를 대상으로 하는 유니버설 윈도우 플랫폼(UWP) 애플리케이션 제작
■ 하드웨어 구성 요소와 통합하는 백그라운드 앱 설계 및 구현
■ 자체 UWP 기능을 사용해 사람의 얼굴 감지 및 추적
■ 인공 청각과 시각, 학습 시스템 제작
■ 음악 리듬에 따라 LED가 깜박이도록 오디오 신호 처리
■ OpenCV를 사용해 커스텀 이미지 처리 알고리즘 개발
■ 직렬 및 USB, 와이파이, 올조인 연결을 사용해 외부 디바이스와 통신
■ 로보틱스를 위한 DC 및 스테퍼, 서보 모터를 제어하는 애플리케이션 디자인 및 구현
■ 마이크로소프트 인지 서비스를 사용해 사람의 감정 감지
■ 애저 IoT 스위트를 사용해 예측 분석과 예방 유지관리 시스템 제작

이 책의 대상 독자

■ 커스텀 IoT 솔루션을 만들려는 C#과 .NET 개발자
■ 커스텀 디바이스 프로그래밍으로 상상을 실현하기 원하는 임베디드 소프트웨어 개발자, 엔지니어, 연구자, 마니아

이 책의 구성

1부에서 임베디드 프로그래밍의 기초를 설명하고 데스크톱과 웹, 모바일 앱 프로그램과 어떻게 구별하는지 다룬다. 프로그래밍 환경을 구성하고 윈도우 10 IoT 코어에서 “Hello, world!”와 같은 프로젝트를 어떻게 작성하는지도 설명한다. 더불어 UI 선언을 위해 UWP 스레딩 모델, XAML 마크업과 관련된 몇 가지 기본 개념을 설명한다. 경험 있는 개발자는 이 부분을 건너뛰고 2부로 넘어가도 된다.
2부는 윈도우 10 IoT와 UWP를 사용한 디바이스 프로그래밍에 관련된 장들을 포함한다. 먼저 여러 센서에서 데이터를 수집하고 디바이스를 제어하는 방법을 설명한다. 이어서 마이크와 카메라에서 신호를 수집하고 처리하는 방법을 설명한다. 그다음 다양한 직렬 통신과 블루투스, 와이파이, 올조인(AllJoyn) 등의 통신 프로토콜을 사용해 IoT 모듈이 다른 디바이스와 통신하도록 하는 방법을 설명한다. 모터를 제어하고 마이크로소프트 인지(Cognitive) 서비스와 애저 머신러닝을 사용해 디바이스를 똑똑하고 지능적으로 만드는 방법도 설명한다.
3부는 클라우드를 다룬다. 디바이스 원격 분석과 예측 유지관리를 위한 2개의 사전 구성된 애저 IoT 솔루션을 사용하는 방법을 설명한다. 마지막 장에서는 사용자 지정 IoT 솔루션을 밑바닥부터 차근차근 만들어 가는 자세한 과정을 다룬다. 이 내용은 IoT 프로그래밍의 정수를 보여주며, 클라우드로 원격 센서의 데이터를 전송해 데이터를 저장하고 처리 및 표현한다. 또한 비정상 센서 판독 값을 윈도우 10에서 실행하는 모바일 앱에 바로 알려주는 방법도 설명한다.
6개의 부록에서 비주얼 베이직(Visual Basic)과 자바스크립트(JavaScript)로 LED를 깜박이는 방법(부록 A), 라즈베리 파이의 HDMI 모드(부록 B), 비트 인코딩(부록 C), 코드 공유 전략(부록 D)을 설명했으며, Visual C++/구성 요소 확장(부록 E)을 소개하고, 비주얼 스튜디오 2017에서 IoT 개발을 설정하는 방법을 설명한다(부록 F).

저자/역자 소개

지은이의 말

IoT 프로그래밍은 상상으로만 가능했던 기능을 커스텀 디바이스를 만들고 프로그래밍할 수 있는 기회를 제공한다. 단계별로 정확하게 따라 하면서 솔루션을 만들 수 있도록 돕는다. 이 책을 읽으면 디바이스 프로그래밍의 기본과 함께 디바이스와 로봇을 혁신시키는 코드를 작성할 기량도 갖출 수 있을 것이다.
학습하는 데 로우 레벨 프로그래밍 전문가가 될 필요는 없다. 복잡한 주제를 탐구하기 전에 기본 개념과 프로그래밍 기법을 설명하고, 각 장과 부록은 디바이스 프로그래밍을 빠르게 마스터할 수 있도록 적당한 수준의 내용을 다룬다.

지은이 소개

다위드 보리츠키(Dawid Borycki)

마이크로소프트 기술의 사용 경험이 많은 소프트웨어 엔지니어이자 생물의학 연구원이다. 디바이스 프로토타입(주로 의료 장비)과 임베디드 디바이스 인터페이스, 모바일 프로그래밍을 위한 소프트웨어 개발 등에서 폭넓은 프로젝트를 완수했다.

옮긴이의 말

클라우드 컴퓨팅의 전성시대가 되면서 전반적인 IT 환경에서 다소 외인부대처럼 느껴졌던 임베디드 프로그래밍 영역이 이제는 클라우드를 타고 활용성이 높은 혁신 기술로 거듭났고 우리를 이를 IoT라고 부릅니다.
이 책이 소개하는 마이크로소프트의 윈도우 10 IoT 코어와 애저 IoT 스위트를 활용하면 원하는 IoT 솔루션을 빠르게 구현할 수 있습니다. 비교적 쉽게 구할 수 있는 라즈베리파이를 사용해 IoT 프로그래밍의 실제를 경험하게 해줄뿐더러, 클라우드와 결합될 때 IoT 솔루션의 구현이 얼마나 빨라지고 강력해질 수 있는지 궁금하다면, 이 책의 내용이 답해줄 것입니다.
번역하는 동안 책에서 사용한 비주얼 스튜디오 버전이 올라갔고, 마이크로소프트 애저의 IoT 솔루션이 제공하는 IoT 서비스와 SDK에도 변화가 있었습니다. 책에는 이러한 변화를 모두 반영했으며, 저자의 소스코드와 별도로 비주얼 스튜디오 2019에 맞춘 예제를 역자의 깃허브에서 제공합니다.

코로나 19가 사라진 새봄을 꿈꾸며…
2020년 12월.
김도균

4차 산업혁명의 핵심기술 중 하나인 IoT 기술은 매년 빠르게 성장세를 이어나가고 있다. 이에 맞춰 마이크로소프트(윈도우 10 IoT, 애저 IoT), 아마존(AWS IoT, 에코), 구글(브릴로, 구글홈), 애플(홈킷) 등 글로벌 IT 기업에서도 전략적으로 IoT 플랫폼 및 서비스로 사업 영역을 확장하고 있다. 이 책은 이 중 마이크로소프트의 윈도우 10 IoT 및 애저 IoT를 기반으로 IoT 프로그래밍에 대한 전반적인 내용을 다룬다.
이 책은 ‘Hello, World!’도 모르는 이제 IoT 프로그래밍을 막 시작하고자 하는 초심자부터 클라우드 서버 내 머신러닝 작업을 수행하는 숙련자까지 폭넓은 독자를 대상으로 한다. 특히 초심자의 경우 ‘1부. 기본 개념’에서 임베디드 디바이스 프로그래밍의 기초 이론과 프로그래밍 환경을 구축 관련 본문 예제들을 차근차근 따라 한다면 IoT 프로그래밍의 기본 개념 정립에 매우 도움이 될 것이다.
IoT 디바이스를 구성하는 하드웨어(센서, 오디오, 카메라, 모터 등)의 구동과 디바이스와 서버 간 통신(시리얼 통신, 블루투스, 와이파이 등)을 실전 예제를 통해 직접 수행함으로써 자신만의 IoT 기기를 직접 구현하는 데 도움이 되기를 기대한다.

2020년 12월
최준규

옮긴이 소개

김도균

2003년 처음으로 번역한 『BEGINNING DIRECT3D GAME PROGRAMMING』(정보문화사)을 계기로 지금까지 번역과 저술을 계속해오고 있다. 마이크로소프트 MVP를 9회 수상했으며 18년째 마이크소프트의 공인 강사(MCT) 타이틀을 유지하고 있다. 최근엔 마이크로소프트 애저의 엄청난 성장으로 인해 독립 애저 트레이너로 바쁜 일상을 보내고 있다. 하루 4시간만 일하는 세상을 꿈꾼다.

최준규

14년 차 소프트웨어 엔지니어로 피처폰 및 안드로이드폰 등 다양한 휴대폰 소프트웨어 개발 프로젝트에 참여한 경력이 있다. 현재는 차량 소프트웨어 개발 프로젝트에 참여하고 있으며, 빅데이터, AI, 네트워크 프로그래밍 분야에 관심이 많다. 번역/저술/강연 공동체 GoDev의 일원으로 활동 중이다.

목차

목차
  • PART 1. 기본 개념
  • Chapter 1. 임베디드 디바이스 프로그래밍
    • 임베디드 디바이스 정의
      • 특수 목적의 펌웨어
      • 마이크로컨트롤러 메모리
      • 어디나 존재하는 임베디드 디바이스
    • 임베디드 디바이스 연결: 사물인터넷
    • 임베디드 디바이스 기본
    • 임베디드 디바이스 프로그래밍 vs. 데스크톱과 웹, 모바일 프로그래밍
      • 유사성과 사용자 상호작용
      • 하드웨어 추상 계층
      • 견고성
      • 리소스
      • 보안
    • 윈도우 10 IoT 코어와 유니버설윈도우 플랫폼의 이점
    • 요약

  • Chapter 2. 디바이스의 유니버설 Windows 플랫폼
    • 윈도우 10 IoT 코어
    • 디바이스를 위한 유니버설 Windows 플랫폼의 파워
    • 도구 설치와 구성
      • 윈도우 10
      • 비주얼 스튜디오 2017 이상
      • 윈도우 IoT 코어 프로젝트 템플릿
      • 윈도우 10 IoT 코어 대시보드
    • 디바이스 셋업
      • 라즈베리 파이 2와 파이 3용 윈도우 10 IoT 코어 스타터 팩
      • 윈도우 10 IoT 코어 설치
      • 개발 보드 구성
    • Hello, world! 윈도우 IoT
      • 회로 어셈블리
      • LED와 저항, 전자 컬러 코드
      • 액티브 로와 액티브 하이 상태
      • 라즈베리 파이 2 핀 배치도
      • 무납땜 브레드보드 연결
      • C#과 C++를 사용해 LED 켜고 끄기
    • 유용한 도구와 유틸리티
      • 디바이스 포털
      • 윈도우 IoT 리모트 클라이언트
      • SSH
      • FTP
    • 요약

  • Chapter 3. 윈도우 IoT 프로그래밍 에센셜
    • 라즈베리 파이 2의 외부 디스플레이 연결과 부트 구성
    • headed 및 headless 모드
    • 헤드리스 애플리케이션
      • C#
      • C++
      • 아두이노 와이어링 애플리케이션
      • 요약
    • 헤드 있는 애플리케이션의 진입점
      • C#/XAML
    • 비동기 프로그래밍
      • 작업자 스레드와 스레드 풀
      • 타이머
      • UI와 작업자 스레드 동기화
    • DispatcherTimer를 사용해 LED 깜박거리기
    • 요약

  • Chapter 4. 헤드 있는 장치를 위한 사용자 인터페이스 디자인
    • UWP 애플리케이션의 UI 디자인
      • 비주얼 디자이너
      • XAML 네임스페이스
      • 컨트롤 선언, 속성, 특성
      • 스타일
      • 리소스 컬렉션
      • 기본 스타일과 테마 리소스
    • 레이아웃
      • StackPanel
      • Grid
      • RelativePanel
    • 이벤트
      • 이벤트 처리
      • 이벤트 핸들러와 비주얼 디자이너
      • 이벤트 전파
      • 사용자 지정 이벤트 선언과 발생
    • 데이터 바인딩
      • 컨트롤 속성 바인딩
      • 변환기
      • 필드에 바인딩하기
      • 메서드 바인딩하기
    • 요약

  • PART 2. 디바이스 프로그래밍
  • Chapter 5. 센서의 데이터 판독
    • 비트, 바이트, 데이터 형식
    • 이진 데이터 디코딩과 인코딩
      • 비트 연산자
      • 시프트 연산자와 비트 마스킹, 이진 표현
      • 바이트 인코딩과 엔디언
      • BitConverter
      • BitArray
    • 센스 HAT 애드온 보드
    • 사용자 인터페이스
    • 온도와 기압
    • 상대 습도
    • 가속도계 및 자이로스코프
    • 자기계
    • 센서 보정
    • 싱글턴 패턴
    • 요약

  • Chapter 6. 입력과 출력
    • 촉각 버튼
    • 조이스틱
      • 미들웨어 계층
      • 조이스틱 상태 시각화
    • LED 배열
    • 조이스틱과 LED 배열 통합
    • 센서 판독과 LED 배열 통합하기
    • 터치스크린과 제스처 다루기
    • 요약

  • Chapter 7. 오디오 처리
    • 음성 합성
    • 음성 인식
      • 배경
      • 앱 기능과 시스템 구성
      • UI 변경
      • 일회성 인식
      • 연속 인식
    • 음성 명령을 사용해 디바이스 제어하기
      • 하드웨어 설정
      • 코드 작성
    • 시간 및 주파수 도메인에서의 파동
      • 고속 푸리에 변환
      • 샘플링 레이트와 주파수 척도
      • 데시벨 척도
    • 웨이브폼 스펙트럼 분석기
      • 파일 읽기
      • 웨이브폼 오디오 파일 포맷 읽기 프로그램
      • 신호 윈도우와 단구간 푸리에 변환
      • 스펙트럼 히스토그램
      • 스펙트럼 표시
      • LED 배열에서 스펙트럼 표시
    • 요약

  • Chapter 8. 영상 처리
    • USB 카메라를 사용한 이미지 획득
    • 얼굴 감지
    • 얼굴 추적
      • UI에서 얼굴 위치 표시
      • LED 배열의 얼굴 위치 표시
    • OpenCV 및 네이티브 코드 인터페이스
      • 솔루션 구성 및 OpenCV 설치
      • 영상 임계값 처리
      • 처리 결과 시각화
      • 객체 감지
      • 객체 인식을 위한 기계 시각
      • 윤곽선 근사치
      • 객체 식별
      • 최종 메모
    • 요약

  • Chapter 9. 디바이스 연결
    • 시리얼 통신
      • UART 루프백 모드
      • 프로젝트 골격
      • 시리얼 디바이스 구성
      • 데이터 쓰기/읽기
    • 디바이스 내부 통신을 위한 애플리케이션 작성
      • 변환기 연결
      • IoT 디바이스 원격 제어
    • 블루투스
      • 연결 설정
      • 프로젝트 아키텍처 및 블루투스 장치 열거
      • LED 색상 명령
      • 윈도우 런타임 요구 사항을 적용한 LedArray 클래스
      • 헤드 있는 클라이언트 애플리케이션
    • 와이파이
    • 올조인
      • 인트로스펙션 XML 파일
      • 올조인 스튜디오
      • 생산자
      • 올조인 IoT 탐색기
      • 맞춤형 소비자
    • 윈도우 원격 아두이노
    • 요약

  • Chapter 10. 모터
    • 모터 및 장치 제어 기본 원리
    • 모터 HAT
    • 펄스폭 변조
      • 드라이버
    • DC 모터
      • PWM 신호를 이용한 모터 제어 구현
      • 헤드 있는 애플리케이션
    • 스테퍼 모터
      • 풀 스텝 모드 제어
      • 헤드 있는 앱
      • 자동 속도 조정
      • 마이크로 스테핑
    • 서보 모터
      • 하드웨어 어셈블리
      • 헤드 있는 앱
    • 공급자
      • Lightning 공급자
      • PCA9685 컨트롤러 공급자
      • DC 모터 제어
    • 요약

  • Chapter 11. 디바이스 러닝
    • Microsoft Cognitive Services
      • 감정 감지기
      • LED 배열로 감정 나타내기
      • 컴퓨터 비전 API
    • 커스텀 인공 지능
      • 동기와 개념
      • 마이크로소프트 애저 머신러닝 스튜디오
    • 이상 감지
      • 훈련 데이터세트 얻기
      • 원-클래스 서포트 벡터 머신을 사용한 이상 감지
      • 웹 서비스 준비와 게시
      • 웹 서비스 클라이언트 구현하기
      • 정리
    • 요약

  • PART 3. 애저 IoT 스위트
  • Chapter 12. 원격 디바이스 모니터링
    • 사전 구성된 솔루션 설정하기
    • 디바이스 프로비저닝
      • 새로운 디바이스 등록하기
      • 디바이스 정보 전송하기
    • 원격 측정 데이터 전송하기
    • 원격 명령 수신 및 처리
      • 디바이스 정보 업데이트하기
      • 원격 명령에 응답하기
    • 애저 IoT 서비스
    • 요약

  • Chapter 13. 예측 유지 관리
    • 미리 구성된 솔루션
      • 솔루션 대시보드
      • 머신러닝 워크스페이스
      • Cortana Analytics Gallery
    • 애저 리소스
    • 애저 스토리지
      • 예측 유지 관리 스토리지
      • 원격 측정과 예측 결과 스토리지
      • DeviceList
    • 애저 스트림 분석
    • 솔루션 소스 코드
    • 이벤트 허브와 머신러닝 이벤트 프로세서
      • 머신러닝 데이터 프로세서
      • 애저 테이블 스토리지
    • 시뮬레이터 WebJob
    • 예측 유지 관리 웹 애플리케이션
      • 시뮬레이션 디바이스
      • 원격 분석 서비스
    • 요약

  • Chapter 14. 사용자 지정 솔루션
    • IoT 허브
      • 클라이언트 애플리케이션
      • 디바이스 레지스트리
      • 원격 분석 데이터 전송하기
    • 스트림 분석
      • 스토리지 계정
      • 애저 테이블
      • 이벤트 허브
      • 스트림 분석 작업
      • 입력
    • 이벤트 프로세서
    • Power BI를 사용한 데이터 시각화
    • 알림 허브
      • 스토어 연결
      • 알림 클라이언트 애플리케이션
      • Notification Hub 만들고 구성하기
      • 이벤트 프로세서로 알림 메시지 전송하기
    • 클라우드에 이벤트 허브 프로세서 배포하기
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안