🛠 Contrôler un capteur I2C avec l'ESP32-P4 Hydra

Adafruit Metro ESP32-P4 Hydra · intermediaire · Apprenez à configurer le bus I2C et à lire les données d'un capteur via les broches GPIO de la carte Hydra.

Objectifs

Ce tutoriel vous guide dans l'utilisation des interfaces de communication série, spécifiquement le bus I2C, sur la carte Adafruit Metro ESP32-P4 Hydra. Contrairement aux microcontrôleurs classiques, le P4 offre une grande flexibilité dans l'assignation des broches. Vous apprendrez à activer le périphérique I2C, à connecter un capteur standard (comme un BME280 ou un écran OLED) via le connecteur STEMMA QT ou les broches GPIO, et à interpréter les données brutes. L'objectif est de comprendre la gestion des registres et la communication maître-esclave sur cette architecture RISC-V haute performance.

Matériel nécessaire

Étapes

  1. Installation de l'environnement : Assurez-vous que le support ESP32-P4 est bien installé dans votre IDE. Sélectionnez le port série correspondant à la carte.
  2. Câblage physique : Branchez le capteur sur le connecteur STEMMA QT (VCC, GND, SDA, SCL) ou utilisez les broches GPIO dédiées à l'I2C par défaut. Vérifiez la tension d'alimentation (3,3 V).
  3. Initialisation du code : Dans votre programme, incluez les bibliothèques nécessaires (ex: Wire.h). Définissez les broches SDA et SCL si vous n'utilisez pas les valeurs par défaut.
  4. Configuration du bus : Appelez la fonction Wire.begin() pour initialiser le bus I2C. Le P4 gère les interruptions matérielles pour optimiser les transferts.
  5. Lecture des données : Utilisez Wire.requestFrom() pour demander des données au capteur. Lisez les octets reçus dans une boucle.
  6. Traitement : Convertissez les octets bruts en valeurs physiques (température, humidité) selon la datasheet du capteur.

Vérification

Ouvrez le moniteur série à une vitesse de 115200 bauds. Vous devriez voir les valeurs du capteur s'afficher régulièrement. Si aucune donnée n'apparaît, vérifiez le câblage (SDA/SCL inversés) et l'adresse I2C du périphérique.

Pour aller plus loin

Explorez l'utilisation du DMA (Direct Memory Access) pour transférer des données I2C sans solliciter le CPU principal, libérant ainsi les cœurs RISC-V pour des tâches de calcul intensif ou le traitement vidéo via MIPI.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels