from machine import ADC, Pin
import time
import dht
from machine import Pin
import time
bouton = Pin(13, Pin.IN, Pin.PULL_UP) # PULL_UP = relâché = 1, pressé = 0
capteur = dht.DHT22(Pin(14)) # Configuration du DHT11 sur GPIO14
ldr = ADC(Pin(34)) # Configuration du LDR sur GPIO34
ldr.atten(ADC.ATTN_11DB) # Pour lire jusqu'à 3.3V
solaire = ADC(Pin(35))
solaire.atten(ADC.ATTN_11DB)
ldr = ADC(Pin(34))
ldr.atten(ADC.ATTN_11DB)
bouton = Pin(13, Pin.IN, Pin.PULL_UP)
led_lampe = Pin(27, Pin.OUT) # On ajoute une LED pour la lampe
SEUIL_LUMIERE = 1500 # À ajuster selon tes tests
while True:
valeur_lumiere = ldr.read() # Lit une valeur entre 0 et 4095
print("Luminosité =", valeur_lumiere)
capteur.measure() # Demande la mesure
temp = capteur.temperature()
humid = capteur.humidity()
print("Température =", temp, " °C - Humidité =", humid, "%")
etat = bouton.value()
if etat == 0: print("✅ Quelqu’un est présent !")
else: print("❌ Aucune présence")
valeur_brute = solaire.read()
watts = (valeur_brute / 4095) * 100 # Convertir en Watts (0 à 100W)
print("Production solaire =", round(watts, 1), "W")
lumiere = ldr.read()
presence = bouton.value()
# Si il fait sombre ET il y a quelqu’un → allumer la lampe
if lumiere < SEUIL_LUMIERE and presence == 0:
led_lampe.on()
print("💡 Lampe allumée")
else:
led_lampe.off()
print("🌑 Lampe éteinte")
conso = 0
if led_lampe.value() == 1:
conso += 10 # +10W si la lampe est allumée
if temp > 28:
conso += 20 # +20W si trop chaud
print("❄️ Climatisation active → +20W")
print("📊 Consommation totale =", conso, "W")
led_vert = Pin(26, Pin.OUT)
led_rouge = Pin(25, Pin.OUT)
if watts >= conso:
led_vert.on()
led_rouge.off()
print("Équilibre énergétique")
else:
led_vert.off()
led_rouge.on()
print(" Surconsommation !")
led_bleue = Pin(23, Pin.OUT)
# Si production > consommation + 20W → excédent !
if watts > conso + 20:
led_bleue.on()
print("Excédent d'énergie → peut alimenter le quartier !")
else:
led_bleue.off()
compteur = 0
# ... tout ton code précédent ...
compteur += 1
if compteur % 5 == 0: # Toutes les 5 boucles (~10 secondes)
print("Données transmises au gestionnaire urbain")
time.sleep(2)
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
Ahmed chahed et emna khouzami