Introduction

Le relais est un composant qui permet de faire l’interface entre votre Raspberry Pi et des composants haute tension. Il va permettre de commander l’allumage d’un composant nécessitant une puissance importante, tels qu’une ampoule à partir de la Raspberry Pi. Il est très utilisé dans la domotique pour contrôler des volets roulants, machine à café, radiateur depuis une Raspberry Pi.

Le relais est constitué de deux parties : Partie commande (côté Raspberry Pi) et la partie puissance. Ces deux parties sont séparés par de l’isolation galvanique. Pour apporter l’énergie nécessaire pour allumer une lampe par exemple vous aurez besoin d’une alimentation externe délivrant la puissance nécessaire à ce que vous souhaitez allumer.

Voici les pins du relais :

  • Ground : se branche sur la masse de la carte Raspberry
  • Vcc : se branche sur le 5V de la carte Raspberry
  • Signal : se branche sur une GPIO de la carte Raspberry

L’utilisation du relais peut se faire avec du 230V et donc cela peut être dangereux. Faites attention à ce que vous faites. Arduino Factory n’est pas responsable en cas de problème.

Prenez un relais en 3.3V !

Les GPIOS de la Raspberry Pi fonctionnent en +3.3V. Ceci veut dire que vous devez prendre un relais fonctionnant en +3.3V. Un relais avec une tension de fonctionnement plus importante ne va pas réussir à ouvrir et fermer son interrupteur.

Voici le schéma pour relier le relais à la Raspberry Pi :

Programmation

Dans le schéma vous pouvez remplacer la lampe par l’objet que vous souhaitez contrôler.

Voici le programme qui permet d’ouvrir et fermer le relais :

import RPi.GPIO as GPIO
import time

# Configuration des broches
relais_pin = 17

# Configuration initiale de la GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(relais_pin, GPIO.OUT)

try:
    while True:
        print("Activation du relais")
        GPIO.output(relais_pin, GPIO.HIGH)  # Activer le relais
        time.sleep(2)  # Maintenir le relais activé pendant 2 secondes

        print("Désactivation du relais")
        GPIO.output(relais_pin, GPIO.LOW)  # Désactiver le relais
        time.sleep(2)  # Attendre 2 secondes avant la prochaine activation

except KeyboardInterrupt:
    pass

finally:
    # Nettoyer les ressources GPIO
    GPIO.cleanup()

Voici ce que l’on obtient sur lançant le programme du relais :