Top

사물인터넷 자바스크립트 프로그래밍

  • 원서명Internet of Things Programming with JavaScript: Learn the art of bringing the Internet of Things into your projects with the power of JavaScript (ISBN 9781785888564)
  • 지은이루벤 올리바 라모스(Rubén Oliva Ramos)
  • 옮긴이류영선
  • ISBN : 9791161751559
  • 28,000원
  • 2018년 05월 16일 펴냄
  • 페이퍼백 | 340쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

사물인터넷(IoT)은 웹 개발자와 엔지니어에게 완전히 새로운 플랫폼이지만, 이 새로운 세계에서도 프로그래밍 언어는 일관성을 유지한다. 자바스크립트는 인터넷에서 가장 널리 사용되는 언어며, IoT가 탄력을 얻으면서 연결된 장치와 상호작용하는데 자바스크립트의 힘을 활용하는 방법을 배워야할 필요가 증가했다. 이 책은 라즈베리 파이와 아두이노 플랫폼을 사용한 몇 가지 도모틱스 프로젝트를 제공한다. 이 책의 각 장의 프로젝트는 준비 작업부터 시작하여 하드웨어, 센서, 통신, 소프트웨어 프로그래밍으로 구성돼 있어 완벽한 제어 및 모니터링 시스템을 갖추도록 여러분을 안내해줄 것이다.

이 책에서 다루는 내용

■ IoT 네트워크에 장치를 연결하는 데 필요한 기술 습득
■ 센서와 액추에이터를 장치에 연결하는 방법
■ 웹 서버에 데이터 보내기
■ 웹 서비스와 데이터베이스를 사용하는 사물인터넷의 이해
■ HTML5와 자바스크립트를 사용한 대시보드 구성
■ 대시보드에서 연결된 장치 제어하기
■ 대시보드에서 다양한 장치 모니터링하기
■ 스마트폰에서 장치를 제어할 수 있는 앱 작성하기

이 책의 대상 독자

여러분의 집을 자동화하고 스마트하게 만드는 동시에 댁내 장치들을 완전히 제어하고자 하는 사람들을 위한 책이다. 이런 주제에 관심이 있다면 이 책에서 라즈베리 파이 제로 보드를 사용해 여러분의 프로젝트를 제어하는 데 필요한 모든 것을 배울 수 있다.
또한 과거에 아두이노 같은 다른 개발 보드로 개발해온 제작자를 위한 책이기도 하다. 이 경우, 라즈베리 파이 플랫폼의 힘을 바탕으로 스마트 홈을 만드는 방법을 배울 수 있다. 라즈베리 파이 제로로 무선 보안 카메라를 만드는 것과 같은 다른 플랫폼에서도 쉽게 수행 가능한 프로젝트를 만드는 방법도 배울 수 있다.

이 책의 구성

1장. '라즈베리 파이 제로 시작하기'에서는 라즈베리 파이와 아두이노 보드를 설치하는 절차와 장치 간 통신 방법을 설명한다. 운영체제를 설치하고 설정하며, 라즈베리 파이를 네트워크에 연결해 원격으로 접속한다. 또한 라즈베리 파이가 정확한 시간에 동작할 수 있도록 보장한다.
2장. '라즈베리 파이 제로에 장치 연결하기'에서는 라즈베리 파이와 아두이노 신호를 연결하는 방법을 알아본다. GPIO 포트와 이 포트가 제공하는 다양한 인터페이스를 살펴본다. 또한 GPIO를 사용해 라즈베리 파이에 연결할 수 있는 다양한 장치를 살펴본다.
3장. '센서 연결: 실제 데이터 측정'에서는 다양한 신호의 감지 및 보안 시스템, 에너지 소비 전력 측정, 가정 내 위험 감지, 가스 센서, 유량 측정용 유량 센서를 구현하는 방법을 살펴보고 지문 센서로 집의 출입을 제어하는 보안 시스템의 제작 방법을 알아본다.
4장. '연결 장치 제어'에서는 중앙 인터페이스 대시보드의 라즈베리 파이 통신 모듈을 사용해 아두이노 보드를 제어하는 방법을 알아본다.
5장. '웹캠을 추가해 보안 시스템 모니터링하기'에서는 보드에 연결된 웹캠을 구성해 사물인터넷 보안 시스템을 모니터링하는 방법을 알아본다. 6장. '웹 모니터 빌드와 대시보드에서의 장치 제어'에서는 웹 서비스를 사용해 보안 시스템을 모니터링하는 시스템 설정 방법을 알아본다. 라즈베리 파이를 아두이노와 통합해 장치를 연결하고 모니터링하는 완벽한 시스템을 구축한다.
7장. '사물인터넷 대시보드로 스파이 폴리스 구축하기'에서는 다양한 미니 홈 도모틱스 프로젝트를 만드는 방법과 웹 서비스를 연결하고 사물인터넷을 사용해 보안 시스템을 모니터링하는 방법을 알아본다.
8장. '스마트폰에서 장치를 모니터링하고 제어하기'에서는 안드로이드 스튜디오와 APP 인벤터를 사용해 스마트폰용 앱을 어떻게 개발하고 아두이노 보드와 라즈베리 파이 제로를 어떻게 제어하는지 알아본다.
9장. '통합'에서는 프로젝트의 모든 부분, 전자 부품, 소프트웨어 구성, 전원 공급 장치를 하나로 통합하는 방법을 알아본다.

