#########thermometre differentiel ##########################
from machine import Pin, PWM
import machine
import ds18x20
import onewire
import time
# 1 config sondes temperature
ds18B20 = machine.Pin(4)
# 2. Créer l'objet onewire
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds18B20))
# 3. Scanner le bus pour trouver les capteurs
roms = ds_sensor.scan()
print('Capteurs trouvés :', roms)
# 4. Lire la température
def lire_temp():
ds_sensor.convert_temp() # Lancer la conversion
time.sleep_ms(750) # Attendre 750ms
for rom in roms:
return ds_sensor.read_temp(rom)
print(f"Température : {lire_temp()}°C")
# Configurer la LED (exemple)
led = Pin(25, Pin.OUT)
led_state=True
led.on()
time.sleep(3)
led.off()
buzzer = PWM(Pin(23))
# BUZZER pour test à remplace par relai ventilo
def bip(freq, duree):
buzzer.freq(freq) # Définit la hauteur du son
buzzer.duty_u16(32768) # Allume à 50% (32768/65535)
time.sleep(duree) # Attend
buzzer.duty_u16(0) # Éteint le buzzer [1, 3]
#bipper
bip(10, 0.5) # Fait un bip de x Hz pendant s seconde
# Configurer le bouton avec résistance pull-up interne
bouton = Pin(26, Pin.IN, Pin.PULL_UP)
# Fonction de rappel (handler) appelée lors de l'appui
def action_bouton(pin):
global boutonTRTencours
global led_state
global nro_boucle
if boutonTRTencours==False :
bip(200, 0.03)
boutonTRTencours=True
#print("Bouton appuyé !")
if led_state==True:
led.on()
else:
led.off()
print(" LED25 ", led_state," ", nro_boucle)
led_state = not led_state
print("")
else:
print("Rebond bcl ",nro_boucle)
# Attacher l'interruption (sur front descendant = appui si PULL_UP)
#bouton.irq(trigger=Pin.IRQ_FALLING, handler=action_bouton)
print(" DEBUT BOUCLE INFINIE DU PROGRAMME")
nro_boucle=0.0
while (True):
nro_boucle +=1
boutonTRTencours=False
bouton.irq(trigger=Pin.IRQ_FALLING, handler=action_bouton)
print(nro_boucle)
time.sleep(0.5)
#fin while / boucle prog principal