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

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

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

★ 이 책에서 다루는 내용 ★

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

루벤올리바라모스

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

목차

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

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

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

4장.연결장치제어
-Nodejs로간단한웹서버만들기
-RestfulAPI와Nodejs를사용해라즈베리파이제로에서릴레이제어하기
--JSON구조
--aRESTAPI명령
--라즈베리파이제로에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부하용전원공급장치
--아두이노보드에24DC볼트의릴레이연결
-요약

출판사 서평

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

[이책의구성]

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

[저자의말]

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

[역자의말]

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