You are currently viewing Pression et température en Bluetooth avec Arduino
Pression et température en Bluetooth avec Arduino

Pression et température en Bluetooth avec Arduino

Ce projet utilise un petit montage Arduino pour mesurer la température, la pression et envoyer ces données à son smartphone pour qui puisse les afficher sous forme graphique. Nous terminerons par un exemple avec la mesure de la température d’un congélateur.

Matériel utilisé

Vous trouverez l’ensemble des produits nécessaires à la réalisation de ce projet directement sur la boutique.

Carte de développement ESP32-DevKitC-32U Câbles de connexion Arduino Platine d'essai 400 points
ESP32-DevKitC-32U Câbles mâle/mâle 2 x Plaque d’essai

Capteur de température et de pression BMP280

Capteur BMP280

et pour une plus grande facilité d’utilisation, je vous recommande également :

Présentation du chargeur USB-C de batterie lithium-ion 18650 avec contrôleur TP4056 Présentation du support de batterie lithium-ion 18650

Présentation de la batterie lithium-ion 18650

Chargeur de batterie lithium-ion Support de batterie lithium-ion Batterie lithium-ion

Montage

Le capteur BMP280 mesure la pression atmosphérique et la température ambiante sous forme numérique étalonnée. Il peut être piloté par interface SPI ou I2C au choix. Ce capteur est pré-calibré, aucun composant supplémentaire n’est requis pour l’étalonnage ou le fonctionnement.

ESP32-DevKit et platine d’essais (Breadboard)

Si vous n’arrivez pas à insérer l’ESP32-DevKit C sur votre platine d’essais, vous trouverez mon astuce à l’article : Enregistrer sa voix au format WAV avec Arduino et le SPH0645

Le câblage du BMP280 et de l’ESP32 par liaison SPI

L’une des deux interfaces proposées par le capteur BMP280 est la liaison SPI (Serial Peripheral Interface) avec 4 signaux logiques pour l’échange de données : SCL, SDO, SDA et CSB.

Pour l’alimentation du BMP280:

  • Fil rouge, la broche 3V3 est à relier au 3V3 de l’ESP32.
  • Fil noir, la broche GND est à brancher à la masse (GND) de l’ESP32.

Pour les échanges d’informations entre le capteur BMP280 et l’ESP32 :

  • Fil marron, la broche CSB (Chip Select Bar) du capteur à la sortie 5 (SS de l’interface SPI) de l’ESP32. C’est pour la sélection du destinataire.
  • Fil vert, la broche SDA (Serial Data Line) à la sortie 23 (MOSI de l’interface SPI) de l’ESP32. Ce sont les données envoyées par l’ESP32 au BMP280.
  • Fil jaune, la broche SCL (Serial Clock Line) à la sortie 18 (SCK de l’interface SPI) de l’ESP32. C’est pour le signal de synchronisation.
  • Fil blanc, la broche SDO (Serial Data Output) à l‘entrée 19 (MISO de l’interface SPI) de l’ESP32. Ce sont les données que l’ESP32 reçoit du capteur BMP280.

Le câblage du BMP280 et de l’ESP32 par liaison I2C

L’interface I2C (Inter-Integrated Circuit), la deuxième proposée par ce capteur, est plus simple à câbler puisque seulement 2 fils sont nécessaires pour l’échange des données : broches SCL et SDA.

Pour l’alimentation du BMP280:

  • Fil rouge, la broche 3V3 est à relier au 3V3 de l’ESP32.
  • Fil noir, la broche GND est à brancher à la masse (GND) de l’ESP32.

Pour les échanges d’informations entre le capteur BMP280 et l’ESP32 :

  • Fil vert, la broche de données SDA (Serial Data Line) à la broche 21 de l’ESP32. Cette liaison est utilisée pour l’envoi de données dans les 2 sens par l’ESP32 et le BMP280.
  • Fil jaune, la broche SCL (Serial Clock Line) à la sortie 22 de l’ESP32. C’est pour le signal de synchronisation.

Le câblage de la batterie lithium-ion et son chargeur à l’ESP32

L’utilisation d’une batterie lithium-ion permet d’obtenir un module de température utilisable sans câble d’alimentation. La recharge de la batterie s’effectue par le port USB C de la carte électronique.

Les connexions sont les suivantes :

  • Fil orange, la broche B+ du chargeur à la borne + de la batterie 18650.
  • Fil gris, la broche B- du chargeur à la borne de la batterie 18650.
  • Fil rouge, la broche OUT+ du chargeur à la broche 3V3 de l’ESP32.
  • Fil noir, la broche OUT- du chargeur à la broche GND de l’ESP32.