지은이의 말

라즈베리 파이 제로(Raspberry Pi Zero)는 강력하고 저렴한 신용카드 크기의 컴퓨터로, 정교한 홈 오토메이션 기기의 컨트롤러를 완벽하게 시작할 수 있다. 온보드 인터페이스를 사용해 라즈베리 파이 제로를 확장하면, 사실상 보안 센서 및 장치를 무제한으로 연결할 수 있다.
아두이노(Arduino) 플랫폼은 사물인터넷의 네트워킹 애플리케이션을 포함한 여러 프로젝트를 작성하는 데 유용하고 다재다능하게 쓰이므로 이 책에서 사용하고 있다. 이 책에서는 아두이노 보드를 사용해 노드에 연결된 장치를 통합하고 라즈베리 파이를 통합해 허브로 동작하는 중앙 인터페이스에서 장치를 제어하고 모니터링하는 방법을 설명한다. 소프트웨어 프로그램을 사용하면 자바스크립트와 HTML5, Node.js 같은 기술을 기반으로 하는 사물인터넷 시스템을 만들 수 있다.
이 책을 통해 라즈베리 파이 보드를 사용한 몇 가지 도모틱스(domotics) 프로젝트를 살펴봄으로써 자신의 프로젝트를 제작할 수 있게 될 것이다.
각 장의 프로젝트는 준비 작업부터 시작해 하드웨어, 센서, 통신, 소프트웨어 프로그래밍으로 구성돼 있어 완벽한 제어 및 모니터링 시스템을 갖추도록 여러분을 안내해줄 것이다.

저자/역자 소개

지은이의 말

라즈베리 파이 제로(Raspberry Pi Zero)는 강력하고 저렴한 신용카드 크기의 컴퓨터로, 정교한 홈 오토메이션 기기의 컨트롤러를 완벽하게 시작할 수 있다. 온보드 인터페이스를 사용해 라즈베리 파이 제로를 확장하면, 사실상 보안 센서 및 장치를 무제한으로 연결할 수 있다.
아두이노(Arduino) 플랫폼은 사물인터넷의 네트워킹 애플리케이션을 포함한 여러 프로젝트를 작성하는 데 유용하고 다재다능하게 쓰이므로 이 책에서 사용하고 있다. 이 책에서는 아두이노 보드를 사용해 노드에 연결된 장치를 통합하고 라즈베리 파이를 통합해 허브로 동작하는 중앙 인터페이스에서 장치를 제어하고 모니터링하는 방법을 설명한다. 소프트웨어 프로그램을 사용하면 자바스크립트와 HTML5, Node.js 같은 기술을 기반으로 하는 사물인터넷 시스템을 만들 수 있다.
이 책을 통해 라즈베리 파이 보드를 사용한 몇 가지 도모틱스(domotics) 프로젝트를 살펴봄으로써 자신의 프로젝트를 제작할 수 있게 될 것이다. 각 장의 프로젝트는 준비 작업부터 시작해 하드웨어, 센서, 통신, 소프트웨어 프로그래밍으로 구성돼 있어 완벽한 제어 및 모니터링 시스템을 갖추도록 여러분을 안내해줄 것이다.

지은이 소개

루벤 올리바 라모스(Rubén Oliva Ramos)

