1.0 (sert d'exemple)

This commit is contained in:
2026-03-25 13:11:34 +01:00
parent ea708fc3d5
commit a0b29c9dc4

View File

@@ -1,81 +1,66 @@
"""
code adapté un une utilisation avec mcp3008 pour ldr
"""
import time import time
from machine import I2C, Pin, PWM, ADC from gpiozero import LED, Button, PWMOutputDevice, AngularServo
import utime from gpiozero import MCP3008
# LEDs
led_verte = LED(12)
led_verte_luminosite = LED(25)
led_rouge = LED(13)
led_bleue = LED(14)
led_rouge_gas = LED(10)
servo = AngularServo(32, min_angle=0, max_angle=180)
pir_sensor = Button(33)
gas_sensor = Button(34)
buzzer = PWMOutputDevice(11)
ldr_sensor = MCP3008(channel=0)
pwm = PWM(Pin(32), freq=50)
led_verte = Pin(12, Pin.OUT)
led_verte_luminosite = Pin(25, Pin.OUT)
led_rouge = Pin(13, Pin.OUT)
led_bleue = Pin(14, Pin.OUT)
led_rouge_gas = Pin(10, Pin.OUT)
pir_sensor = Pin(33, Pin.IN)
gas_sensor = Pin(34, Pin.IN)
ldr_sensor_pin = 35
adc = ADC(Pin(ldr_sensor_pin))
adc.width(ADC.WIDTH_10BIT)
adc.atten(ADC.ATTN_11DB)
buzzer_pin = 11
buzzer = PWM(Pin(buzzer_pin), freq=440, duty=0)
def activate_alarm(): def activate_alarm():
for _ in range(3): for _ in range(3):
buzzer.duty(512) buzzer.value = 0.5
utime.sleep(0.5) time.sleep(0.5)
buzzer.duty(0) buzzer.value = 0
utime.sleep(0.5) time.sleep(0.5)
def checkPin(guess): def checkPin(guess):
if guess == secret_pin: if guess == secret_pin:
display_message("Code correct") display_message("Code correct", guess)
led_verte.on() led_verte.on()
pwm.duty(120) servo.angle = 90
utime.sleep(2) time.sleep(2)
pwm.duty(75) servo.angle = 0
led_verte.off() led_verte.off()
else: else:
display_message("Code incorrect") display_message("Code incorrect", guess)
led_rouge.on() led_rouge.on()
activate_alarm() activate_alarm()
utime.sleep(2) time.sleep(2)
led_rouge.off() led_rouge.off()
def display_message(message):
oled.fill(0)
hidden_secret = '*' * len(guess)
oled.text(hidden_secret, 0, 0)
oled.show()
utime.sleep(1)
oled.fill(0)
oled.text(message, 0, 0)
oled.show()
def pir_detection(): def pir_detection():
while True: while True:
if pir_sensor.value() == 1: if pir_sensor.is_pressed:
led_bleue.on() led_bleue.on()
utime.sleep(3) time.sleep(3)
led_bleue.off() led_bleue.off()
utime.sleep(0.1) time.sleep(0.1)
def luminosite_detection(): def luminosite_detection():
while True: while True:
luminosite = adc.read() luminosite = ldr_sensor.value * 1023
print(luminosite) print(luminosite)
if luminosite > 300: if luminosite > 300:
led_verte_luminosite.on() led_verte_luminosite.on()
else: else:
led_verte_luminosite.off() led_verte_luminosite.off()
utime.sleep(0.5) time.sleep(0.5)
import _thread import threading
_thread.start_new_thread(pir_detection, ()) threading.Thread(target=pir_detection, daemon=True).start()
_thread.start_new_thread(luminosite_detection, ()) threading.Thread(target=luminosite_detection, daemon=True).start()