chapter 1. 아두이노 소개
1.1 아두이노(Arduino) 란 ?
1.2 아두이노 개발환경
1.3 Arduino UNO R3로 시작하기
chapter 2. 전기, 전자의 기초
2.1 전류와 전압
2.2 저항
2.3 LED
2.4 브래드보드 사용법
2.5 엔지니어링 공구
2.6 테스터기 사용법
chapter 3. 디지털 입력과 출력
3.1 디지털 출력이란 ?
3.2 LED 깜박이기
3.3 7 세그먼트 구동하기
3.4 버튼을 이용하여 스케치 없이 LED 제어하기
3.5 버튼을 이용하여 LED 제어하기
3.6 버튼을 이용하여 LED 상태 제어하기
3.7 부저(Buzzer) 울리기
chapter 4. 시리얼(RS232) 통신
4.1 시리얼(RS232) 통신 소개
4.2 PC와 시리얼(RS232) 통신하기
4.3 시리얼(RS232) 통신으로 LED 제어하기
chapter 5. 아날로그 입력과 출력
5.1 펄스(PWM)로 LED 밝기 조절하기
5.2 펄스(PWM)로 부저(Buzzer)로 연주하기
5.3 가변저항 값 읽어오기
5.4 테스터기 흉내 - 전압 값 읽기
chapter 6. LCD 사용하기
6.1 패러럴 LCD 디스플레이(4-bit 모드)
6.2 패러럴 LCD 디스플레이(8-bit 모드)
6.3 시리얼 LCD 디스플레이
chapter 7. 실제 세계와의 통로 센서
7.1 센서 소개
7.2 밝기 감지하기 - CDS 조도센서
7.3 온도, 습도 감지하기 - DHT11 온습도 센서
7.4 화재 감지하기 - 화염감지 센서
7.5 기울기(Tilt) 감지하기 - SW-520D 기울기 센서
7.6 진동 감지하기 - SW-18020P 진동 센서
7.7 장애물과의 거리 감지하기 - 초음파센서
chapter 8. 모터 제어하기
8.1 소형 DC 모터 사용하기
8.2 서보모터 제어하기
8.3 스테핑 모터
chapter 9. 디지털 통신 인터페이스
9.1 디지털 통신 인터페이스 개요
9.2 I2C 통신 규약
9.3 I2C 통신으로 자이로 센서 사용하기 - L3G4200D
9.4 SPI 통신 규약
9.5 SPI 통신으로 자이로 센서 사용하기 - L3G4200D
9.6 자이로 센서로 서보모터 제어하기
chapter 10. 적외선(IRDA) 통신
10.1 적외선 수신하기
10.2 적외선 송신하기
chapter 11. 지그비(Zigbee) 네트워킹
11.1 지그비(Zigbee) 란 ?
11.2 지그비(Zigbee) 통신 테스트
11.3 아두이노 지그비(Zigbee) 통신
11.4 특정 XBee에만 통신하기
chapter 12. 블루투스 통신
12.1 블루투스 통신
12.2 안드로이드 스마트 폰으로 LED 제어하기
chapter 13. 이더넷(Ethernet) 네트워킹
13.1 이더넷(Ethernet) 란 ?
13.2 Arduino Ethernet Shield 소개
13.3 웹 클라이언트(고정 IP)
13.4 웹 브라우저로 아두이노 LED 제어하기
chapter 14. 사물인터넷이란?
14.1 사물인터넷이란 무엇인가?
14.2 사물인터넷 주요 서비스
14.3 주요 IoT 제품 및 서비스 동향
14.4 주요 IoT 구성요소 및 현황
14.5 가전, IT 기업들의 사물인터넷 플랫폼 주도 현황
chapter 15. 스마트홈
15.1 스마트홈 서비스 개요
15.2 스마트홈 서비스 종류
Chapter 1. 아두이노 시작하기에서는 아두이노 제품들의 종류와 사용법에 대해서 간단히 설명을 하고 Chapter 2∼9까지는Arduino UNO R3 제품을 이용해서 아두이노 하드웨어와 함께 사용할 수 있는 많은 간단한 부품들과 센서, 확장 보드들의 자세한 사용법과 응용에 대해서 설명한다. Chapter 10부터는 적외선 통신과, 지그비(Zigbee) 통신, 블루투스(Bluetooth) 통신을 이용해서 무선으로 획득한 센서의 데이터를 전송하는 실험을 해보고, Chapter 12에서는 Arduino Ethernet Shield 제품을 이용해서 아두이노를 인터넷에 연결하는 방법에 대해서 설명한다.
이 책의 집필 의도는 이런 멋진 기능을 구현하기 위해서 복잡한 공학적인 내용을 설명하려고 하는 것은 아니다. 때문에 C언어에 대한 자세한 설명보다는 동작에 대한 기초 원리와 아두이노에서 어떻게 이것을 활용할 수 있는가에 초점을 맞추었다.
공학을 전공하지 않아도 C/C++을 모르는 사람도 아두이노 IDE 프로그램과 아두이노 하드웨어만 갖춘다면 간단한 실습을 통해서 누구나 쉽게 아두이노 하드웨어들과 외부 세계를 연결해 주는 다양한 센서들의 사용법을 익힐 수 있도록 하는 것이 목표이다. 스케치 코드에서 사용된 C/C++ 언어에 대해서 완전하게 그리고 자세히 알고 싶은 독자는 시중에 넘쳐나는 C/C++문법관련 도서나 웹 사이트를 통해서 얼마든지 알아갈 수 있다.
물론 이미 시중에는 이러한 비슷한 형식을 갖추고 출간되어 있는 많은 아두이노 책들이 나와 있다. 거기에는 번역서도 있고 국내 저자들에 의해서 집필된 도서도 있다. 필자도 번역서와 국내 서적들을 여러 권 읽어 보았다. 이미 발간된 몇 권의 책을 읽어 보면서 많이 아쉬웠던 부분이 있었는데, 그것은 아두이노 기본 하드웨어를 제외하고 책에서 실습에 사용되어진 다양한 센서들과 입/출력 장치들의 실험 재료들을 구하기가 어려워서 직접 실험을 해볼 수가 없기 때문에 책의 내용을 완벽하게 이해하는데 한계가 있었다는 것이다. 특히 외국 번역서들은 실험 재료들을 구할 수 있는 온라인 URL을 제공하지만 모두가 해외 구매처여서 국내 사용자들이 직접 구매하기는 쉽지 않았고 국내 서적들도 실험 재료를 구매하거나 구할 수 있는 자료가 많지는 않았다.
이 책은 집필할 때부터 교재에 사용된 모든 실험 세트들을 같이 제공하기 위해서 저렴하고 구매하기 쉬운 재료들을 사용하였고 본 교재에서 사용된 모든 실험 재료들을 갖춘 통합 개발키트도 같이 판매하고 있다. 통합 개발키트는http://www.deviceshop.net에서 쉽게 구매할 수 있다. 또한 실험에 사용된 개별 재료로도 구매 가능하다.
시간이 된다면 이 교재의 후속편으로 아두이노 응용 기술들을 다루는 조금 더 난이도가 있는 응용 프로그램들에 대한 내용을 집필해 보고 싶다. 특히나 최근에 가격이 많이 내린 3D 프린터를 이용하여 아두이노 보드와 3D프린터로 출력한 기구물들을 이용하여 실제 움직이는 RC 자동차, 쿼드콥터, 탱크와 같은 제품의 Prototype을 해보고 싶다.