Raspberry
Pi GPIO Devices
Disclaimer: I'm a programmer, not an
engineer. I've been playing with a Raspberry Pi for the last few
months and have learned some things and formed opinions. What I've
written below may sound like “information” but it's really just
my observations and opinions. Dick Haight, 6/26/13
GPIO devices can be mostly separated as
inputs (sensors) or outputs (switches). But first, a few remarks
about the practical limits of the Rpi. Here's a picture for Rpi B,
rev 2.
The
left-most diagram shows the physical pin numbers in the center two
columns and what the pins might be used for in the outer columns. The
pins (3 and 5) labeled “I2C” can be used to control an I2C add-on
bus which can control up to 16(?) more devices. The “SP10” pins
are still a mystery, but probably work somewhat like the I2Cs. Pins 8
and 10 can be used for old-fashioned serial I/O (but why not just use
USB?). “DNC” simply means “do not connect.”
The middle diagram shows using as many
pins for GPIO as possible. 17 is probably enough.
The right-edge Rpi photo shows the
26-pin header plus 8 more possible GPIOs (blue loop). The green line
circles the socket for the digital camera ribbon cable.
- Outputs have negligible software overhead.
- Input device overhead is directly related to how often each one needs to be checked. A door-open sensor has to be tested every few seconds; temperature readings could be 100th as often. The photocell (below) has the highest software overhead of the devices listed: many tests .1 second apart.
Basically, a normal mix of a dozen
input sensors should be no problem for an Rpi.
Here are some Rpi input
sensors that I find interesting:
Temperature/Humidity DHT22, $10
This
simple device appears to provide reliable temperature/humidity
readings. I also tested the more expensive waterproof thermometer
(DS18B20, temp-only); $16. I need to check how long the connecting
wires can be and still get accurate readings.
Rpi CPU temperature
According
to Asimov's third law of robotics, “A
robot must protect its own existence as long as such protection does
not conflict with the First or Second Laws.” (which involve
protecting people). Therefore, each Rpi has a CPU temperature sensor
built in. I read on the Internet that the Rpi
can tolerate operating temperatures up to 80C. The testing software
should warn (by text message?) at 70C and halt the processor at 75C.
Motion sensor $10
This
sensor needs to be tested about every 4 seconds (motion detection
seems to stay “hi” for 5-6 seconds. It is supposed to measure out
to 25' or so. My device seems to notice movement over about a 90
degree arc. The two adjustment “pots” (green arrows, above)
probably change those values.
Range-finders
There is a large variety of these
devices. Some ultrasonic, some IR. They cost $25 and up. They
typically have a narrow angle of view and a restricted maximum
reading.
Digital Camera $30
I haven't looked into this yet, but it
could be used as a combo motion-sensor/rangefinder. Or webcam.
Open door/window switch $4
Photocell (power fail) sensor $1
These things are intrinsically analog
devices. So the software requires many timed probes (.1 second apart)
to get a reading. I hope to use one of these a a cheap way of
detecting power failure. Most backup UPSs have a light that goes on
when the battery kicks in. Stick a photocell over that lamp and you
have a power-fail sensor.
Soil moisture $10
Prices of these things are all over the
place. Since the info is analog (voltage leak between the tines of the fork), programming is likely to be like the
photocell.
Water level $40
Probably meant for swimming pools. different models can detect up to 12" changes. No
code yet for the Rpi. It's another analog thing.
GPS $30
What every traveling Rpi needs. But I
don't, for now.
Internet and Text-message inputs
If your Rpi is
wifi to a cellphone modem (e.g., Verizon “Mifi”) then it has a
phone number and can send and receive text messages – which means
that you can control the Rpi from any old smartphone, etc.
Keypad $6
Cheap,
but uses a lot of GPIO pins. Why not use a USB device?
Rpi output devices:
LED character displays
Switch 110V AC devices $25
The device shown can handle up to 500W.
E.g., operate a fan, etc.
Irrigation control: 8 – 16 valves
$150 – 200 (rayshobby.net)
This
is an ambitious device for handling up to 16 water valves. Timing can
be controlled by a Google Calendar file in the “Cloud.” Such an
irrigation schedule can be modified by the file's owner from
anywhere. The 24V power supply ($40) and the actual valves are extra.
I believe that this takes 6 of the Rpi's GPIO pins and uses the I2C extension.