컴퓨터 엔지니어로, 멕시코 레온(Leon)에 있는 살바지오(Salle Bajio) 대학에서 컴퓨터와 전자 시스템 공학, 텔레커뮤니케이션 및 네트워킹 분야 석사 학위를 받았다. 웹 프레임워크와 클라우드 서비스를 사용해 아두이노와 라즈베리 파이에 연결된 장치를 제어하고 모니터링하는 사물인터넷 애플리케이션 개발에서 5년 이상 경험을 쌓았다. 살바지오 대학에서 메카트로닉 시스템 디자인과 공학 석사 과정 학생들에게 메카트로닉을 가르치고 있다. 또한 멕시코 레온에 있는 Centro de Bachillerato Tecnologico Industrial에 근무하면서 전자 및 로봇 제어, 메카트로닉 마이크로 컨트롤러를 가르치고 있다. 안드로이드와 iOS, 윈도우폰, 비주얼 스튜디오, .NET, HTML5, PHP, CSS, Ajax, 자바스크립트, 앵귤러, ASP, .NET 데이터베이스(SQlite, 몽고DB, MySQL), 웹 서버(Node.js와 IIS) 같은 기술을 사용해 모니터링 시스템과 데이터로거(datalogger) 데이터 같은 분야의 컨설턴트 및 개발자 프로젝트에서 일했다. 또한 아두이노와 라즈베리 파이, 이더넷 실드, GPS와 GSM/GPRS, ESP8266, 데이터 수집과 프로그래밍을 위한 제어 및 모니터링 시스템에 대한 다양한 하드웨어 프로그래밍을 수행했다.

옮긴이의 말

사물인터넷이라는 용어가 등장하고 세간의 주목을 받기 시작한 지도 몇 년이 지났고 이미 우리 생활에 익숙하게 사용되기 시작했다. 하지만 사물인터넷 개발자나 프로젝트를 배우는 학생들에게 정말 유용하면서 체계적인 사전 지식을 제공해주는 자료나 관련 서적은 여전히 많지 않은 것이 현실이다.
그런 면에서 이 책은 개발자와 학생들에게 인기 있는 라즈베리 파이 제로와 자바스크립트를 사용해 사물인터넷 프로그래밍 세계에 발을 들여놓는데 필요한 사전 지식을 배우고 애플리케이션을 구축할 수 있게 돕는 좋은 가이드가 될 것으로 기대된다. 이 책에서는 사물인터넷 구축에 가장 널리 사용되는 라즈베리 파이와 아두이노 플랫폼, 자바스크립트, HTML5, Node.js 같은 친숙한 기술을 사용한다. 또한 온도, 습도, 빛, 가스, 모션 등 다양한 센서를 사용해 외부 환경을 모니터링하고 스마트 홈을 제어하는 실질적인 프로젝트를 제공함으로써 독자들이 눈으로 확인하며 쉽게 따라갈 수 있게 구성돼 있다.
상투적인 말로 들리겠지만, 작업을 마치고 나면 항상 미흡한 부분에 대해 아쉬움이 남기 마련이다. 꽤 많은 노력을 기울여 작업했지만, 저자의 의도를 충분히 전달하지 못했거나 오역이 있을 수 있다. 잘못된 부분이나 책의 내용과 관련해 어떤 의견이라도 보내준다면 소중히 다루며 검토해볼 것을 약속한다.

옮긴이 소개

류영선

소프트웨어 엔지니어로서 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C 및 다양한 국제 표준화 단체에서 웹 관련 표준화 업무를 담당하고 있다. 최근에는 웹 기술을 PC에서 벗어나 모바일이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등 다양한 IoT 디바이스에 접목하는 오픈 웹 플랫폼(Open Web Platform)에 관심을 가지고 관련 기술을 계속 연구 중이다. 아울러 워크숍이나 세미나에서의 강연과 학술 기고 등을 통해 오픈 웹 플랫폼과 웹 기술을 전파하는 데 힘쓰고 있다.
에이콘출판사에서 펴낸 『반응형 웹 디자인』(2012)과 『실전 예제로 배우는 반응형 웹 디자인』(2014), 『HTML5 웹소켓 프로그래밍』(2014), 『WebRTC 프로그래밍』(2015), 『Three.js로 3D 그래픽 만들기 2/e』(2016), 『자바스크립트 디자인 패턴』(2016), 『자바스크립트 JSON 쿡북』(2017), 『자바스크립트 언락』(2017), 『객체지향 자바스크립트 3/e』(2017) 등을 번역했다.

목차

