"""from machine import Pin, ADC, I2C
import ssd1306 # Bibliothèque pour l'écran OLED
import time
import random # Pour générer des valeurs aléatoires pour le capteur de gaz
# Initialisation des composants
capteur_gaz = ADC(Pin(34)) # Capteur de fumée/gaz MQ-2 (simulation)
capteur_gaz.atten(ADC.ATTN_11DB) # Pour capturer toute l'échelle (0-3.3V)
buzzer = Pin(2, Pin.OUT) # Buzzer connecté à la pin GPIO2
led = Pin(4, Pin.OUT) # LED connectée à la pin GPIO4
# Initialisation de l'écran OLED SSD1306 (I2C)
i2c = I2C(0, scl=Pin(22), sda=Pin(21)) # Bus I2C pour l'écran OLED
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Initialisation de l'écran OLED (128x64)
# Seuil de détection pour les niveaux de gaz/fumée
seuil_danger = 1500 # Seuil au-delà duquel une alerte sera activée
# Fonction pour afficher les informations sur l'écran OLED
def afficher_niveau(niveau):
oled.fill(0) # Effacer l'écran
oled.text("Detecteur de Gaz", 0, 0)
oled.text("Niveau Gaz/Fumee:", 0, 20)
oled.text(str(niveau), 0, 40)
if niveau >= seuil_danger:
oled.text("!!! ALERTE !!!", 0, 55) # Affichage d'une alerte si le niveau est dangereux
oled.show()
# Boucle principale
while True:
# Simuler une lecture de gaz avec une valeur aléatoire entre 0 et 3000
niveau = random.randint(0, 3000) # Générer un nombre aléatoire entre 0 et 3000
afficher_niveau(niveau) # Affichage sur l'écran OLED
# Vérifier si le niveau détecté est supérieur ou égal au seuil danger
if niveau >= seuil_danger:
led.on() # Allumer la LED pour indiquer un danger
buzzer.on() # Activer le buzzer pour alerter l'utilisateur
else:
led.off() # Éteindre la LED
buzzer.off() # Désactiver le buzzer
time.sleep(1) # Pause entre chaque mesure (1 seconde)"""
"""
from machine import Pin, ADC, I2C, PWM
import ssd1306 # Bibliothèque pour l'écran OLED
import time
import random # Pour générer des valeurs aléatoires pour le capteur de gaz
# Initialisation des composants
capteur_gaz = ADC(Pin(34)) # Capteur de fumée/gaz MQ-2 (simulation)
capteur_gaz.atten(ADC.ATTN_11DB) # Pour capturer toute l'échelle (0-3.3V)
buzzer = Pin(2, Pin.OUT) # Buzzer connecté à la pin GPIO2
led = Pin(4, Pin.OUT) # LED connectée à la pin GPIO4
bouton = Pin(5, Pin.IN, Pin.PULL_UP) # Bouton poussoir connecté à GPIO5
moteur = PWM(Pin(15)) # Moteur simulé connecté à GPIO15
moteur.freq(1000) # Fréquence PWM pour contrôler le moteur
# Initialisation de l'écran OLED SSD1306 (I2C)
i2c = I2C(0, scl=Pin(22), sda=Pin(21)) # Bus I2C pour l'écran OLED
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Initialisation de l'écran OLED (128x64)
# Seuil de détection pour les niveaux de gaz/fumée
seuil_danger = 1500 # Seuil au-delà duquel une alerte sera activée
# Fonction pour afficher les informations sur l'écran OLED
def afficher_niveau(niveau):
oled.fill(0) # Effacer l'écran
oled.text("Detecteur de Gaz", 0, 0)
oled.text("Niveau Gaz/Fumee:", 0, 20)
oled.text(str(niveau), 0, 40)
if niveau >= seuil_danger:
oled.text("!!! ALERTE !!!", 0, 55) # Affichage d'une alerte si le niveau est dangereux
oled.show()
# Fonction pour démarrer le moteur
def demarrer_moteur():
oled.fill(0)
oled.text("Moteur actif", 0, 20)
oled.text("Transformation", 0, 40)
oled.text("Gaz -> Energie", 0, 55)
oled.show()
moteur.duty(512) # Puissance moyenne pour le moteur (ajuster si nécessaire)
print("Moteur démarré")
# Fonction pour arrêter le moteur
def arreter_moteur():
moteur.duty(0) # Arrêter le moteur
print("Moteur arrêté")
# Boucle principale
while True:
# Simuler une lecture de gaz avec une valeur aléatoire entre 0 et 3000
niveau = random.randint(0, 3000) # Générer un nombre aléatoire entre 0 et 3000
afficher_niveau(niveau) # Affichage sur l'écran OLED
# Vérifier si le niveau détecté est supérieur ou égal au seuil danger
if niveau >= seuil_danger:
led.on() # Allumer la LED pour indiquer un danger
buzzer.on() # Activer le buzzer pour alerter l'utilisateur
print("ALERTE ! Niveau de gaz élevé. En attente de confirmation...")
debut_alerte = time.time() # Enregistrer le temps de début de l'alerte
# Attendre que le bouton soit pressé ou que le délai expire
while time.time() - debut_alerte < 10: # Délai de 10 secondes
if bouton.value() == 0: # Bouton pressé
print("Alerte confirmée par l'utilisateur.")
led.off()
buzzer.off()
break
time.sleep(0.1) # Petit délai pour éviter une boucle trop rapide
else: # Si le délai expire sans intervention
print("Pas d'intervention. Démarrage du moteur.")
demarrer_moteur()
time.sleep(5) # Laisser le moteur fonctionner pendant 5 secondes
arreter_moteur()
else:
led.off() # Éteindre la LED
buzzer.off() # Désactiver le buzzer
time.sleep(1) # Pause entre chaque mesure (1 seconde)
"""
from machine import Pin, ADC, I2C, PWM
import ssd1306 # Bibliothèque pour l'écran OLED
import time
import random # Pour générer des valeurs aléatoires pour le capteur de gaz
# Initialisation des composants
capteur_gaz = ADC(Pin(34)) # Capteur de fumée/gaz MQ-2 (simulation)
capteur_gaz.atten(ADC.ATTN_11DB) # Pour capturer toute l'échelle (0-3.3V)
buzzer = Pin(2, Pin.OUT) # Buzzer connecté à la pin GPIO2
led = Pin(4, Pin.OUT) # LED connectée à la pin GPIO4
bouton = Pin(5, Pin.IN, Pin.PULL_UP) # Bouton poussoir connecté à GPIO5
moteur = PWM(Pin(15)) # Moteur simulé connecté à GPIO15
moteur.freq(1000) # Fréquence PWM pour contrôler le moteur
# Initialisation de l'écran OLED SSD1306 (I2C)
i2c = I2C(0, scl=Pin(22), sda=Pin(21)) # Bus I2C pour l'écran OLED
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Initialisation de l'écran OLED (128x64)
# Seuil de détection pour les niveaux de gaz/fumée
seuil_danger = 1500 # Seuil au-delà duquel une alerte sera activée
# Fonction pour afficher les informations sur l'écran OLED
def afficher_niveau(niveau):
oled.fill(0) # Effacer l'écran
oled.text("Detecteur de Gaz", 0, 0)
oled.text("Niveau Gaz/Fumee:", 0, 20)
oled.text(str(niveau), 0, 40)
if niveau >= seuil_danger:
oled.text("!!! ALERTE !!!", 0, 55) # Affichage d'une alerte si le niveau est dangereux
oled.show()
# Fonction pour démarrer le moteur
def demarrer_moteur():
oled.fill(0)
oled.text("Moteur actif", 0, 20)
oled.text("Transformation", 0, 40)
oled.text("Gaz -> Energie", 0, 55)
oled.show()
moteur.duty(512) # Puissance moyenne pour le moteur (ajuster si nécessaire)
print("Moteur démarré")
# Fonction pour arrêter le moteur
def arreter_moteur():
moteur.duty(0) # Arrêter le moteur
print("Moteur arrêté")
# Boucle principale
while True:
# Simuler une lecture de gaz avec une valeur aléatoire entre 0 et 3000
niveau = random.randint(0, 3000) # Générer un nombre aléatoire entre 0 et 3000
afficher_niveau(niveau) # Affichage sur l'écran OLED
# Vérifier si le niveau détecté est supérieur ou égal au seuil danger
if niveau >= seuil_danger:
led.on() # Allumer la LED pour indiquer un danger
buzzer.on() # Activer le buzzer pour alerter l'utilisateur
print("ALERTE ! Niveau de gaz élevé. En attente de confirmation...")
debut_alerte = time.time() # Enregistrer le temps de début de l'alerte
# Attendre que le bouton soit pressé ou que le délai expire
while time.time() - debut_alerte < 10: # Délai de 10 secondes
if bouton.value() == 0: # Bouton pressé
print("Alerte confirmée par l'utilisateur.")
led.off()
buzzer.off()
break
time.sleep(0.1) # Petit délai pour éviter une boucle trop rapide
else: # Si le délai expire sans intervention
print("Pas d'intervention. Démarrage du moteur.")
demarrer_moteur()
led.off()
time.sleep(5) # Laisser le moteur fonctionner pendant 5 secondes
arreter_moteur()
else:
led.off() # Éteindre la LED
buzzer.off() # Désactiver le buzzer
time.sleep(2) # Pause entre chaque mesure (2 seconde)