import machine
import onewire
import ds18x20
import ssd1306
import time
# Configuration de l'afficheur SSD1306
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21)) # Changez les broches si nécessaire
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# Configuration du capteur DS18B20
ds_pin = machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
# Configuration du capteur ultrasonique
trigger = machine.Pin(26, machine.Pin.OUT) # Changez le numéro de broche si nécessaire
echo = machine.Pin(25, machine.Pin.IN) # Changez le numéro de broche si nécessaire
# Configuration de la LED et du buzzer
led = machine.Pin(32, machine.Pin.OUT) # Changez le numéro de broche si nécessaire
buzzer = machine.Pin(13, machine.Pin.OUT) # Changez le numéro de broche si nécessaire
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
# Fonction pour lire la distance avec le capteur ultrasonique
def read_distance():
trigger.value(0)
time.sleep_us(2)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
while echo.value() == 0:
pass
start = time.ticks_us()
while echo.value() == 1:
pass
end = time.ticks_us()
distance = (time.ticks_diff(end, start) * 0.0343) / 2 # Calcul de la distance en cm
return distance
# Boucle principale
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
# Lire la distance
distance = read_distance()
# Efface l'afficheur
oled.fill(0)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(rom)
print(temp)
# Affichage sur l'écran OLED
oled.text('Capteur: {}'.format(rom), 0, 0)
oled.text('Temp: {:.2f} C'.format(temp), 0, 10)
oled.text('Dist: {:.2f} cm'.format(distance), 0, 20)
# Affichage de la distance sur l'écran
oled.text('Dist: {:.2f} cm'.format(distance), 0, 20)
oled.show()
# Activation du buzzer et de la LED si la distance est inférieure à un seuil
if ((distance < 100) or (temp>55)): # Seuil de 100 cm, ajustez si nécessaire
led.value(1) # Allumer la LED
buzzer.value(1) # Activer le buzzer
else:
led.value(0) # Éteindre la LED
buzzer.value(0) # Désactiver le buzzer
time.sleep(5) # Délai avant la prochaine lecture
Loading
ds18b20
ds18b20
Loading
ssd1306
ssd1306