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)

Implementing a save/load framework


Now that our target will be having a server constantly running on our board, we will need some kind of configuration file for it so that the server knows how it is supposed to operate. For this purpose, we will create a file called server.conf (or more exactly, we will define a variable that will hold the name of this file) that will always hold the current runtime configuration of our server.

First, we should define a structure for it. A very simple one can be a configuration like keyword=value. It's simple to read, and also parsing it with code is easy.

Then, we should think about what type of configuration data we need in our server. This will, of course, depend on the features of the server. What kind of features do we currently have in our code? That's right, we have two functions, temperature and light sensor measurement. Let's make the delay between readings a configurable value. Create a file called server.conf and enter the following lines in it...