This is a project I've been working on for a while, and still have ways to go, but I have enough success right now that I can I share what I've got.  This covers connecting a Beaglebone and an Arduino via TTL serial and I2C, using a parallel LCD with an Arduino, using a DHT-22 with Arduino, and using DS18B20 1-wire sensors with a BeagleBone in the next week or so.

I believe that all the instructions here will apply more or less as-is to a RaspberryPI or pcDuino or any other little computer that supports TTL serial and i2c, and 1-wire for the DS18B20.  As I get some ArchReactor (the local hackerspace) members to try this on their devices, I'll update here confirming what devices work and add any relevant information.

My end-goal is to use several temperature, humidity, and other sensors spread through my house, including outside, and control my heat and AC and whole house fan in order to optimize and balance comfort and energy use.  The details of how that will work are yet to be nailed down, and I'm going to start with monitoring so I can see what kind of data I have to work with. 

This instructable will explain how to get started with using an Arduino and Beaglebone and a couple sensors and a display.

Stuff you'll need:
 - BeagleBone
 - Ardunio
 - Sensors
 - lots of jumper wires!

I've had a BeagleBone for a while, but a Black should work the same.  For the Arduino you can prototype with an Uno or other standard arduino compatible, but I'm using a breadboard arduino, and I'll eventually make a PCB for it, so that I can integrate it into as small a case as possible.  For the LCD, I've chosen an 2.8" TFT with touch screen.  There are certainly easier to use LCDs out there, but this one is only $18, and I have enough IO's to make this run in 8-bit mode.  I'm starting with the DHT-22 temp and humidity sensor, and I'll be adding DS18B20 temp sensors soon. 

I've made a SparkFun wishlist for the breadboard Arduino parts and the sensors.

Another goal of mine was to be able to update the Arduino's program from the BeagleBone's TTL serial.  I've detailed that in this instructable, and the serial parts here will be based on that.  After I got the LCD working I realized that it requires use of D0 and D1 (the serial port) and so to communicate with the Beaglebone I had to use something different.  I decided to learn something new and use I2C.

Step 1: Wire the BB and Arduino Together

We'll start by getting the BeagleBone to talk to the Arduino.  I recommend reading my instructable for getting them wired up and running the test code.  I'll do a quick overview here, refer the image with the chart for pin numbers:

Wire the bare bones Arduino, minus the FTDI. 
wire BeagleBone Serial2 to the level shifter.
wire Ardunio serial to the level shifter, RX and TX crossed.
wire BeagleBone and Arduino i2c together.  Level shifter is not needed, the BeagleBone's pullup's are strong enough to handle the low current.
wire BeagleBone's P9 23 to Arduino Reset
Wire 5V supply on one power rail, and 3.3V on the other.
Wire the grounds together.

I've included a new Fritzing to show the I2C lines.  Unfortunately I did not save a simple set of i2c test programs.  If anyone has trouble getting this to work I can make one.

About This Instructable




More by chrwei:Simple Example: Arduino+ESP8266+DS18B20 Intel Edison Arduino serial to Host process serial communication 555 Timer, Variable Blinking Light 
Add instructable to: