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)

Advanced server


In the last chapter, our chat server was fairly simple and couldn't really do anything genuinely useful, but it served as a nice primer into socket communications.

Now we will start getting more serious about socket communication and server functionality. We shall implement a client server framework that transmits real-time information from the server and also creates a base for future extensions of supported functionalities.

The first thing when more advanced communications are expected between clients and servers, a protocol needs definition. There are different approaches to writing a communication protocol between programs. You can roughly divide them in two categories: human readable protocols and binary protocols. Human readable protocols are easy to understand and debug, but they are perhaps somewhat wasteful in resources as they use more space and have more data to transmit. In this book, we will stick to a human readable one. As a learning exercise, human readable...