{"product_id":"exploring-arduino-isbn-9781119405375","title":"Exploring Arduino","description":"\u003cb\u003eThe bestselling beginner Arduino guide, updated with new projects!\u003c\/b\u003e \u003cp\u003e\u003ci\u003eExploring Arduino\u003c\/i\u003e makes electrical engineering and embedded software accessible. Learn step by step everything you need to know about electrical engineering, programming, and human-computer interaction through a series of increasingly complex projects. Arduino guru Jeremy Blum walks you through each build, providing code snippets and schematics that will remain useful for future projects. Projects are accompanied by downloadable source code, tips and tricks, and video tutorials to help you master Arduino. You'll gain the skills you need to develop your own microcontroller projects! \u003c\/p\u003e\u003cp\u003eThis new 2nd edition has been updated to cover the rapidly-expanding Arduino ecosystem, and includes new full-color graphics for easier reference. Servo motors and stepper motors are covered in richer detail, and you'll find more excerpts about technical details behind the topics covered in the book. Wireless connectivity and the Internet-of-Things are now more prominently featured in the advanced projects to reflect Arduino's growing capabilities. You'll learn how Arduino compares to its competition, and how to determine which board is right for your project. If you're ready to start creating, this book is your ultimate guide! \u003c\/p\u003e\u003cul\u003e \u003cli\u003eGet up to date on the evolving Arduino hardware, software, and capabilities\u003c\/li\u003e \u003cli\u003eBuild projects that interface with other devices—wirelessly!\u003c\/li\u003e \u003cli\u003eLearn the basics of electrical engineering and programming\u003c\/li\u003e \u003cli\u003eAccess downloadable materials and source code for every project\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eWhether you're a first-timer just starting out in electronics, or a pro looking to mock-up more complex builds, Arduino is a fantastic tool for building a variety of devices. This book offers a comprehensive tour of the hardware itself, plus in-depth introduction to the various peripherals, tools, and techniques used to turn your little Arduino device into something useful, artistic, and educational. \u003ci\u003eExploring Arduino\u003c\/i\u003e is your roadmap to adventure—start your journey today! \u003c\/p\u003e\u003cp\u003eIntroduction xxv\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I Arduino Engineering Basics 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Getting Started and Understanding the Arduino Landscape 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eExploring the Arduino Ecosystem 4\u003c\/p\u003e \u003cp\u003eArduino Functionality 5\u003c\/p\u003e \u003cp\u003eThe Microcontroller 7\u003c\/p\u003e \u003cp\u003eProgramming Interfaces 8\u003c\/p\u003e \u003cp\u003eInput\/Output: GPIO, ADCs, and Communication Busses 9\u003c\/p\u003e \u003cp\u003ePower 9\u003c\/p\u003e \u003cp\u003eArduino Boards 11\u003c\/p\u003e \u003cp\u003eCreating Your First Program 15\u003c\/p\u003e \u003cp\u003eDownloading and Installing the Arduino IDE 16\u003c\/p\u003e \u003cp\u003eRunning the IDE and Connecting to the Arduino 17\u003c\/p\u003e \u003cp\u003eBreaking Down Your First Program 18\u003c\/p\u003e \u003cp\u003eSummary 21\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Digital Inputs, Outputs, and Pulse-Width Modulation 23\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDigital Outputs 24\u003c\/p\u003e \u003cp\u003eWiring Up an LED and Using Breadboards 24\u003c\/p\u003e \u003cp\u003eWorking with Breadboards 24\u003c\/p\u003e \u003cp\u003eWiring LEDs 25\u003c\/p\u003e \u003cp\u003eProgramming Digital Outputs 29\u003c\/p\u003e \u003cp\u003eUsing For Loops 30\u003c\/p\u003e \u003cp\u003ePulse-Width Modulation with \u003ci\u003eanalogWrite()\u003c\/i\u003e 31\u003c\/p\u003e \u003cp\u003eReading Digital Inputs 35\u003c\/p\u003e \u003cp\u003eReading Digital Inputs with Pull-Down Resistors 35\u003c\/p\u003e \u003cp\u003eWorking with “Bouncy” Buttons 38\u003c\/p\u003e \u003cp\u003eBuilding a Controllable RGB LED Nightlight 42\u003c\/p\u003e \u003cp\u003eSummary 46\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Interfacing with Analog Sensors 47\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Analog and Digital Signals 48\u003c\/p\u003e \u003cp\u003eComparing Analog and Digital Signals 48\u003c\/p\u003e \u003cp\u003eConverting an Analog Signal to Digital 49\u003c\/p\u003e \u003cp\u003eReading Analog Sensors with the Arduino: \u003ci\u003eanalogRead()\u003c\/i\u003e 51\u003c\/p\u003e \u003cp\u003eReading a Potentiometer 51\u003c\/p\u003e \u003cp\u003eUsing Analog Sensors 56\u003c\/p\u003e \u003cp\u003eUsing Variable Resistors to Make Your Own Analog Sensors 60\u003c\/p\u003e \u003cp\u003eUsing Resistive Voltage Dividers 61\u003c\/p\u003e \u003cp\u003eUsing Analog Inputs to Control Analog Outputs 64\u003c\/p\u003e \u003cp\u003eSummary 66\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Interfacing with Your Environment\u003c\/b\u003e\u003cb\u003e 67\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4 Using Transistors and Driving DC Motors 69\u003c\/p\u003e \u003cp\u003eDriving DC Motors 70\u003c\/p\u003e \u003cp\u003eHandling High-Current Inductive Loads 71\u003c\/p\u003e \u003cp\u003eUsing Transistors as Switches 72\u003c\/p\u003e \u003cp\u003eUsing Protection Diodes73\u003c\/p\u003e \u003cp\u003eUsing a Secondary Power Source 74\u003c\/p\u003e \u003cp\u003eWiring the Motor 74\u003c\/p\u003e \u003cp\u003eControlling Motor Speed with PWM 76\u003c\/p\u003e \u003cp\u003eUsing an H-Bridge to Control DC Motor Direction 78\u003c\/p\u003e \u003cp\u003eBuilding an H-Bridge Circuit 80\u003c\/p\u003e \u003cp\u003eOperating an H-Bridge Circuit 82\u003c\/p\u003e \u003cp\u003eBuilding a Roving Robot 86\u003c\/p\u003e \u003cp\u003eChoosing the Robot Parts 87\u003c\/p\u003e \u003cp\u003eSelecting a Motor and Gearbox 87\u003c\/p\u003e \u003cp\u003ePowering Your Robot 87\u003c\/p\u003e \u003cp\u003eConstructing the Robot 89\u003c\/p\u003e \u003cp\u003eWriting the Robot Software 92\u003c\/p\u003e \u003cp\u003eBringing It Together 96\u003c\/p\u003e \u003cp\u003eSummary 97\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Driving Stepper and Servo Motors 99\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDriving Servo Motors 100\u003c\/p\u003e \u003cp\u003eUnderstanding the Difference between Continuous Rotation and Standard Servos 100\u003c\/p\u003e \u003cp\u003eUnderstanding Servo Control 101\u003c\/p\u003e \u003cp\u003eControlling a Servo 104\u003c\/p\u003e \u003cp\u003eBuilding a Sweeping Distance Sensor 105\u003c\/p\u003e \u003cp\u003eUnderstanding and Driving Stepper Motors 109\u003c\/p\u003e \u003cp\u003eHow Bipolar Stepper Motors Work 111\u003c\/p\u003e \u003cp\u003eMaking Your Stepper Move 113\u003c\/p\u003e \u003cp\u003eBuilding a “One-Minute Chronograph” 117\u003c\/p\u003e \u003cp\u003eWiring and Building the Chronograph 117\u003c\/p\u003e \u003cp\u003eProgramming the Chronograph 119\u003c\/p\u003e \u003cp\u003eSummary 124\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Making Sounds and Music 125\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding How Speakers Work 126\u003c\/p\u003e \u003cp\u003eThe Properties of Sound 126\u003c\/p\u003e \u003cp\u003eHow a Speaker Produces Sound 128\u003c\/p\u003e \u003cp\u003eUsing tone() to Make Sounds 129\u003c\/p\u003e \u003cp\u003eIncluding a Definition File 129\u003c\/p\u003e \u003cp\u003eWiring the Speaker 130\u003c\/p\u003e \u003cp\u003eMaking Sound Sequences 133\u003c\/p\u003e \u003cp\u003eUsing Arrays 133\u003c\/p\u003e \u003cp\u003eMaking Note and Duration Arrays 134\u003c\/p\u003e \u003cp\u003eCompleting the Program 134\u003c\/p\u003e \u003cp\u003eUnderstanding the Limitations of the tone() Function 136\u003c\/p\u003e \u003cp\u003eBuilding a Micro Piano 136\u003c\/p\u003e \u003cp\u003eSummary 139\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 USB Serial Communication 141\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the Arduino’s Serial Communication Capabilities 142\u003c\/p\u003e \u003cp\u003eArduino Boards with an Internal or External FTDI or Silicon Labs USB-to-Serial Converter 143\u003c\/p\u003e \u003cp\u003eArduino Boards with a Secondary USB-Capable ATmega MCU Emulating a Serial Converter 146\u003c\/p\u003e \u003cp\u003eArduino Boards with a Single USB-Capable MCU 147\u003c\/p\u003e \u003cp\u003eArduino Boards with USB-Host Capabilities 147\u003c\/p\u003e \u003cp\u003eListening to the Arduino 148\u003c\/p\u003e \u003cp\u003eUsing \u003ci\u003eprint\u003c\/i\u003e Statements 148\u003c\/p\u003e \u003cp\u003eUsing Special Characters 150\u003c\/p\u003e \u003cp\u003eChanging Data Type Representations 152\u003c\/p\u003e \u003cp\u003eTalking to the Arduino 152\u003c\/p\u003e \u003cp\u003eConfiguring the Arduino IDE’s Serial Monitor to Send Command Strings 152\u003c\/p\u003e \u003cp\u003eReading Incoming Data from a Computer or Other Serial Device 153\u003c\/p\u003e \u003cp\u003eTelling the Arduino to Echo Incoming Data 153\u003c\/p\u003e \u003cp\u003eUnderstanding the Differences between Chars and Ints 154\u003c\/p\u003e \u003cp\u003eSending Single Characters to Control an LED 156\u003c\/p\u003e \u003cp\u003eSending Lists of Values to Control an RGB LED 158\u003c\/p\u003e \u003cp\u003eTalking to a Desktop App 161\u003c\/p\u003e \u003cp\u003eInstalling Processing 162\u003c\/p\u003e \u003cp\u003eControlling a Processing Sketch from Your Arduino 163\u003c\/p\u003e \u003cp\u003eSending Data from Processing to Your Arduino 166\u003c\/p\u003e \u003cp\u003eSummary 169\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Emulating USB Devices 171\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eEmulating a Keyboard 173\u003c\/p\u003e \u003cp\u003eTyping Data into the Computer 173\u003c\/p\u003e \u003cp\u003eCommanding Your Computer to Do Your Bidding 177\u003c\/p\u003e \u003cp\u003eEmulating a Mouse 178\u003c\/p\u003e \u003cp\u003eSummary 182\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Shift Registers 183\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Shift Registers 184\u003c\/p\u003e \u003cp\u003eSending Parallel and Serial Data 185\u003c\/p\u003e \u003cp\u003eWorking with the 74HC595 Shift Register 186\u003c\/p\u003e \u003cp\u003eUnderstanding the Shift Register pin Functions 186\u003c\/p\u003e \u003cp\u003eUnderstanding How the Shift Register Works 187\u003c\/p\u003e \u003cp\u003eShifting Serial Data from the Arduino 189\u003c\/p\u003e \u003cp\u003eConverting Between Binary and Decimal Formats 192\u003c\/p\u003e \u003cp\u003eControlling Light Animations with a Shift Register 192\u003c\/p\u003e \u003cp\u003eBuilding a “Light Rider” 192\u003c\/p\u003e \u003cp\u003eResponding to Inputs with an LED Bar Graph 194\u003c\/p\u003e \u003cp\u003eSummary 197\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III Communication Interfaces 199\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 The I\u003csup\u003e2\u003c\/sup\u003eC Bus 201\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHistory of the I\u003csup\u003e2\u003c\/sup\u003eC Bus 202\u003c\/p\u003e \u003cp\u003eI\u003csup\u003e2\u003c\/sup\u003eC Hardware Design 203\u003c\/p\u003e \u003cp\u003eCommunication Scheme and ID Numbers 203\u003c\/p\u003e \u003cp\u003eHardware Requirements and Pull-Up Resistors 206\u003c\/p\u003e \u003cp\u003eCommunicating with an I\u003csup\u003e2\u003c\/sup\u003eC Temperature Probe 208\u003c\/p\u003e \u003cp\u003eSetting Up the Hardware208\u003c\/p\u003e \u003cp\u003eReferencing the Datasheet 210\u003c\/p\u003e \u003cp\u003eWriting the Software 212\u003c\/p\u003e \u003cp\u003eCombining Shift Registers, Serial Communication, and I\u003csup\u003e2\u003c\/sup\u003eC Communications 214\u003c\/p\u003e \u003cp\u003eBuilding the Hardware for a Temperature Monitoring System 214\u003c\/p\u003e \u003cp\u003eModifying the Embedded Program 215\u003c\/p\u003e \u003cp\u003eWriting the Processing Sketch 218\u003c\/p\u003e \u003cp\u003eSummary 221\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 The SPI Bus and Third-Party Libraries 223\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview of the SPI Bus 224\u003c\/p\u003e \u003cp\u003eSPI Hardware and Communication Design 225\u003c\/p\u003e \u003cp\u003eHardware Configuration 225\u003c\/p\u003e \u003cp\u003eCommunication Scheme 227\u003c\/p\u003e \u003cp\u003eComparing SPI to I\u003csup\u003e2\u003c\/sup\u003eC and UART 227\u003c\/p\u003e \u003cp\u003eCommunicating with an SPI Accelerometer 228\u003c\/p\u003e \u003cp\u003eWhat is an Accelerometer? 229\u003c\/p\u003e \u003cp\u003eGathering Information from the Datasheet 231\u003c\/p\u003e \u003cp\u003eSetting Up the Hardware233\u003c\/p\u003e \u003cp\u003eWriting the Software 235\u003c\/p\u003e \u003cp\u003eInstalling the Adafruit Sensor Libraries 236\u003c\/p\u003e \u003cp\u003eLeveraging the Library 237\u003c\/p\u003e \u003cp\u003eCreating an Audiovisual Instrument Using a 3-Axis Accelerometer 241\u003c\/p\u003e \u003cp\u003eSetting Up the Hardware242\u003c\/p\u003e \u003cp\u003eModifying the Software 242\u003c\/p\u003e \u003cp\u003eSummary 246\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Interfacing with Liquid Crystal Displays 247\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSetting Up the LCD 248\u003c\/p\u003e \u003cp\u003eUsing the LiquidCrystal Library to Write to the LCD 251\u003c\/p\u003e \u003cp\u003eAdding Text to the Display 252\u003c\/p\u003e \u003cp\u003eCreating Special Characters and Animations 254\u003c\/p\u003e \u003cp\u003eBuilding a Personal Thermostat 258\u003c\/p\u003e \u003cp\u003eSetting Up the Hardware 258\u003c\/p\u003e \u003cp\u003eDisplaying Data on the LCD 261\u003c\/p\u003e \u003cp\u003eAdjusting the Set Point with a Button 264\u003c\/p\u003e \u003cp\u003eAdding an Audible Warning and a Fan 265\u003c\/p\u003e \u003cp\u003eBringing It All Together: The Complete Program 266\u003c\/p\u003e \u003cp\u003eTaking This Project to the Next Level 270\u003c\/p\u003e \u003cp\u003eSummary 271\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV Digging Deeper and Combining Functions\u003c\/b\u003e\u003cb\u003e 273\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Interrupts and Other Special Functions 275\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing Hardware Interrupts 276\u003c\/p\u003e \u003cp\u003eKnowing the Tradeoffs Between Polling and Interrupting 277\u003c\/p\u003e \u003cp\u003eEase of Implementation (Software) 277\u003c\/p\u003e \u003cp\u003eEase of Implementation (Hardware) 277\u003c\/p\u003e \u003cp\u003eMultitasking 278\u003c\/p\u003e \u003cp\u003eAcquisition Accuracy 278\u003c\/p\u003e \u003cp\u003eUnderstanding the Arduino Hardware Interrupt Capabilities 278\u003c\/p\u003e \u003cp\u003eBuilding and Testing a Hardware-Debounced Button Interrupt Circuit 279\u003c\/p\u003e \u003cp\u003eCreating a Hardware-Debouncing Circuit 280\u003c\/p\u003e \u003cp\u003eAssembling the Complete Test Circuit 284\u003c\/p\u003e \u003cp\u003eWriting the Software 285\u003c\/p\u003e \u003cp\u003eUsing Timer Interrupts 288\u003c\/p\u003e \u003cp\u003eUnderstanding Timer Interrupts 288\u003c\/p\u003e \u003cp\u003eGetting the Library 289\u003c\/p\u003e \u003cp\u003eExecuting Two Tasks Simultaneously(ish) 289\u003c\/p\u003e \u003cp\u003eBuilding an Interrupt-Driven Sound Machine 290\u003c\/p\u003e \u003cp\u003eSound Machine Hardware 291\u003c\/p\u003e \u003cp\u003eSound Machine Software 291\u003c\/p\u003e \u003cp\u003eSummary 294\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Data Logging with SD Cards 295\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting Ready for Data Logging 296\u003c\/p\u003e \u003cp\u003eFormatting Data with CSV Files 297\u003c\/p\u003e \u003cp\u003ePreparing an SD Card for Data Logging 297\u003c\/p\u003e \u003cp\u003eFormatting Your SD Card Using a Windows PC 298\u003c\/p\u003e \u003cp\u003eFormatting Your SD Card Using Mac OS 300\u003c\/p\u003e \u003cp\u003eFormatting Your SD Card Using Linux 302\u003c\/p\u003e \u003cp\u003eInterfacing the Arduino with an SD Card 304\u003c\/p\u003e \u003cp\u003eSD Card Shields 304\u003c\/p\u003e \u003cp\u003eSD Card SPI Interface 307\u003c\/p\u003e \u003cp\u003eWriting to an SD Card 307\u003c\/p\u003e \u003cp\u003eReading from an SD Card 312\u003c\/p\u003e \u003cp\u003eReal-Time Clocks 317\u003c\/p\u003e \u003cp\u003eUnderstanding Real-Time Clocks 317\u003c\/p\u003e \u003cp\u003eCommunicating with a Real-Time Clock 317\u003c\/p\u003e \u003cp\u003eUsing the RTC Arduino Third-Party Library 318\u003c\/p\u003e \u003cp\u003eUsing a Real-Time Clock 319\u003c\/p\u003e \u003cp\u003eInstalling the RTC and SD Card Modules 319\u003c\/p\u003e \u003cp\u003eUpdating the Software 320\u003c\/p\u003e \u003cp\u003eBuilding an Entrance Logger 327\u003c\/p\u003e \u003cp\u003eLogger Hardware 328\u003c\/p\u003e \u003cp\u003eLogger Software 329\u003c\/p\u003e \u003cp\u003eData Analysis 334\u003c\/p\u003e \u003cp\u003eSummary 335\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V Going Wireless 337\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Wireless RF Communications 339\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Electromagnetic Spectrum 340\u003c\/p\u003e \u003cp\u003eThe Spectrum 342\u003c\/p\u003e \u003cp\u003eHow Your RF Link Will Send and Receive Data 343\u003c\/p\u003e \u003cp\u003eReceiving Key Presses with the RF Link 346\u003c\/p\u003e \u003cp\u003eConnecting Your Receiver 346\u003c\/p\u003e \u003cp\u003eProgramming Your Receiver 347\u003c\/p\u003e \u003cp\u003eMaking a Wireless Doorbell 351\u003c\/p\u003e \u003cp\u003eWiring the Receiver 351\u003c\/p\u003e \u003cp\u003eProgramming the Receiver 351\u003c\/p\u003e \u003cp\u003eThe Start of Your Smart Home—Controlling a Lamp 354\u003c\/p\u003e \u003cp\u003eYour Home’s AC Power 356\u003c\/p\u003e \u003cp\u003eHow a Relay Works 356\u003c\/p\u003e \u003cp\u003eProgramming the Relay Control 358\u003c\/p\u003e \u003cp\u003eHooking up Your Lamp and Relay to the Arduino 360\u003c\/p\u003e \u003cp\u003eSummary 361\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Bluetooth Connectivity\u003c\/b\u003e\u003cb\u003e 363\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDemystifying Bluetooth 364\u003c\/p\u003e \u003cp\u003eBluetooth Standards and Versions 364\u003c\/p\u003e \u003cp\u003eBluetooth Profiles and BTLE GATT Services 365\u003c\/p\u003e \u003cp\u003eCommunication between Your Arduino and Your Phone 366\u003c\/p\u003e \u003cp\u003eReading a Sensor over BTLE 366\u003c\/p\u003e \u003cp\u003eAdding Support for Third-Party Boards to the Arduino IDE 367\u003c\/p\u003e \u003cp\u003eInstalling the BTLE Module Library 369\u003c\/p\u003e \u003cp\u003eProgramming the Feather Board 369\u003c\/p\u003e \u003cp\u003eConnecting Your Smartphone to Your BTLE Transmitter 377\u003c\/p\u003e \u003cp\u003eSending Commands from Your Phone over BTLE 379\u003c\/p\u003e \u003cp\u003eParsing Command Strings 380\u003c\/p\u003e \u003cp\u003eCommanding Your BTLE Device with Natural Language 384\u003c\/p\u003e \u003cp\u003eControlling an AC Lamp with Bluetooth 389\u003c\/p\u003e \u003cp\u003eHow Your Phone “Pairs” to BTLE Devices 389\u003c\/p\u003e \u003cp\u003eWriting the Proximity Control Software 390\u003c\/p\u003e \u003cp\u003ePairing Your Phone 394\u003c\/p\u003e \u003cp\u003ePairing an Android Phone 394\u003c\/p\u003e \u003cp\u003ePairing an iPhone 395\u003c\/p\u003e \u003cp\u003eMake Your Lamp React to Your Presence 396\u003c\/p\u003e \u003cp\u003eSummary 397\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Wi-Fi and the Cloud\u003c\/b\u003e\u003cb\u003e 399\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Web, the Arduino, and You 400\u003c\/p\u003e \u003cp\u003eNetworking Lingo 401\u003c\/p\u003e \u003cp\u003eThe Internet vs. the World Wide Web vs. the Cloud 401\u003c\/p\u003e \u003cp\u003eIP Address 401\u003c\/p\u003e \u003cp\u003eNetwork Address Translation 402\u003c\/p\u003e \u003cp\u003eMAC Address 402\u003c\/p\u003e \u003cp\u003eHTML 402\u003c\/p\u003e \u003cp\u003eHTTP and HTTPS 402\u003c\/p\u003e \u003cp\u003eGET\/POST 403\u003c\/p\u003e \u003cp\u003eDHCP 403\u003c\/p\u003e \u003cp\u003eDNS 403\u003c\/p\u003e \u003cp\u003eClients and Servers 403\u003c\/p\u003e \u003cp\u003eYour Wi-Fi–Enabled Arduino 404\u003c\/p\u003e \u003cp\u003eControlling Your Arduino from the Web 404\u003c\/p\u003e \u003cp\u003eSetting Up the I\/O Control Hardware 404\u003c\/p\u003e \u003cp\u003ePreparing the Arduino IDE for Use with the Feather Board.406\u003c\/p\u003e \u003cp\u003eEnsuring the Wi-Fi Library is Matched to the Wi-Fi Module’s Firmware 407\u003c\/p\u003e \u003cp\u003eChecking the WINC1500’s Firmware Version 408\u003c\/p\u003e \u003cp\u003eUpdating the WINC1500’s Firmware 408\u003c\/p\u003e \u003cp\u003eWriting an Arduino Server Sketch 408\u003c\/p\u003e \u003cp\u003eConnecting to the Network and Retrieving an IP Address via DHCP 409\u003c\/p\u003e \u003cp\u003eWriting the Code for a Bare-Minimum Web Server 412\u003c\/p\u003e \u003cp\u003eControlling Your Arduino from Inside and Outside Your Local Network 423\u003c\/p\u003e \u003cp\u003eControlling Your Arduino over the Local Network 423\u003c\/p\u003e \u003cp\u003eUsing Port Forwarding to Control Your Arduino from Anywhere 425\u003c\/p\u003e \u003cp\u003eInterfacing with Web APIs 427\u003c\/p\u003e \u003cp\u003eUsing a Weather API428\u003c\/p\u003e \u003cp\u003eCreating an Account with the API Service Provider 429\u003c\/p\u003e \u003cp\u003eUnderstanding How APIs are Structured 430\u003c\/p\u003e \u003cp\u003eJSON-Formatted Data and Your Arduino 430\u003c\/p\u003e \u003cp\u003eFetching and Parsing Weather Data 431\u003c\/p\u003e \u003cp\u003eGetting the Local Temperature from the Web on Your Arduino 433\u003c\/p\u003e \u003cp\u003eCompleting the Live Temperature Display 440\u003c\/p\u003e \u003cp\u003eWiring up the LED Readout Display 440\u003c\/p\u003e \u003cp\u003eDriving the Display with Temperature Data 443\u003c\/p\u003e \u003cp\u003eSummary 449\u003c\/p\u003e \u003cp\u003eAppendix A: Deciphering Datasheets and Schematics 451\u003c\/p\u003e \u003cp\u003eIndex 461\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eJeremy Blum\u003c\/b\u003e is an electrical engineer known for his series of educational YouTube videos that have taught engineering concepts to millions of people around the world. Previously as a hardware engineer at Google [X] and currently as director of engineering at Shaper Tools, he spends every day creating complex electromechanical products. He has designed and built solar trackers, prosthetic arms, truss-traversing robots, musical theremins, gesture controllers, home automation systems, augmented reality hardware, and more.   \u003c\/p\u003e\u003cp\u003e\"Jeremy's easy-to-understand style and depth of content about the Arduino. . . will not only allow digital beginners to get their footing but will also allow the old guard of hardware to dip a toe into the hobbyist-friendly end of the swimming pool and start connecting their devices.\"  \u003cb\u003e\u003ci\u003eChris Gammell,\u003c\/i\u003e\u003c\/b\u003e\u003cb\u003e\u003c\/b\u003e \u003ci\u003eCo-host of the Amp Hour Podcast\u003c\/i\u003e \u003c\/p\u003e\u003cp\u003e\u003cb\u003eARDUINO CAN TAKE YOU ANYWHERE. THIS BOOK IS THE ROADMAP.\u003c\/b\u003e  \u003c\/p\u003e\u003cp\u003e\u003ci\u003eExploring Arduino\u003c\/i\u003e??shows how to use the world's most popular microcontroller to create cool, practical, artistic, and educational projects. Through lessons in electrical engineering, programming, and human computer interaction, this book walks you through specific, increasingly complex projects, all the while providing best practices that can apply to your own projects once you've mastered these. You'll acquire valuable skillsand have a whole lot of fun. \u003c\/p\u003e\u003cul\u003e \u003cli\u003eExplore the features of several commonly used Arduino boards\u003c\/li\u003e \u003cli\u003eUse the Arduino to control very simple tasks or complex electronics\u003c\/li\u003e \u003cli\u003eLearn principles of system design, programming, and electrical engineering\u003c\/li\u003e \u003cli\u003eDiscover code snippets, best practices, and system schematics you can apply to your original projects\u003c\/li\u003e \u003cli\u003eMaster skills you can use for engineering endeavors in other fields and with different platforms\u003c\/li\u003e \u003cli\u003eConnect your projects to the internet\u003c\/li\u003e \u003cli\u003eExpands on the first edition with updated projects, all new topics like wireless connectivity and stepper motors, and more deep dives into electrical engineering and product design topics\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eFind schematics, tutorial videos, code downloads, and more at the companion website: \u003cb\u003ewww.exploringarduino.com.\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003e\u003cb\u003eCONVENIENT COMPONENT KITS\u003c\/b\u003e Component kits are available for this book! Visit exploringarduino.com\/kits.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989187477733,"sku":"NP9781119405375","price":40.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119405375.jpg?v=1761783139","url":"https:\/\/k12savings.com\/es\/products\/exploring-arduino-isbn-9781119405375","provider":"K12savings","version":"1.0","type":"link"}