From a0b29c9dc4762eab0bc6c2e55979708ab4f892ed Mon Sep 17 00:00:00 2001 From: maxime Date: Wed, 25 Mar 2026 13:11:34 +0100 Subject: [PATCH] 1.0 (sert d'exemple) --- composants/main.py | 91 +++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 53 deletions(-) diff --git a/composants/main.py b/composants/main.py index 6c0345a..92aead8 100644 --- a/composants/main.py +++ b/composants/main.py @@ -1,81 +1,66 @@ +""" +code adapté un une utilisation avec mcp3008 pour ldr + +""" + + import time -from machine import I2C, Pin, PWM, ADC -import utime +from gpiozero import LED, Button, PWMOutputDevice, AngularServo +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(): for _ in range(3): - buzzer.duty(512) - utime.sleep(0.5) - buzzer.duty(0) - utime.sleep(0.5) + buzzer.value = 0.5 + time.sleep(0.5) + buzzer.value = 0 + time.sleep(0.5) def checkPin(guess): if guess == secret_pin: - display_message("Code correct") + display_message("Code correct", guess) led_verte.on() - pwm.duty(120) - utime.sleep(2) - pwm.duty(75) + servo.angle = 90 + time.sleep(2) + servo.angle = 0 led_verte.off() else: - display_message("Code incorrect") + display_message("Code incorrect", guess) led_rouge.on() activate_alarm() - utime.sleep(2) + time.sleep(2) 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(): while True: - if pir_sensor.value() == 1: + if pir_sensor.is_pressed: led_bleue.on() - utime.sleep(3) + time.sleep(3) led_bleue.off() - utime.sleep(0.1) - + time.sleep(0.1) def luminosite_detection(): while True: - luminosite = adc.read() - print (luminosite) + luminosite = ldr_sensor.value * 1023 + print(luminosite) if luminosite > 300: led_verte_luminosite.on() else: led_verte_luminosite.off() - utime.sleep(0.5) + time.sleep(0.5) -import _thread -_thread.start_new_thread(pir_detection, ()) -_thread.start_new_thread(luminosite_detection, ()) +import threading +threading.Thread(target=pir_detection, daemon=True).start() +threading.Thread(target=luminosite_detection, daemon=True).start() \ No newline at end of file