I thought I'd drop a few tips for those following along on the "LAN of things" project, about how I'm doing the development and some of the tricks. As many are no doubt aware, I kind of like that old perl language, so I try to do as much as I can in it.
When programmer speed is required, it's very hard to beat. When CPU speed is required, well, there's www://search.cpan.org - any compute-heavy perl module addon is likely to have been written in C for speed...so you get the best of both worlds, mostly things are already-written and at most you adapt or use perl to duct-tape them together, and it's still fast despite perl being an interpreted language (with interfaces to darn near everything). In this case, the Raspberry Pi hardware, among others.
After looking at quite a few alternatives, I've chosen the HiPi modules. There is also for example, Device::SMBus, but that one is "heavy" and takes literally several hours to install, as it pulls in tons of dependencies (test harnesses, moose...about 26 other modules, gheesh, what was anyone thinking for a Pi?). The HiPi stuff is lightweight and uses the linux kernel driver for the Broadcom SOC peripherals for speed, and compatibility.
Early on when doing a new Pi, I always do "$sudo apt-get install synaptic". At least that has a gui and you can search for things. About the next thing I do is install cpanminus (using synaptic), which makes getting and installing perl modules a breeze - and for cpanm (the executable, works kinda like apt-get), they use the same names as you see in the perl program, for example: $sudo cpanm Time::HiRes will install that module. The fact that if it's also in the distro's repository under a different name is now irrelevant, and it's easier to get perl programs running when they come from someone else (like me). You just try to run them, if they fail, there will be "can't find "some module, aborted" and you then just install it with cpanm until things work (there might be several needed for any given program, don't worry, they aren't large in general). Any linux will already have perl and the core modules, Raspian being no exception.
For installing hardware from AdaFruit, I generally use their directions and methods, and nearly all the time, that works fine. I'm for example using a 10" HDMI LED display on mine (this is going to be inserted in a wall), and there's a few tweaks for that which work as they say.
So, I'm busy designing and building my LAN of things, and I wanted to offload some things off the arduino UNOs I'm using to conserve on the number of UNOs I need, and do some non-real-time kinds of things on the pi itself (for the moment, I'm using a pi B+, but have a B2 on the way). I want barometric pressure, and got a BMP-180 breakout board for that and had it working fine on arduino, but wanted again to just have it on the pi itself - there's room in the box, and the BMP temperature sensor is useless to me elsewhere, as when I really want to know that, I want relative humidity along with it (DHT22 sensor). So why not put it right in the box, and let it tell me the box temperature? Well, that's what I did, anyway.
All this data from everything is going into a mysql database, which will then be read to generate a web page of system info and status using mod_perl and apache (which also supports that very nice camera, which I just found works fine with the 2 meter cable...nice security cam...with NOIR version it can see in the dark too...). Perl is once again ideal for talking to mysql, there's a simple DBI module for that and it's quick and compact.
This example program doesn't do that - I'll have the full suite later on, and my details will no doubt be different from yours anyway, so I'm hoping that these little piece-part examples will help you out doing your own thing. This version simply reads the BMP180 and prints it out. At present, you have to be root to run it, but you can chmod it to have root privileges later easily enough. I plan to have it start automatically at boot and just feed mysql every so often in real use. Most of the time, it will be asleep (no point in high time resolution for this data) and using no CPU, which is good, considering that's the weak point of a pi B+.
I found an example program in perl, but it used the aforementioned Device::SMBus, which took hours to put in, needed root anyway, and is a waste of space on the pi for what I'm doing, so it's going out of there. I modified it to use the much lighter weight HiPi::Device::I2C module instead, and will likely modify it somewhat further as it's bulkier and more general purpose, as well as "politically correct" than I actually require here - I'll do the "tighten it up" at some point before putting it in service, but it works fine as is. Example, every subroutine in this uses my declarations for variables it already has, wasting CPU and ram when it doesn't change them anyway, so it's safe to use the ones as passed in - or globals for even better speed, since most of us will only ever have one BMP180 - the barometric pressure had better be more or less the same anywhere on your campus as it is on mine...we are not using this as a differential wind detector, there are better things for that, anyway.
So, here's the code, and also what it looks like running...
And it looks like this running:
One less bit of data to move over wires, ah.