Décomposition du tutoriel

Ce projet est décomposé en 2 étapes :

  • L’utilisation du capteur BMP280 et ses 2 interfaces de connexions (page 2).
  • L’installation d’une application graphique sur son smartphone et la communication Bluetooth (page 3).

Commençons par la gestion du capteur de température et de pression à la page suivante.

S’abonner
Notification pour
guest
6 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Thomas Puthod
Thomas Puthod
1 mois il y a

Tuto, montage et explications, « tropbien ».
Ce petit projet est ma première utilisation de l’ESP32. Je l’ai trouvé très formateur.
Le projet que j’ai en arrière plan est de réaliser des mesures de pression (athmosphérique) de l’air dans un compartiment moteur d’un avion afin d’améliorer le système de ventilation et de refroidissement.
Pour ce faire j’ai besoin de 4 ou 5 points de mesure et d’un transfert en bluetooth vers un téléphone. Le montage tropratik est un super point de départ.
Je suis ensuite passé à 2 capteurs BMP280 en cherchant la liaison SPI. j’ai tout simplement utilisé le code qui est en exemple dans la librairie BMP280 « BMP280_SPI_Normal_Multiple » en utilisant les broche 5 et 17 pour le CSB, mais cela fonctione de façon aléatoire (un capteur, ou l’autre, mais pas les deux…).
Si vous avez des idées ou un peu d’expérience sur le sujet je suis intéréssé par vos avis.
Merci.

Thomas Puthod
Thomas Puthod
Répondre à  Nikko
1 mois il y a

Bonsoir Nikko,
Effectivement cela fonctionne bien, j’utilisais une vielle breadboar et j’avais des faux contact…
J’ai ajouté au code une moyenne glissante et un réglage de l’offset des capteurs, ça marche bien.

J’ai besoin de 5 capteurs en tout, si j’ai bien compris, je dois utiliser deux liaisons SPI, VSPI et HSPI?
C’est la que je bloque de nouveau…
J’ai essayé le code suivant pour faire un test avec le HSPI avec le câblage (SCK 14, MOSI 13, MISO 12, SS 5), Si tu vois ce qui clôche???
Merci

Thomas

Code essai HSPI:

/////////////////////////////////////////////////////////////////////////////////////
// BMP280_DEV – ESP32 HSPI Communications, Default Configuration, Normal Conversion
//////////////////////////////////////////////////////////////////////////////////////

#include <BMP280_DEV.h>                            // Include the BMP280_DEV.h library

float temperature, pressure, altitude;            // Create the temperature, pressure and altitude variables
//BMP280_DEV bmp280(5);                            // Create BMP280_DEV object and set-up for VSPI operation, SCK 18, MOSI 23, MISO 19, SS 5
SPIClass SPI1(HSPI);                              // Create (instantiate) the SPI1 object for HSPI operation
BMP280_DEV bmp280(5, HSPI, SPI1);                // Create BMP280_DEV object and set-up for HSPI operation, SCK 14, MOSI 13, MISO 12, SS 5

void setup()
{
  Serial.begin(115200);                           // Initialise the serial port
  bmp280.begin();                                 // Default initialisation, place the BMP280 into SLEEP_MODE
  bmp280.setTimeStandby(TIME_STANDBY_1000MS);     // Set the standby time to 1 second (1000ms)
  bmp280.startNormalConversion();                 // Start NORMAL continuous conversion
 
  xTaskCreatePinnedToCore(                        // Kick-off « TaskOne » pinned to core 1
    taskOne,
    « TaskOne »,
    10000,
    NULL,
    1,
    NULL,
    1);
}

void taskOne(void* parameter)
{
  while(true)
  {
    if (bmp280.getMeasurements(temperature, pressure, altitude))    // Check if the measurement is complete
    {
      Serial.print(temperature);                    // Display the results    
      Serial.print(F(« *C   « ));
      Serial.print(pressure);    
      Serial.print(F(« hPa   « ));
      Serial.print(altitude);
      Serial.println(F(« m »));  
    }
  }
}

void loop() { delay(1000); }                        // Add 1 second delay

.

Thomas Puthod
Thomas Puthod
Répondre à  Nikko
1 mois il y a

Bonsoir Nikko,
Effectivement je n’ai pas essayé cela. Je te tiens au courant.
Merci.

tputhod
tputhod
Répondre à  Thomas Puthod
1 mois il y a

Bonsoir Nikko,
merci pour ton aide.
Tout fonctionne parfaitement

Screenshot_20251210_222729_Bluetooth-Electronics