BeagleBone Home Automation

BeagleBone Home Automation
eBook: $17.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $47.98    Print cover: $29.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Practical approach to home automation using BeagleBone; starting from the very basics of GPIO control and progressing up to building a complete home automation solution
  • Covers the operating principles of a range of useful environment sensors, including their programming and integration to the server application
  • Easy-to-follow approach with electronics schematics, wiring diagrams, and controller code all broken down into manageable and easy-to-understand sections

Book Details

Language : English
Paperback : 178 pages [ 235mm x 191mm ]
Release Date : December 2013
ISBN : 1783285737
ISBN 13 : 9781783285730
Author(s) : Juha Lumme
Topics and Technologies : All Books, Mobile Application Development, Networking and Servers, Open Source

Table of Contents

Chapter 1: The Initial Setup
Chapter 2: Input and Output
Chapter 3: Creating the Client and Server Applications
Chapter 4: Extending Server Capabilities
Chapter 5: Implementing Periodic Tasks
Chapter 6: Creating an Android Client
Appendix: Security, Debugging, and I2C and SPI
  • Chapter 1: The Initial Setup
    • The hardware required
    • The software required
    • Preparing the host machine
      • Windows
      • Mac OS X
      • Linux
    • Starting the target board for the first time
    • Logging in to the system
    • Operating Linux from the console
      • Basic filesystem operations
      • File permissions
    • Running a Hello World program on BeagleBone
    • Summary
  • Chapter 2: Input and Output
    • Hardware interfaces
    • General-Purpose Input/Output pins (GPIOs)
      • On-board LEDs
      • GPIO library for Python
        • Setting the proper time
      • External output
      • External hardware input
      • Pulse width modulator
    • Summary
  • Chapter 4: Extending Server Capabilities
    • Environmental sensors
      • Light sensor
      • Temperature sensor
    • Advanced server
      • Defining our Beagle protocol
      • The new server code
      • The new client code
    • Transistors
    • Summary
  • Chapter 5: Implementing Periodic Tasks
    • Implementing a save/load framework
      • Retrieving and changing permanent settings
        • The client side
        • The server side
    • Periodic tasks on the server
    • Movement-detection alarm system
    • Hardware extensions
      • BeagleBone HD camera cape
        • Changing the boot media
        • Controlling cameras with Python
    • Summary
  • Chapter 6: Creating an Android Client
    • Setting up our Android project
      • Creating an emulator
    • The socket client on Android
      • Defining the UI components
      • The support classes
      • The main UI
      • The network thread
    • The new server features
    • Working from outside your home network
    • Summary
  • Appendix: Security, Debugging, and I2C and SPI
    • Kernel traces and advanced debugging
      • Boot time kernel traces
      • JTAG debugging
    • The I2C and SPI buses
      • The I2C bus
        • Generating the start signal
        • The Slave address transfer
        • Transferring data
        • Generating the STOP signal
      • The SPI bus
    • Considering the security aspects
      • Making the client identify his intentions first
      • Implementing the encrypted password login
        • Version 2.1 modifications to the server code
        • Version 2.2 modifications to Android client code
      • Encrypting all of the communication
    • The GPIO mapping of the P8 and P9 headers

Juha Lumme

Juha Lumme is an engineer with over 10 years' experience in the telecommunications field in various roles. He has been developing platform software for mobile phones and also working on the telecommunication networks side. Embedded systems are his passion, and a hobby he is working on in free time as well.

He is passionate about Linux and open source software in general. The open hardware movement in the recent years is also close to his heart, and he hopes we can all soon hack and build our dreams in a world free of patent abuse.

When not working on his computer, he loves traveling and riding mountain roads on his motorbike around Kanto prefecture in Japan.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


- 1 submitted: last submission 01 Mar 2014

Page number: 59 | Type: Technical

"print "raw: %f | d: %d" (val, val*100)"
Should say:
"print "raw: %f | d: %d" % (val, val*100)"
Page: 60 | Type: Technical
"Let's use A-IN3 in P9.38 as our analog input, and connect the LM60 ground pin to P9.34." 
Should say:
"Let's use A-IN3 in P9.38 as our analog input, and connect the LM60 ground pin to P9.46."
The updated code bundle and images for Chapter 4 are uploaded.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

BeagleBone Home Automation +    Haskell Data Analysis Cookbook =
50% Off
the second eBook
Price for both: $37.05

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Learn how to interface the BeagleBone board with various hardware components and environmental sensors
  • Set up the programming logic necessary to enable standalone periodic tasks and their management
  • Discover network programming over TCP/IP sockets, and enable encrypted access over the Internet
  • Program an Android application that can interface with your home automation server
  • Implement a framework to send any type of data, such as images captured from a camera, to your smartphone

In Detail

Home automation lets you control daily activities such as changing the temperature, opening the garage door, or dimming the lights of your house using microprocessors. BeagleBone is a low-cost, high-expansion, hardware-hacker-focused BeagleBoard. It is small and comes with the high-performance ARM capabilities you expect from a BeagleBoard. BeagleBone takes full-featured Linux to places it has never gone before.

Starting with the absolute basics, BeagleBone Home Automation gives you the knowledge you will require to create an Internet-age home automation solution. This book will show you how to set up Linux on BeagleBone. You will learn how to use Python to control different electronic components and sensors to create a standalone embedded system that also accepts control remotely from a smartphone.

This book starts with the very basics of Linux administration and application execution using terminal connections. You will learn the basics of the general purpose input/output pins and discover how various electronic sensors and electronic components work. The “hardware jargon” is explained, and example applications demonstrating their practical use are created so that you will feel in control of the capabilities provided.

Network programming is also a big part of this book, as the created server will be made accessible from the Internet through a smartphone application. You will also learn how to create a fully working Android application that communicates with the home automation server over the Internet.


An easy-to-follow guide full of hands-on examples to help transform your house into a standalone home automation solution.

Who this book is for

If you are looking for ways to create a highly capable home automation system that is easily extendable and highly configurable, then this book is for you. Basic knowledge of electronics and programming in Python and/or Java languages will be helpful, but not mandatory.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software