Book Image

BeagleBone Home Automation

By : Juha Lumme
Book Image

BeagleBone Home Automation

By: Juha Lumme

Overview of this book

<p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p>
Table of Contents (14 chapters)

Chapter 3. Creating the Client and Server Applications

So far, we have been working directly on the board with the use of SSH to log in to the system. However, this is not feasible in many scenarios, and we don't want to limit the interface to this type of console-based access.

In this chapter, we will leave lower-level electronics aside for a moment, and start talking a little bit about network programming. Since our target is basically a headless system (in this case, a system with no direct output device), we will need some way of interfacing with it.

Perhaps we also don't want to force ourselves too tightly into a single platform, but would like to have a means to communicate with different types of computing platforms. So, how does one go about creating a platform-independent remote access?

For this, we will use sockets, and we will implement ours on top of the TCP/IP stack so that we will be able to establish them over a network. We will cover the following topics:

  • Discussing TCP/IP socket...