Book Image

BeagleBone Home Automation Blueprints

By : Rodolfo Giometti
Book Image

BeagleBone Home Automation Blueprints

By: Rodolfo Giometti

Overview of this book

BeagleBone is a microboard PC that runs Linux. It can connect to the Internet and can run OSes such as Android and Ubuntu. BeagleBone is used for a variety of different purposes and projects, from simple projects such as building a thermostat to more advanced ones such as home security systems. Packed with real-world examples, this book will provide you with examples of how to connect several sensors and an actuator to the BeagleBone Black. You’ll learn how to give access to them, in order to realize simple-to-complex monitoring and controlling systems that will help you take control of the house. You will also find software examples of implementing web interfaces using the classical PHP/HTML pair with JavaScript, using complex APIs to interact with a Google Docs account, WhatsApp, or Facebook. This guide is an invaluable tutorial if you are planning to use a BeagleBone Black in a home automation project.
Table of Contents (18 chapters)
BeagleBone Home Automation Blueprints
About the Author
About the Reviewers

The distance monitor

Now it's time to see how our park assistant can work in practice. A possible implementation of the code is reported in the chapter_02/ script in the book's example code repository. The following code snippet shows the main code:

# Ok, do the job
while sleep .1 ; do
   # Read the current distance from the sensor
   dbg "d=$d"

   # Manage the LEDs
   leds_man $d

The functioning is simple—the code periodically reads the distance from the sensor by using the function pointed by the d_fun variable, and then turns the LEDs on and off, according to the value of the distance d (in cm) by using the leds_man function.

The d_fun variable holds the name of the function that should read the distance by using the ADC, that is, read_adc, or the name of the function that uses the serial port, that is, read_tty. The following are the two functions:

function read_adc () {
   n=$(cat $ADC_DEV)

   d=$(bc -l <<< "$k * 3.3 * $n/4095 / 0.00161")