IOT TP 2 ========= http://emmanuel-vergne.fr/installation-du-magic-mirror-partie-3/ Alexandre COMPASTIE && Pierre Berget ## Exercice 1 ![](https://i.imgur.com/5vJ72DO.jpg) ```=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 ![](https://i.imgur.com/5vJ72DO.jpg) ```=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 ![](https://i.imgur.com/yjBoicf.jpg) ```=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 ![](https://i.imgur.com/Inkl1S8.jpg) ```=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 ![](https://i.imgur.com/18ht0dm.jpg) ```=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 ![](https://i.imgur.com/NCEjvZ4.jpg) ```=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 ![](https://i.imgur.com/0wHonyh.jpg) ```=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 ![](https://i.imgur.com/8u8iwTV.jpg) ```=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 ![](https://i.imgur.com/U47xLjm.jpg) ```=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 ![](https://i.imgur.com/M90nKlH.jpg) ```=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 ![](https://i.imgur.com/JbBGvAV.jpg) ```=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 ![](https://i.imgur.com/KJmxquv.jpg) ```=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 ![](https://i.imgur.com/jAFtGq5.jpg) ```=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