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

The Internet of Things: Do-It-Yourself at Home Projects for Arduino, Raspberry Pi and BeagleBone Black

Book Description

Build and program projects that tap into the Internet of Things (IoT) using Arduino, Raspberry Pi, and BeagleBone Black!

This innovative guide gets you started right away working with the most popular processing platforms, wireless communication technologies, the Cloud, and a variety of sensors. You’ll learn how to take advantage of the utility and versatility of the IoT and connect devices and systems to the Internet using sensors. Each project features a list of the tools and components, how-to explanations with photos and illustrations, and complete programming code. All projects can be modified and expanded, so you can build on your skills.

The Internet of Things: DIY Projects with Arduino, Raspberry Pi, and BeagleBone Black

  • Covers the basics of Java, C#, Python, JavaScript, and other programming languages used in the projects
  • Shows you how to use IBM’s Net Beans IDE and the Eclipse IDE
  • Explains how to set up small-scale networks to connect the projects to the Internet
  • Includes essential tips for setting up and using a MySQL database.

The fun, DIY projects in the book include:

  • Raspberry Pi home temperature measurements
  • Raspberry Pi surveillance webcams
  • Raspberry Pi home weather station
  • Arduino garage door controller
  • Arduino irrigation controller
  • Arduino outdoor lighting controller
  • Beaglebone message panel
  • Beaglebone remote control SDR
  • Machine-to-machine demonstration project

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. About the Author
  6. Contents at a Glance
  7. Contents
  8. Acknowledgments
  9. Introduction
  10. 1 Introduction to the Internet of Things
    1. Raspberry Pi Platform
    2. Raspberry Pi GPIO
    3. Establishing a Raspberry Pi Development Station
    4. Standalone Setup
    5. Headless Setup
    6. Setting Up the Raspberry Pi Software
    7. Setting Up the Raspberry Pi OS Using an Image File
    8. Updating and Upgrading the Raspbian Image
    9. Headless Configuration
    10. Headless Operation with Graphics
    11. The LAMP Project
    12. Apache Web Server and the PHP Scripting Language
    13. MySQL Database Installation
    14. Adding a New User to a MySQL Database
    15. Summary
  11. 2 Home Temperature Monitoring System
    1. Temperature Sensor Network
    2. TMP36 Temperature Sensor
    3. Analog to Digital Conversion
    4. Serial Peripheral Interface
    5. Connecting and Testing the MCP3008 with the Raspberry Pi
    6. Initial Test
    7. Multiple Sensor System
    8. Multiple Sensor Software
    9. Temperature Database
    10. Python Database Connection
    11. Inserting Data into a MySQL Database Using a Program
    12. Database Access Using a Web Browser
    13. Narrowing the Database Reports
    14. Flask
    15. Summary
  12. 3 Introduction to Object Orientation Programming (OOP) with Java
    1. Java Software Development Kit (SDK)
    2. The Sensor Abstract Class
    3. Child Classes
    4. Real-World Controls
    5. Threads
    6. Java Database Connector
    7. Using the Java Connector in a Program
    8. Summary
  13. 4 Home Weather Station
    1. Java and GPIO
    2. GPIO Pin Labeling
    3. GPIO Pin Expansion
    4. Interrupts
    5. Pi4J Library
    6. LED Blink Program
    7. Weather Station Sensors
    8. Sensor Wiring Connections
    9. Weather Station Software
    10. Java Software
    11. Sensor Classes
    12. Thermostatic Application
    13. Setting the Thermostat Remotely
    14. Database Classes
    15. Remote Access to the HWS Database
    16. Summary
  14. 5 Webcam and Raspberry Pi Camera Projects
    1. Conventional Webcam
    2. Motion Software Package
    3. Motion Features
    4. Motion Setup
    5. Webcam Viewing
    6. Raspberry Pi Camera
    7. Raspberry Pi Camera Software
    8. Using Python with the Raspberry Pi Camera
    9. Remote Raspberry Pi Camera Viewing
    10. Raspberry Pi Camera with Motion Software
    11. Summary
  15. 6 Internet-Enabled, Arduino Powered Garage Door Opener
    1. Arduino Hardware
    2. Arduino Uno Development Board
    3. Ethernet Shield Board
    4. Arduino Uno Software
    5. Testing the Ethernet Connection
    6. Simplified Garage Door Opener
    7. Actual Garage Door Opener
    8. Modified LED Program to Open Garage Door
    9. Visual Studio 2012 IDE
    10. VS2012 LED Blink Program
    11. Enhanced Garage Door Project
    12. Testing the Enhanced Garage Door Opener
    13. Summary
  16. 7 Arduino Irrigation Control System
    1. Irrigation System Design
    2. Irrigation Control Program
    3. Irrigation System Physical Installation
    4. Operating the New Irrigation System
    5. Moisture Sensing Subsystem
    6. XBee Technology
    7. Soil Moisture Sensor
    8. Actual System Operation
    9. Enhancements
    10. Summary
  17. 8 Arduino Lighting Controller
    1. System Design
    2. Controller Node
    3. Ethernet Shield
    4. Controller Node Case and Mounting Arrangement
    5. XBee Receiver Node
    6. PowerSwitch Tail II
    7. System Software
    8. Controller Node Program
    9. XBee Receiver Node 1 Program
    10. XBee Receiver Node 2 Program
    11. Operational Test
    12. Enhancements
    13. Summary
  18. 9 BeagleBone Black Message Controller
    1. Beagle Boards
    2. BeagleBone Black
    3. Connect to and Operate the BBB
    4. Downloading, Installing, and Booting a New Linux Distribution
    5. GPIO Pins
    6. Setting Up the LCD Display
    7. LCD Operational Test
    8. Message Controller Software
    9. Download and Install the Flask Package
    10. Main Application
    11. HTML Code
    12. Test Results
    13. Summary
  19. 10 BeagleBone Black with Cloud Service
    1. Temperature Sensor
    2. Adafruit_BBIO Library
    3. Initial Test Program
    4. Xively Cloud Service
    5. Xively Developer’s Account
    6. BBB to Xively Python Program
    7. Xively Website with an Active Datastream
    8. Adding Additional Data Channels
    9. Additional TMP36 Sensors
    10. Expanded xively-temp Program
    11. Configuring Angstrom to Auto Start the Application
    12. System Case
    13. Summary
  20. 11 Machine-to-Machine (M2M) Communications
    1. Paho and Eclipse.org
    2. MQTT
    3. Quality of Service (QoS)
    4. Wills
    5. Reconnecting
    6. BBB MQTT Publisher Client
    7. Adding MQTT Features to the Application
    8. MQTT Brokers
    9. MQTT Dashboard
    10. Raspberry Pi Subscriber Client
    11. MQTT Two-Phase Thermostat
    12. Summary
  21. Index