Preface |
|
xi | |
Who This Book Is For |
|
xii | |
What You Need to Know |
|
xiii | |
Contents of This Book |
|
xiii | |
On Buying Parts |
|
xiv | |
Using Code Examples |
|
xv | |
Using Circuit Examples |
|
xv | |
Note on the Second Edition |
|
xvi | |
Note on the Third Edition |
|
xvii | |
Acknowledgments |
|
xviii | |
|
|
1 | (44) |
|
It Starts with the Stuff You Touch |
|
|
2 | (1) |
|
|
2 | (1) |
|
Computers of All Shapes and Sizes |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
5 | (37) |
|
|
42 | (1) |
|
It Ends with the Stuff You Touch |
|
|
43 | (2) |
|
Chapter 2 The Simplest Network |
|
|
45 | (42) |
|
|
46 | (2) |
|
|
48 | (2) |
|
Making the Connection: The Lower Layers |
|
|
50 | (22) |
|
|
54 | (4) |
|
|
58 | (14) |
|
|
72 | (12) |
|
Project 3 Wireless Monski Pong |
|
|
74 | (4) |
|
Project 4 Making Your Own Arduino-Compatible Board |
|
|
78 | (6) |
|
|
84 | (3) |
|
Chapter 3 A More Complex Network |
|
|
87 | (48) |
|
|
88 | (1) |
|
Network Maps and Addresses |
|
|
89 | (7) |
|
Clients, Servers, and Message Protocols |
|
|
96 | (36) |
|
|
107 | (25) |
|
|
132 | (3) |
|
Chapter 4 Look, Ma, No Computer! Microcontrollers on the Internet |
|
|
135 | (38) |
|
|
136 | (1) |
|
Introducing Network Modules |
|
|
137 | (10) |
|
Project 6 Hello Internet! |
|
|
139 | (8) |
|
An Embedded Network Client Application |
|
|
147 | (10) |
|
Project 7 Networked Air-Quality Meter |
|
|
147 | (10) |
|
|
157 | (3) |
|
Representational State Transfer and Web APIs |
|
|
160 | (4) |
|
Programming and Troubleshooting Tools for Embedded Modules |
|
|
164 | (7) |
|
|
171 | (2) |
|
Chapter 5 Communicating in (Near) Real Time |
|
|
173 | (32) |
|
|
174 | (1) |
|
Interactive Systems and Feedback Loops |
|
|
175 | (1) |
|
Transmission Control Protocol: Sockets & Sessions |
|
|
176 | (3) |
|
Project 8 A Video Control Application |
|
|
177 | (2) |
|
|
179 | (14) |
|
Project 9 A WebSocket Video Controller |
|
|
191 | (2) |
|
The Server and Browser Client |
|
|
193 | (6) |
|
The WebSocket Controller Client |
|
|
199 | (3) |
|
|
202 | (3) |
|
Chapter 6 Wireless Communication |
|
|
205 | (38) |
|
|
206 | (2) |
|
Why Isn't Everything Wireless? |
|
|
208 | (1) |
|
Two Flavors of Wireless: Infrared and Radio |
|
|
209 | (5) |
|
Project 10 Infrared Control of a Digital Camera |
|
|
211 | (3) |
|
|
214 | (3) |
|
|
217 | (2) |
|
|
219 | (21) |
|
Project 11 Duplex Radio Transmission |
|
|
221 | (7) |
|
Project 12 Bluetooth LE Camera Control |
|
|
228 | (12) |
|
|
240 | (3) |
|
Chapter 7 Sessionless Networks and Binary Protocols |
|
|
243 | (40) |
|
|
244 | (2) |
|
|
246 | (1) |
|
Broadcast vs. Direct Messages |
|
|
247 | (15) |
|
Project 13 Networked Candles |
|
|
251 | (11) |
|
XBee: Another Message-Based Protocol |
|
|
262 | (18) |
|
Project 14 Reporting Toxic Chemicals in the Shop |
|
|
266 | (14) |
|
|
280 | (3) |
|
Chapter 8 How to Locate (Almost) Anything |
|
|
283 | (40) |
|
|
284 | (2) |
|
Network Location and Physical Location |
|
|
286 | (3) |
|
|
289 | (10) |
|
Project 15 Infrared Distance Ranger |
|
|
290 | (2) |
|
Project 16 Ultrasonic Distance Ranger |
|
|
292 | (3) |
|
Project 17 Reading Received Signal Strength |
|
|
295 | (4) |
|
Determining Position Through Trilateration |
|
|
299 | (8) |
|
Project 18 Geolocation Services and the NMEA Protocol |
|
|
300 | (7) |
|
Determining Orientation and Attitude |
|
|
307 | (14) |
|
Project 19 Determining Heading Using a Digital Compass |
|
|
309 | (3) |
|
Project 20 Determining Attitude |
|
|
312 | (9) |
|
|
321 | (2) |
|
|
323 | (54) |
|
|
324 | (2) |
|
|
326 | (28) |
|
Project 21 Color Recognition Using a Webcam |
|
|
328 | (4) |
|
Project 22 Face Detection Using a Webcam |
|
|
332 | (3) |
|
Project 23 2D Barcode Recognition Using a Webcam |
|
|
335 | (5) |
|
Project 24 Reading RFID Tags |
|
|
340 | (3) |
|
Project 25 Reading and Writing NDEF Messages |
|
|
343 | (2) |
|
Project 26 NFC Meets Home Automation |
|
|
345 | (9) |
|
Security of Networked Devices |
|
|
354 | (15) |
|
Project 27 Two-Factor Authentication Using NFC |
|
|
355 | (14) |
|
|
369 | (5) |
|
|
371 | (3) |
|
|
374 | (3) |
|
Chapter 10 Mobile Phone Networks and the Physical World |
|
|
377 | (64) |
|
|
378 | (2) |
|
|
380 | (28) |
|
|
383 | (19) |
|
Project 30 Phoning the Thermostat |
|
|
402 | (6) |
|
Text-Messaging Interfaces |
|
|
408 | (3) |
|
Microcontrollers on Mobile Phone Networks |
|
|
411 | (6) |
|
Native Applications for Mobile Phones |
|
|
417 | (22) |
|
Project 31 Personal Mobile Datalogger |
|
|
423 | (16) |
|
|
439 | (2) |
|
Appendix: Where to Get Stuff |
|
|
441 | |
|
|
445 | (3) |
|
|
448 | |