O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: Programming the Internet of Things

Video Description

The Internet of Things is made of billions of embedded computers, sensors, and actuators all connected online. It's not just a vision of tomorrow—it's here now and you can get started by programming your own connected, embedded devices for a variety of useful systems. This Learning Path introduces you to Raspberry Pi, Arduino, and other practical technologies that the Internet of Things is built on.

Prerequisites: You should have at least a passing familiarity with JavaScript and Node.js for this course. You can learn the basics just by watching, but to build hardware along with the instructors, you'll need an Arduino Yún (available from Maker Shed, Sparkfun, and Adafruit) and Raspberry Pi (available as a standalone computer or in kits from Marker Shed, Sparkfun, and Adafruit).

Table of Contents

  1. Introduction
    1. 00.00 Introduction 00:00:53
  2. Setup and Management
    1. 01.18 Installing the Raspberry Pi Camera Module 00:04:17
  3. Software
    1. 04.09 Raspberry Pi Radio Transmitter 00:03:20
    2. 04.11 Internet Radio 00:03:22
  4. GPIO Basics
    1. 08.01 Finding your way around the GPIO connector 00:04:01
    2. 08.04 Setting up I2C 00:02:31
    3. 08.05 Using I2C Tools 00:02:57
    4. 08.06 Setting up SPI 00:04:14
    5. 08.07 Freeing the Serial Port 00:01:51
    6. 08.10 Using a breadboard with jumper leads 00:03:16
    7. 08.16 Getting Started with a PiFace Digital Interface Board 00:07:06
    8. 08.18 Getting Started with a RaspiRobot Board 00:05:56
  5. Controlling Hardware
    1. 09.01 Connecting an LED 00:06:19
    2. 09.02 Controlling the brightness of an LED 00:05:40
    3. 09.03 Making a Buzzing Sound 00:05:43
    4. 09.04 Switching a High Power DC Device Using a Transistor 00:05:09
    5. 09.06 Controlling High Voltage AC Devices 00:01:34
    6. 09.07 Making a User Interface to Turn Things On and Off 00:04:50
    7. 09.08 Making a User Interface to Control PWM Power for LEDs and Motors 00:03:47
    8. 09.09 Changing the color of an RGB LED 00:07:07
    9. 09.10 Using lots of LEDs (Charlieplexing) 00:07:17
    10. 09.11 Using an Analog Meter as a Display 00:02:23
    11. 09.12 Programming with Interrupts 00:04:21
    12. 09.13 Controlling GPIO Outputs Using a Web Interface 00:11:33
  6. Motors
    1. 10.01 Controlling Servo Motors 00:07:33
    2. 10.02 Controlling a Large Number of Servo Motors 00:07:08
    3. 10.04 Controlling the Direction of a DC Motor 00:07:14
    4. 10.05 Using a Uni-Polar Stepper Motor 00:07:43
    5. 10.06 Using a Bi-Polar Stepper Motor 00:11:11
    6. 10.07 Using a RaspiRobot Board to Drive a Bi-Polar Stepper Motor 00:03:01
    7. 10.08 Building a Simple Robot Rover 00:07:29
  7. Digital Inputs
    1. 11.01 Connecting a Push Switch 00:05:40
    2. 11.02 Toggling with a Push Switch 00:06:13
    3. 11.03 Using a Two-Position Toggle or Slide Switch 00:02:19
    4. 11.05 De-bouncing a button press 00:02:49
    5. 11.07 Using a Rotary (Quadrature) Encoder 00:05:46
    6. 11.08 Using a Keypad 00:03:41
    7. 11.09 Detecting Movement 00:02:43
    8. 11.10 Adding GPS to the Raspberry Pi 00:06:55
    9. 11.13 Using a Real Time Clock Module 00:06:19
  8. Sensors
    1. 12.01 Using Resistive Sensors 00:04:35
    2. 12.02 Measuring Light 00:04:08
    3. 12.03 Detecting Methane 00:04:57
    4. 12.04 Measuring a Voltage 00:08:14
    5. 12.05 Reducing Voltages for Measurement 00:04:44
    6. 12.06 Using Resistive Sensors with an ADC 00:02:29
    7. 12.07 Measuring Temperature with an ADC 00:04:18
    8. 12.08 Measuring Acceleration 00:04:15
    9. 12.09 Measuring Temperature Using a Digital Sensor 00:06:29
    10. 12.10 Measuring Distance 00:08:11
    11. 12.11 Displaying Sensor Values 00:03:54
  9. Displays
    1. 13.01 Using a 4-Digit LED Display 00:04:44
    2. 13.02 Displaying Messages on an I2C LED Matrix 00:04:32
    3. 13.03 Using Pi-Lite 00:04:52
    4. 13.04 Displaying Messages on an Alphanumeric LCD 00:08:51
  10. Arduino and Raspberry Pi
    1. 14.01 Programming an Arduino from Raspberry Pi 00:08:52
    2. 14.02 Communicating with the Arduino Using the Serial Monitor 00:03:20
    3. 14.03 Setting up PyFirmata to Control an Arduino from a Raspberry Pi 00:06:29
    4. 14.04 Writing Digital Outputs on an Arduino from a Raspberry Pi 00:04:52
    5. 14.05 Using PyFirmata with TTL Serial 00:06:12
    6. 14.06 Reading Arduino digital inputs using PyFirmata 00:05:14
    7. 14.07 Reading Arduino analog inputs using PyFirmata 00:05:52
    8. 14.08 Analog Outputs (PWM) with PyFirmata 00:04:04
    9. 14.09 Controlling a Servo using PyFirmata 00:04:07
    10. 14.12 Using Small Arduinos with a Raspberry Pi 00:03:01
    11. 14.13 Getting Started with an aLaMode Board and a Raspberry Pi 00:05:47
    12. 14.14 Using an Arduino Shield with an aLaMode Board and a Raspberry Pi 00:02:05
  11. Getting Started
    1. Introduction To The Internet Of Things 00:05:13
    2. About The Author 00:02:45
    3. What Is The Internet Of Things? 00:06:07
    4. Where The Internet Of Things May Be Headed 00:06:45
    5. Why JavaScript And The Internet Of Things? 00:04:48
    6. Technologies Used In This Course 00:05:57
    7. How to Access Your Working Files 00:01:15
  12. Building Our First Dashboard
    1. The Foundations Of Our Dashboard 00:03:03
    2. Setting Up A Modular Node Server For IoT - Part 1 00:06:48
    3. Setting Up A Modular Node Server For IoT - Part 2 00:03:40
    4. Technologies And Techniques For A Modular Front End 00:09:07
    5. Our Front End Template 00:05:24
    6. Event Driven JavaScript - Using Node And Socket.io 00:03:47
    7. Getting Our Server Onto The Web 00:03:17
  13. Arduino
    1. Setting Up An Arduino - Part 1 00:05:37
    2. Setting Up An Arduino - Part 2 00:05:24
    3. Displaying Arduino Data Via Node - Part 1 00:04:43
    4. Displaying Arduino Data Via Node - Part 2 00:03:54
    5. Displaying Arduino Data Via Node - Part 3 00:04:37
    6. Displaying Arduino Data Via Node - Part 4 00:07:04
    7. Toggling Arduino Devices Via Node - Part 1 00:06:00
    8. Toggling Arduino Devices Via Node - Part 2 00:06:00
    9. Installing Node On Your Arduino Yun 00:08:10
    10. Going Wireless With Arduino Yun And Node - Part 1 00:06:15
    11. Going Wireless With Arduino Yun And Node - Part 2 00:02:48
  14. Spark
    1. Setting Up Spark 00:04:02
    2. Displaying Spark Core Data Via Node - Part 1 00:04:28
    3. Displaying Spark Core Data Via Node - Part 2 00:03:12
    4. Displaying Spark Core Data Via Node - Part 3 00:04:40
    5. Displaying Spark Core Data Via Node - Part 4 00:05:44
    6. Toggling Spark Core Devices Via Node - Part 1 00:04:24
    7. Toggling Spark Core Devices Via Node - Part 2 00:04:16
  15. Tessel
    1. Setting Up Tessel 00:03:15
    2. Displaying IoT Data With A Tessel - Part 1 00:05:07
    3. Displaying IoT Data With A Tessel - Part 2 00:08:50
    4. Toggling Devices Via Tessel And Node - Part 1 00:06:25
    5. Toggling Devices Via Tessel And Node - Part 2 00:05:45
  16. Pairing Android And JavaScript Using onX
    1. Getting Started With onX And Android 00:05:42
    2. Displaying Android Phone Data Via onX And Node 00:06:11
  17. Voice Recognition Via Wit.ai
    1. Getting Started With Wit.ai 00:04:38
    2. Adding Voice Recognition To Your IoT Using Wit.ai 00:07:18
  18. Controlling Your Dashboard With New Input Devices
    1. Controlling Your IoT With Leap Motion 00:06:49
    2. IoT Gesture Control With The Myo Armband 00:05:43
  19. The Pebble Watch
    1. Getting Started With Pebble Watch Dev 00:04:36
    2. Bringing Our IoT Dashboard Data Onto A Watch Face - Part 1 00:07:55
    3. Bringing Our IoT Dashboard Data Onto A Watch Face - Part 2 00:06:55
  20. Conclusion
    1. Wrap-Up 00:02:03
    2. Introducing the Redpark Cable 00:08:22
    3. Introducing the Arduino 00:07:33
    4. A Simple Push Button Application 00:19:22
    5. Building a Serial Console Part 1 00:22:33
    6. Building a Serial Console Part 2 00:28:15
    7. The Paduino Application 00:45:12
    8. Connecting to Sensors Using an Arduino 00:58:40
    9. Connecting to Sensors Directly 00:08:06
    10. Using XBee Networks 00:25:07
    11. Other Ways to Connect & Closing Out 00:05:13