목차
  • 1장. 라즈베리 파이 제로 시작하기
    • 라즈베리 파이 제로 설정하기
      • SD 카드 준비
      • 라즈비안 운영체제 설치
      • 직렬 콘솔 케이블로 라즈베리 파이 제로 디버깅하기
      • 직렬 COM 인터페이스 테스트 및 접근하기
    • 홈 네트워크에 연결하고 원격으로 접근하기
      • 이더넷 어댑터 연결
      • SSH로 라즈베리 파이 제로에 접근하기
      • Wi-Fi 네트워크 연결
    • 무선 도구 설치 방법
      • IP 주소 및 무선 네트워크 구성
    • 통신 테스트
      • 컴퓨터에서 핑 테스트
    • 패키지 저장소 업데이트
    • 원격 데스크톱
      • 윈도우 원격 데스크톱
    • 웹 서버 구성
    • PHP 설치 테스트
    • 요약

  • 2장. 라즈베리 파이 제로에 장치 연결하기
    • 디지털 입력: 센서 DS18B20 연결하기
      • 하드웨어 요구 사항
      • 하드웨어 연결
    • 단선 프로토콜 구성
      • 소프트웨어 구성
      • 화면에 판독 값 표시하기
    • MCP3008 ADC 변환기를 사용해 아날로그 입력 연결하기
    • 라즈베리 파이 GPIO 헤더
      • 파이썬 스크립트로 데이터 읽기
    • RTC 연결하기
      • I2C 설정
    • DS3231 모듈 설정
      • 하드웨어 설정
    • RTC 테스트
    • I2C 장치 설정
    • 최종 테스트에 실시간 클럭 넣기
    • 요약

  • 3장. 센서 연결: 실제 데이터 측정
    • 유량 센서를 사용해 물의 양 측정하기
      • 하드웨어 연결
      • 센서 신호 읽기
    • 아두이노로 펄스를 읽고 계산하기
    • 펄스 카운트로 물의 유속 계산하기
    • 물의 유속과 부피 계산
      • LCD에 측정된 매개변수 표시하기
    • 가스 농도 측정
      • 아두이노 보드에 센서 연결하기
    • 센서로 알코올 농도 측정
    • 센서로 화재 감지하기
    • 식물의 습도 측정
    • 그릇의 수위 측정
    • 온도, 습도, 빛을 측정하고 LCD에 데이터 표시하기
      • 하드웨어 및 소프트웨어 요구 사항
      • 센서 테스트
      • LCD에 데이터 표시하기
    • PIR 센서로 움직임 감지
      • 아두이노에 PIR 센서 연결하기
    • 리드 스위치로 도어가 열려 있는지 감지
    • 지문 센서로 출입 권한이 있는 사람 찾기
      • 하드웨어 구성
      • 지문 저장
      • 센서 테스트
    • 요약

  • 4장. 연결 장치 제어
    • Nodejs로 간단한 웹 서버 만들기
    • Restful API와 Nodejs를 사용해 라즈베리 파이 제로에서 릴레이 제어하기
      • JSON 구조
      • aREST API 명령
      • 라즈베리 파이 제로에 Nodejs 설치하기
    • 웹 브라우저에서 aREST 명령을 사용해 릴레이 제어하기
      • 웹 서버 구성
    • 컴퓨터에서 Nodejs로 웹 서버 구성하기
      • Nodejs 다운로드
      • Nodejs 설치
      • Nodejs로 웹 서버 포트 8080 구성하기
    • 아두이노 Wi-Fi로 Nodejs를 사용해 온도, 습도, 빛 모니터링하기
      • Wi-Fi 네트워크 연결
    • 아두이노 이더넷으로 Nodejs를 사용해 온도, 습도, 빛 모니터링하기
      • 아두이노 이더넷 실드 애플리케이션을 위한 코드
      • Nodejs에서 장치 구성하기
    • 요약

  • 5장. 웹캠을 추가해 보안 시스템 모니터링하기
    • 아두이노와 라즈베리 파이 간의 상호작용
      • 라즈비안에 아두이노 IDE 설치하기
      • 라즈베리 파이에 원격 접속하기
      • 그래픽 인터페이스에서 아두이노 실행하기
    • 라즈비안의 아두이노 인터페이스
      • 인터페이스 준비
      • 직렬 포트 선택
      • 그래픽 인터페이스에서 스케치 다운로드
    • 라즈베리 파이 제로에서 아두이노에 연결된 출력 제어하기
    • 파이썬에서 아두이노 보드 제어하기
      • 하드웨어 연결
    • 아두이노에 TTL 직렬 카메라를 연결하고 마이크로 SD에
    • 사진 저장하기
    • 직렬 TTL 카메라로 모션 감지하기
    • 라즈베리 파이에서 스냅샷 제어하기
      • 사진 촬영 함수 코드
    • 웹 페이지에서 카메라 제어하기
      • PHP에서 파이썬 스크립트 호출하기
      • 파이썬 스크립트 코드
    • 네트워크 보안을 위해 USB 카메라 모니터링하기
      • 아두이노 YUN 구성
      • MJPG-STREAMER 서버에서 모니터링하기
      • 라즈베리 파이에서 USB 카메라 모니터링하기
    • 요약

  • 6장. 웹 모니터 빌드와 대시보드에서의 장치 제어
    • MySQL 데이터베이스 서버 구성
      • MySQL 설치
      • PHP용 MySQL 드라이버 설치
      • PHP와 MySQL 테스트
    • 데이터베이스 관리를 위한 PhpMyAdmin 설치
      • 아파치 서버 구성
      • PhpMyAdmin 원격 패널 접속
      • 아두이노 데이터베이스 표시
      • 아두이노와 이더넷 실드에서 웹 서버로 데이터 보내기
    • MySQL을 사용한 데이터로거
      • 스크립트 소프트웨어 프로그래밍
      • 연결 테스트
    • 데이터베이스 데이터 쿼리
      • 스크립트용 소프트웨어
      • 특정 데이터를 표시하는 스크립트
      • 온도 기록 쿼리
    • LED 제어와 밝기 조절
      • 소프트웨어 요구 사항
      • LED 테스트
      • 인터페이스에서 LED 제어하기
    • DC 모터 속도 제어
    • 전기 회로로 조명 제어
      • 가전 제품
    • 기타 제품
      • 도어록 제어
      • 관수 장치 제어
    • 라즈베리 파이 제로에 원격 접속하기
      • 모뎀 설정 방법
      • 동적 DNS 구성
      • No-iporg 계정 생성
    • 조명 제어 및 소비 전류 측정
      • 제어 및 모니터링 인터페이스 구축하기
      • 제어 및 모니터링 인터페이스
    • 연결된 장치와 센서에서 아두이노, Wi-Fi, 이더넷 실드의 제어 및 모니터링
      • 단일 인터페이스에서 장치 제어 및 모니터링 코드 작성
      • 모니터링 및 제어할 장치 추가
    • 요약

  • 7장. 사물인터넷 대시보드로 스파이 폴리스 구축하기
    • 소음을 감지하는 스파이 마이크
      • 소프트웨어 코드
    • AC 램프 조광기의 전류 조절하기
      • 하드웨어 요구 사항
      • 소프트웨어 코드
    • RFID 카드로 접근 제어하기
      • 하드웨어 요구 사항
      • 소프트웨어 요구 사항
      • 소프트웨어 코드
    • 연기 감지
      • 소프트웨어 코드
    • 라즈베리 파이 제로를 사용해 경보 시스템 구축하기
      • 라즈베리 파이 제로와 모션 센서 연결
      • 소프트웨어 코드
      • 경보 모듈
      • 소프트웨어 코드
      • 중앙 인터페이스
      • 그래픽 인터페이스
    • 원격 대시보드에서 온습도 모니터링하기
      • 센서 테스트 탐색
      • 원격 대시보드 구성(Dweetio)
    • 요약

  • 8장. 스마트폰에서 장치를 모니터링하고 제어하기
    • APP 인벤터를 사용해 스마트폰에서 릴레이 제어
      • 하드웨어 요구 사항
      • 소프트웨어 요구 사항
    • 첫 번째 애플리케이션 작성
      • 인터페이스 디자인
      • APP 인벤터와 아두이노 이더넷 실드 간의 통신
      • APP 인벤터 코드
    • 이더넷 실드를 사용해 안드로이드 스튜디오에서 JSON 응답 읽기
    • 안드로이드 애플리케이션
      • 자바 클래스
      • 애플리케이션 권한
    • 안드로이드 애플리케이션을 사용해 DC 모터 제어하기
      • 하드웨어 요구 사항
    • 라즈베리 파이 제로를 사용해 안드로이드에서 출력 제어
    • 블루투스를 통해 라즈베리 파이로 출력 제어
      • 안드로이드 애플리케이션에서 조명 제어
    • 요약

  • 9장. 통합
    • 시스템 통합: 개발 프로젝트
      • 조명 센서의 세부 사항
      • 모션 센서
      • 자동 조명 컨트롤러
    • 태양광 전력 모니터 회로
    • 토양 센서를 가진 자동 관개 시스템
    • 아두이노 수위 컨트롤러
    • 블루투스 기반 가정 자동화
    • 매트릭스 키보드를 사용한 접근 제어
      • 키패드
      • 코드를 표시하기 위한 LCD 화면 연결
    • 키패드로 도어록 제어하기
      • 키패드를 사용해 접근하는 코드
    • 시스템 제어를 릴레이 및 장치와 통합
      • 여러 기기 제어
      • 전체 시스템
    • 전원 공급 장치 설정 방법
      • AC 부하용 전원 공급 장치
      • 아두이노 보드에 24 DC 볼트의 릴레이 연결
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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