IOT TP 2
=========
http://emmanuel-vergne.fr/installation-du-magic-mirror-partie-3/
Alexandre COMPASTIE && Pierre Berget
## Exercice 1

```=python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
p = GPIO.PWM(17, 50)
p.start(2.5) # position initial du moteur
try:
while True:
p.ChangeDutyCycle(7.5) # premier changement de position vers 90 degrés
time.sleep(1)
p.ChangeDutyCycle(12.5) # vers 180
time.sleep(1)
p.ChangeDutyCycle(2.5)
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
```
## Exercice 2

```=python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
p = GPIO.PWM(17, 50)
p.start(2.5) # position initial du moteur
try:
while True:
x = input("choisissez angle ")
dc = (x*10)/180 + 2.5
p.ChangeDutyCycle(dc) #
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
```
## Exercice 3

```=python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)
p = GPIO.PWM(17, 50)
p.start(2.5) # position initial du moteur
x = 0
try:
while True:
button_state = GPIO.input(27)
if button_state == False:
x= x+60
if (x>180):
x = 0
dc = (x*10)/180 + 2.5
p.ChangeDutyCycle(dc)
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
```
## Exercice 4

```=python
import RPi.GPIO as GPIO
import time
PIR_MOTION = 22
GREEN_LED = 27
RED_LED = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR_MOTION, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
GPIO.output(GREEN_LED, False)
GPIO.output(RED_LED, False)
try:
while True:
if GPIO.input(PIR_MOTION) :
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
else :
GPIO.output(RED_LED, True)
GPIO.output(GREEN_LED, False)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 5

```=python
import RPi.GPIO as GPIO
import time
PIR_MOTION = 22
LED = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR_MOTION, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(LED, GPIO.OUT)
GPIO.output(LED, False)
try:
while True:
if GPIO.input(PIR_MOTION) :
GPIO.output(LED, True)
time.sleep(0.5)
GPIO.output(LED, False)
time.sleep(0.5)
GPIO.output(LED, True)
time.sleep(0.5)
GPIO.output(LED, False)
time.sleep(0.5)
else :
GPIO.output(LED, False)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 6

```=python
import RPi.GPIO as GPIO
import time
import sys
import Adafruit_DHT
SENSOR = Adafruit_DHT.DHT22
PIN = 22
GPIO.setmode(GPIO.BCM)
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
temperature_fahren = temperature * 9/5.0 + 32
print('Temp={0:0.1f}* Temp_fahrenheit={1:0.1f} Humidity={2:0.1f}% \n'.format(temperature,temperature_fahren, humidity))
time.sleep(3)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 7

```=python
import RPi.GPIO as GPIO
import time
import sys
import Adafruit_DHT
SENSOR = Adafruit_DHT.DHT22
PIN = 22
LED = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED, GPIO.OUT)
GPIO.output(LED, False)
x = input("temparature")
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
if temperature > x :
GPIO.output(LED, True)
else :
GPIO.output(LED, False)
time.sleep(3)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 8

```=python
import RPi.GPIO as GPIO
import time
import sys
import Adafruit_DHT
SENSOR = Adafruit_DHT.DHT22
PIN = 22
LED = 17
LED2 = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED, GPIO.OUT)
GPIO.setup(LED2, GPIO.OUT)
GPIO.output(LED, False)
GPIO.output(LED2, False)
x = input("temparature \n")
y = input("humadite")
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
if temperature > x :
GPIO.output(LED, True)
else :
GPIO.output(LED, False)
if humidity > y :
GPIO.output(LED2, True)
else :
GPIO.output(LED2, False)
time.sleep(3)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 9

```=python
import RPi.GPIO as GPIO
import time
import sys
import Adafruit_DHT
SENSOR = Adafruit_DHT.DHT22
PIN = 22
GPIO.setmode(GPIO.BCM)
f = open("temparature.txt", "w+")
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
f.write('Temp={0:0.1f} Humidity={1:0.1f}% \n' .format(temperature, humidity))
print('Temp={0:0.1f}* Humidity={1:0.1f}% \n'.format(temperature, humidity))
time.sleep(3)
except KeyboardInterrupt:
f.close()
GPIO.cleanup()
```
## Exercice 10

```=python
import RPi.GPIO as GPIO
import time
import sys
TRIG = 27
ECHO = 17
GPIO.setmode(GPIO.BCM)
print("Mesure de la distance en cours")
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
print("En attente du deploiement de l'objet")
time.sleep(2)
try:
while True:
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
pulse_start = 0
pulse_end = 0
while GPIO.input(ECHO)==0 :
pulse_start = time.time()
while GPIO.input(ECHO)==1 :
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print("Distance : " + str(distance) + " cm")
except KeyboardInterrupt:
GPIO.cleanup()
§
```
## Exercice 11

```=python
import RPi.GPIO as GPIO
import time
import sys
TRIG = 27
ECHO = 17
LED = 22
GPIO.setmode(GPIO.BCM)
print("Mesure de la distance en cours")
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(LED, GPIO.OUT)
GPIO.output(LED, False)
GPIO.output(TRIG, False)
print("En attente du deploiement de l'objet")
time.sleep(2)
try:
while True:
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
pulse_start = 0
pulse_end = 0
while GPIO.input(ECHO)==0 :
pulse_start = time.time()
while GPIO.input(ECHO)==1 :
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print("Distance : " + str(distance) + " cm")
if distance < 5 :
GPIO.output(LED, True)
time.sleep(0.05)
GPIO.output(LED, False)
if distance > 5 and distance < 100 :
GPIO.output(LED, True)
time.sleep(distance*0.01)
GPIO.output(LED, False)
if distance > 100 :
GPIO.output(LED, True)
time.sleep(1)
GPIO.output(LED, False)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 12

