Accueil | Niveau de difficulté | Débutant | Activer le bus i2c du Raspberry Pi 3 ou du Pi Zero W

Activer le bus i2c du Raspberry Pi 3 ou du Pi Zero W

Le bus de données i2c permet d’échanger des données numériques entre un capteur (ou un actionneur) et un mini-PC tel que le Raspberry Pi. Le bus i2c est très répandu également sur les micro-contrôleurs (Arduino, ESP8266, ESP32). Par défaut, le bus i2c n’est pas activé sur la distribution Raspbian. Nous allons l’activer et installer les outils nécessaires.

Ce tutoriel fonctionne sur toutes les versions de Raspbian et tous les modèles de Raspberry Pi (y compris le nouveau Pi Zero W).

Activer le bus i2c avec l’outil raspi-config

Connectez-vous en SSH (lire ce tutoriel pour apprendre comment faire) ou ouvrez un Terminal puis lancez l’outil de configuration de Raspbian.

Choisissez l’option (5) Interfacing Options

 raspberry pi i2c raspi-config

Puis dans la liste l’option (P5) I2C. Activez en choisissant YES. No pour désactiver.

raspberry pi i2c activate raspi-config

Il est nécessaire de redémarrer le Raspberry Pi pour prendre en compte la modification.

Installer les outils i2c

Tout d’abord, faites une mise à jour du système.

Attention, l’opération risque de prendre du temps si vous n’avez pas mis à jour le système depuis longtemps.

Une fois le système mis à jour, lancez l’installation les outils permettant de communiquer avec les périphériques i2c en Python (python-smbus) et les outils de diagnostic (i2c-tools).

L’installation terminée, on peut déjà tester si les modules sont bien chargés

Vous devez le module i2c_bcm2708 (ou i2c_bcm2835 sur le Raspberry Pi Zero W), c’est que les modules ont été correctement chargés.

Broches i2c sur le GPIO du Raspberry

Les broches i2c se trouvent sur les broches 3 (SDA) et 5 (SCL).

Raspberry pi reperage broches Pinout

Si vous débutez avec le Raspberry Pi, je vous conseille de vous procurer un adaptateur pour breadboard sur lequel les broches sont déjà repérées. La broche 1 du GPIO est symbolisée par un carré. adaptateur wedge gpio raspberry pi

Brancher et tester un périphérique i2c au Raspberry Py

Pour éviter toute détérioration de votre Raspberry Pi, il est impératif d’éteindre le système avec la commande sudo halt et débrancher l’alimentation électrique.

Pour illustrer ce tutoriel, j’ai capteur de luminosité BH1750 (GY-302 de CJMCU) présenté dans cet article. N’importe quel autre capteur i2c pourra faire l’affaire. Par défaut, le BH1750 possède l’adresse 0x23.

Vérifier l’adresse du périphérique avec i2cdetect

La commande i2cdetect permet de connaitre l’adresse du périphérique sur le bus i2c. Le bus i2c permet de connecter jusqu’à 255 appareils. En fonction de la version du Raspberry Pi, la commande est différente. Pour les Pi 3 et Pi 2 (modèles A, B, B+) et le Pi Zero, exécutez

Pour les anciens modèles, exécutez

En cas d’erreur, vous obtiendrez le message suivant

Voici ce que vous devriez obtenir. Le BH1750 se trouve bien à l’adresse prévue.

Voilà, tout est prêt pour utiliser des capteurs i2c dans vos programmes python, C++ ou Node-RED.