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!