Décembre 2018: Mes articles sur ce site date de 2013!
Je les ai tout de même laissés, ils ont peut-être encore une utilité.
Il vaut mieux consulter ce site: http://Mon livre sur Java, Python et le Raspberry Pi 3
After I got this nice project running successfuly, I decided to write in a blog sufficient information to help beginners with Raspeberry Pi to become familiar with its hardware and software. There are already so many articles on the Web doing more or less the same thing .... but why not again and probably differently!
Being able to switch on or off a 220 Volt home appliance using the light level in the room
So many things have been done before reaching this first running project including:
- Getting the hardware
- Installing the software
- Describing all sort of difficulties before getting my bedside lamp reacting on light level changes in the room
- Adding features inside and outside to extend this project
The idea is also for the author to collect all possible information in order to be able for him, or other interested "players of this Rasperry Pi game", to find out the essential!
The different parts
This is the sensor part to get the light level:
Photo-resistance circuit
This is the relay to switch on a 220V light or anything else connected for instance to a light bulb cable:
220 Volt Relay
And both connected to the Raspberry Pi board:
The code
The following Python code to deal with this project is more or less some copy/paste from different projects, in particular from:
http://www.raspberrypi-spy.co.uk/2012/08/reading-analogue-sensors-with-one-gpio-pin/
#!/usr/bin/python
# Reading an analogue sensor with a single GPIO pin
# Set the relay on off according to the light level
import RPi.GPIO as GPIO, time
# GPIO library to use Broadcom mode
GPIO.setmode(GPIO.BCM)
# Charge time measument
def RCtime (PiPin):
value= 0
# Discharge capacitor
GPIO.setup(PiPin, GPIO.OUT)
GPIO.output(PiPin, GPIO.LOW)
time.sleep(0.5)
GPIO.setup(PiPin, GPIO.IN)
# Count loops until voltage across
# capacitor reads high on GPIO
while (GPIO.input(PiPin) == GPIO.LOW):
value+= 1
return value
GPIO.setup(14, GPIO.OUT)
# Main program loop
while True:
lum = RCtime(4)
print lum # Measure level using GPIO4
if lum < 360:
print 'High light'
GPIO.output(14, False)
else:
print 'Low light'
GPIO.output(14, True)
The relay
This is the part dealing with
the 220V relay. On the picture, we see that 3 cables are connected (one of
the 4 is not required):
·
Yellow - the GPIO pin
·
Red - the 5 Volt power
·
Black - the ground
The wire for the 220 Volt goes to
the green connector. A 220V extension cord with 2 o 3 (with ground) wires can
be prepared like this:
There is a very nice description of the
pins in this Web site:
The pin 8, the fourth from the
right on the external side:
correspond to the BCM GPIO pin 14
(see the Python code). The pin 2 is the 5 Volt required for the relay.
Testing the relay
This is actually recommended when building a project with different parts.
Here a small program for verifying our relay:
#!/usr/bin/python
import RPi.GPIO as GPIO, time
print "Start"
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
PiPin = 14
GPIO.setup(PiPin, GPIO.OUT)
GPIO.output(PiPin, True)
time.sleep(2.0)
GPIO.output(PiPin, False)
print "End"
There are many different ways to test this relay.
This could be done using C++ or directly accessing the GPIO from a Terminal session.
There is an interesting article with nice pictures here:
http://hertaville.com/2012/11/18/introduction-to-accessing-the-raspberry-pis-gpio-in-c/
The sensor part
The cables required are:
·
Purple - the 3.3 Volt for the power
·
Black
- the ground
·
Grey - the GPIO pin to measure the
lightsensor
A complete and nice description
here:
There is no need to copy/paste it here!
A view from inside of the pins may help too:
The first pin is the 3.3 Volt and the fourth the GPIO4.
More articles:
And with the Gertboard: