Débuter
S'équiper
Matériel recommandé

Vous voulez participer au financement du blog. C’est simple, suivez les liens commerciaux pour faire vos achats. Quelques pourcents qui font toute la différence. Merci à vous !

Kit raspberry pi 4 8GB
Kit Raspberry Pi 4 - 8GB
kit raspberry pi 4
Kit Raspberry Pi 4 - 4GB
raspberry pi 4 2019
Raspberry Pi 4 - 4GB
Cartes micro-SD SDHC v90
Kit Retrogaming Nespi
Kit Retrogaming

Activer le bus i2c du Raspberry Pi ou du Pi Zero W (toutes générations)

bh1750 gy-302 i2c raspberry pi zero
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

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 (sécurité), le bus i2c n’est pas activé sur la distribution Raspbian. On peut l’activer directement depuis les préférences du système ou depuis le Terminal à l’aide de l’utilitaire de configuration raspi-config.

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

Activer le bus I2C depuis le menu préférences de Raspberry Pi OS (ancien Raspbian)

Si vous avez choisi d’installer Raspbian Buster avec une interface graphique, ouvrez le menu Préférences puis lancez Pi Configuration.

raspberry pi raspbian i2c configuration fr

On active le bus I2C en cliquant sur Enable. Cliquez sur OK pour enregistrer la modification. Redémarrez Raspbian pour activer le bus I2C.

raspberry pi raspbian i2c activate fr

Activer le bus i2c avec l’outil raspi-config

Pour des projets qui ne nécessitent pas d’interface graphique (projets robotique à base de Raspberry Pi Zero par exemple), le bus I2C est géré à l’aide de l’utilitaire raspi-config sur Raspbian.

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

sudo raspi-config

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.

sudo reboot

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.
sudo apt update 
sudo apt upgrade -y

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).

sudo apt-get install -y python-smbus i2c-tools

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

pi@raspberrypi:~ $ lsmod | grep i2c_
i2c_bcm2835             6433  0 
i2c_dev                 6642  0

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 (T-Cobber) 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.

gy 302 bh1750 pinout

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

sudo i2cdetect -y 1

Pour les anciens modèles, exécutez

sudo i2cdetect -y 0

En cas d’erreur, vous obtiendrez le message suivant

Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory

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

pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

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

 

 

 

 

 

Avez-vous aimé cet article ?
[Total: 1 Moyenne: 5]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

Nous serions ravis de connaître votre avis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.