***Note: I have updated this thread with newer installation instructions. I've kept the original post untouched just for reference.***
My latest experiement has been to read from the vast array of analog sensors that are made available from
Vernier. The company distributes an SDK that makes a lot of the device interaction straightforward, although compiling the SDK on a Raspberry Pi required a little bit of work which I described in a bit more detail here [dead link removed]. As with some of the other projects I've played around with, I find it easiest to interact with hardware devices through MathLink and a bit of c code, so I made a few functions that grab device information and make a measurement (in this case, an average of up to 25 measurements within 1 second).
What makes this approach interesting, in my opinion, is that it utilizes what Vernier calls the
Go!Link interface with provides a USB connection from the Vernier probe to the (in this case) Raspberry Pi. The Go!Link allows one to make hot-swapable devices; with a Dynamic call to the MathLink functions, I get.

Here is a simple interface where I'm swapping out a thermometer, barometer and a CO2 sensor. The SDK knows the identity of the sensor, the units it uses and has calibration information already set up so getting the sensors up and running in Mathematica was easy (the tricky part was the MathLink code).
Naturally, we can make dynamic plots of sensor readings as well:

Here I'm using Clock to poll a light sensor every 2 seconds and then shining a light source on the sensor. The 0-value readings are not conditions of no light, but rather times when the sensor reading failed. At the moment, I'm not sure if that's a Mathematica or c problem.