```=python
import RPi.GPIO as GPIO
import time
import sys
TRIG = 27
ECHO = 17
RED_LED = 10
GREEN_LED = 22
BUZZER = 5
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(RED_LED, GPIO.OUT)
GPIO.output(RED_LED, False)
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.output(GREEN_LED, False)
GPIO.output(TRIG, False)
GPIO.setup(BUZZER, GPIO.OUT)
GPIO.output(BUZZER, False)
print("En attente du deploiement de l'objet")
time.sleep(2)
try:
while True:
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
pulse_start = 0
pulse_end = 0
while GPIO.input(ECHO)==0 :
pulse_start = time.time()
while GPIO.input(ECHO)==1 :
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print("Distance : " + str(distance) + " cm")
if distance < 5 :
GPIO.output(RED_LED, True)
GPIO.output(GREEN_LED, False)
GPIO.output(BUZZER, GPIO.HIGH)
time.sleep(1)
GPIO.output(BUZZER, GPIO.LOW)
if distance > 5 :
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
except KeyboardInterrupt:
GPIO.cleanup()
```
Deuxième version avec la demande à l'utilisateur
```=python
import RPi.GPIO as GPIO
import time
import sys
TRIG = 27
ECHO = 17
RED_LED = 10
GREEN_LED = 22
BUZZER = 5
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(RED_LED, GPIO.OUT)
GPIO.output(RED_LED, False)
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.output(GREEN_LED, False)
GPIO.output(TRIG, False)
GPIO.setup(BUZZER, GPIO.OUT)
GPIO.output(BUZZER, False)
secux = input("entrez la distance de securite : ")
print("En attente du deploiement de l'objet")
time.sleep(2)
try:
while True:
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
pulse_start = 0
pulse_end = 0
while GPIO.input(ECHO)==0 :
pulse_start = time.time()
while GPIO.input(ECHO)==1 :
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print("Distance : " + str(distance) + " cm")
if distance < secux :
GPIO.output(RED_LED, True)
GPIO.output(GREEN_LED, False)
GPIO.output(BUZZER, GPIO.HIGH)
time.sleep(1)
GPIO.output(BUZZER, GPIO.LOW)
if distance > secux :
GPIO.output(GREEN_LED, True)
GPIO.output(RED_LED, False)
except KeyboardInterrupt:
GPIO.cleanup()
```
## Exercice 13

```=python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
PIR_MOTION = 22
ROUGE = 5
VERT = 6
GPIO.setmode(GPIO.BCM)
GPIO.setup(ROUGE, GPIO.OUT)
GPIO.output(ROUGE, GPIO.HIGH)
GPIO.setup(VERT, GPIO.OUT)
GPIO.output(VERT, GPIO.LOW)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(PIR_MOTION, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
p = GPIO.PWM(17, 50)
p.start(2.5) # position initial du moteur
print("Système étteind actuellement : en attente ordres ")
x = input("1 pour démarrer le système ")
if(x==1):
GPIO.output(ROUGE, GPIO.LOW)
GPIO.output(VERT, GPIO.HIGH)
try:
while True:
if GPIO.input(PIR_MOTION) :
p.ChangeDutyCycle(5) # premier changement de position vers 90 degrés
time.sleep(1)
else :
p.ChangeDutyCycle(2.5) # vers 0
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
```
## Exercice 14