Utilisation du HC-SR04 avec le Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

Le capteur à ultrasons HC-SR04 est un outil populaire et rentable pour mesurer la distance dans divers projets de bricolage et professionnels. Lorsqu'il est associé à un Raspberry Pi, il ouvre un monde de possibilités pour créer des applications comme la détection d'obstacles, la mesure de niveau et même les installations interactives. Ce billet de blog vous guidera tout au long du processus de configuration et d'utilisation du capteur HC-SR04 avec votre Raspberry Pi.

Quel est le capteur à ultrasons HC-SR04?

Le HC-SR04 est un module de capteur à ultrasons qui mesure la distance en émettant des ondes ultrasoniques et en calculant le temps nécessaire pour que l'écho revienne. Il fonctionne à 5 V et est connu pour sa précision et sa fiabilité dans des mesures de distance courtes à moyenne à moyenne portée, généralement entre 2 cm et 400 cm.

Components You’ll Need

  • Raspberry Pi (any model with GPIO pins, such as Raspberry Pi 4)
  • HC-SR04 Ultrasonic Sensor
  • Fils de cavalier
  • Planche à pain
  • 10kΩ Resistor (for voltage division)
  • Optional: LED and resistor for visual feedback

Wiring the HC-SR04 to the Raspberry Pi

La connexion du HC-SR04 au Raspberry Pi nécessite une manipulation minutieuse, d'autant plus que les broches de framboise PI GPIO fonctionnent à 3,3 V et que le HC-SR04 fonctionne à 5V. To prevent damage to your Pi, it’s essential to use a voltage divider on the Echo pin.

Connexions à broches

  • VCC de HC-SR04 à 5V épingle sur Raspberry Pi
  • GND de HC-SR04 à GND sur Raspberry Pi
  • Trigonométrie Pin de HC-SR04 à un Broche sur Raspberry Pi (par exemple, gpio23)
  • Écho PIN de HC-SR04 à Raspberry Pi via un diviseur de tension

Configuration du diviseur de tension

Pour connecter en toute sécurité la broche d'écho au Raspberry Pi, utilisez un diviseur de tension avec une résistance de 10 kΩ et une résistance de 20 kΩ. Cela dépassera le signal 5V à environ 3,3 V.


# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Installation des bibliothèques nécessaires

Avant d'écrire le code, assurez-vous que votre Raspberry Pi est à jour et que les bibliothèques nécessaires sont installées.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Écrire le script Python

Vous trouverez ci-dessous un simple script Python pour interfacer avec le capteur HC-SR04. Ce script envoie une impulsion de déclenchement, attend l'écho et calcule la distance en fonction du temps pris pour que l'Echo revienne.


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

Exécuter le script

Assurez-vous que votre câblage est correct, puis exécutez le script à l'aide de Python 3:


python3 hc-sr04.py

Vous devriez voir la distance mesurée en centimètres imprimée à la console. Si vous utilisez une LED pour une rétroaction visuelle, vous pouvez modifier le script pour éclairer la LED lorsqu'un objet se trouve dans une certaine plage.

Enhancing Your Project

Once you have the basic distance measurements working, consider integrating additional features:

  • Indicateurs LED: Utilisez des LED pour indiquer différentes gammes de distance.
  • Affichage LCD: Afficher la distance sur un écran LCD.
  • Dogging des données: Enregistrer les mesures de distance au fil du temps pour l'analyse.
  • Systèmes d'alerte: Déclencher des alarmes ou des notifications lorsque les objets sont trop proches.

Dépannage des problèmes communs

Travailler avec des capteurs et GPIO peut parfois être difficile. Voici quelques problèmes communs et comment les résoudre:

  • Câblage incorrect: Vérifiez toutes les connexions, en particulier le diviseur de tension sur la broche d'écho.
  • Mesures bruyantes: Assurez-vous que votre configuration est stable et envisagez d'ajouter des condensateurs pour filtrer le bruit.
  • Conflits GPIO: Assurez-vous qu'aucun autre script ou service n'utilise les mêmes broches GPIO.
  • Autorisations: Exécutez vos scripts avec des autorisations appropriées, en utilisant sudo si nécessaire.

Conclusion

Le capteur à ultrasons HC-SR04 est un composant polyvalent et fiable qui, lorsqu'il est combiné avec le Raspberry Pi, peut servir une multitude d'applications de la mesure à distance simple aux systèmes d'automatisation complexes. By following the steps outlined in this guide, you should be able to set up and start experimenting with the HC-SR04 on your Raspberry Pi. Bonne bricolage!

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.