Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

BMP280 :mesure de la température, de la pression et de l'altitude

Composants et fournitures

Arduino UNO
× 1
Adafruit BMP280
× 1
Adafruit OLED 128x32 i2c
× 1

À propos de ce projet

Bonjour et bienvenue dans ce tutoriel où j'utilise le BMP280 pour mesurer la température, la pression et aussi l'altitude, à l'aide d'une carte Arduino UNO et d'un écran OLED. Voici quelques-uns des paramètres clés du BMP280 de sa fiche technique :

Donc, pour ce projet, nous allons utiliser le module pour mesurer toutes ces choses dans les systèmes métriques et impériaux comme d'habitude, je ne suis pas sûr des unités mais vous pouvez toujours les convertir via le code, et voici les composants que nous allons utiliser :

Test et dépannage :

Après avoir câblé votre module, il est préférable de tester le code de l'exemple de bibliothèque son nom est "BMP280test", si votre module n'est pas détecté comme dans l'image ci-dessous :

Vous pouvez exécuter le code du scanner i²c (mais débrancher tout autre appareil i²c comme un écran LCD ou OLED), et si votre module n'est pas cassé ou n'a pas de problème de soudure, vous verrez que l'appareil est détecté par le scanner :

Notez maintenant cette adresse et accédez au fichier c++ de votre bibliothèque, la bibliothèque est généralement installée dans le dossier « Documents/Arduino/Libraries » :

Et ouvrez-le avec un éditeur approprié, j'utilise Dev c++

Allez ensuite à la ligne « 41 » et _i2caddr changez le « a » avec l'adresse que vous avez trouvée sur le moniteur série :

Enregistrez tout et fermez, la bibliothèque est destinée à fonctionner avec des modules qui ont 0x77 comme adresse i²c mais celui que j'utilise a 0x76.

Exécutez à nouveau le code de test :

Images de test :

J'espère que cela fonctionnera pour vous, et si vous rencontrez un problème, laissez-le dans un commentaire.

Code

  • bmp280_Serial_metric.ino
  • bmp280_Serial_Imperial.ino
  • bmp280_OLED_m.ino
  • bmp280_OLED_US.ino
bmp280_Serial_metric.inoArduino
/* Ce code est à utiliser avec Adafruit BMP280 (métrique) * Il mesure à la fois la température et la pression et les affiche sur le moniteur série avec l'altitude * C'est une version modifiée de l'exemple de code Adafruit * Référez-vous à www.surtrtech Chaîne Youtube .com ou SurtrTech */#include Adafruit_BMP280 bmp ; // I2C Interfacevoid setup() { Serial.begin (9600); Serial.println(F("Test BMP280")); if (!bmp.begin()) { Serial.println(F("Impossible de trouver un capteur BMP280 valide, vérifiez le câblage !")); tandis que (1) ; } /* Paramètres par défaut de la fiche technique. */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Mode de fonctionnement. */ Adafruit_BMP280::SAMPLING_X2, /* Suréchantillonnage temp. */ Adafruit_BMP280::SAMPLING_X16, /* Suréchantillonnage pression */ Adafruit_BMP280::*FILTER_X16, */ Adafruit_BMP280::STANDBY_MS_500); /* Temps d'attente. */}void loop() { Serial.print(F("Temperature =")); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print(F("Pression =")); Serial.print(bmp.readPressure()/100); //affichage de la pression en hPa, vous pouvez changer l'unité Serial.println(" hPa"); Serial.print(F("Altitude approximative =")); Serial.print(bmp.readAltitude(1019.66)); //Le "1019.66" est la pression (hPa) au niveau de la mer en jour dans votre région Serial.println(" m"); //Si vous ne le connaissez pas, modifiez-le jusqu'à ce que vous obteniez votre altitude actuelle Serial.println(); retard (2000);}
bmp280_Serial_Imperial.inoArduino
/* Ce code est à utiliser avec Adafruit BMP280 (Imperial) * Il mesure à la fois la température et la pression et les affiche sur le moniteur série avec l'altitude * C'est une version modifiée de l'exemple de code Adafruit * Référez-vous à www.surtrtech Chaîne Youtube .com ou SurtrTech */#include Adafruit_BMP280 bmp ; // I2Cvoid setup() { Serial.begin (9600); Serial.println(F("Test BMP280")); if (!bmp.begin()) { Serial.println(F("Impossible de trouver un capteur BMP280 valide, vérifiez le câblage !")); tandis que (1) ; } /* Paramètres par défaut de la fiche technique. */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Mode de fonctionnement. */ Adafruit_BMP280::SAMPLING_X2, /* Suréchantillonnage temp. */ Adafruit_BMP280::SAMPLING_X16, /* Suréchantillonnage pression */ Adafruit_BMP280::*FILTER_X16, */ Adafruit_BMP280::STANDBY_MS_500); /* Temps d'attente. */}boucle vide() { float f =bmp.readTemperature()*9/5 + 32; //Conversion de C en F Serial.print(F("Temperature =")); Serial.print(f); Serial.println(" *F"); float P =bmp.readPressure()/3386.39; //affichage de la pression en pouces de mercure, vous pouvez changer l'unité Serial.print(F("Pressure =")); Serial.print(P); Serial.println(" inHg"); float A =bmp.readAltitude(1019.66)*3.28084; //Le "1019.66" est la pression (hPa) au niveau de la mer en jour dans votre région Serial.print(F("Approx altitude =")); //Si vous ne le connaissez pas, modifiez-le jusqu'à ce que vous obteniez votre altitude actuelle Serial.print(A); Serial.println(" ft"); Serial.println(); retard (2000);}
bmp280_OLED_m.inoArduino
/* Ce code est à utiliser avec Adafruit BMP280 et l'écran OLED (métrique) * Il mesure à la fois la température et la pression et les affiche sur l'écran OLED avec l'altitude * C'est une version modifiée de l'exemple de code Adafruit * Référez-vous à www.surtrtech.com ou chaîne Youtube SurtrTech */#include  //Bibliothèques pour l'OLED et BMP280#include #include #define SCREEN_WIDTH 128 // Largeur d'affichage OLED, en pixels#define SCREEN_HEIGHT 32 // Hauteur d'affichage OLED, en pixels#define OLED_RESET -1 // Réinitialiser la broche # (ou -1 si le partage de la broche de réinitialisation Arduino) Affichage Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Déclaration du nom d'affichage (display)Adafruit_BMP280 bmp;void setup() { bmp.begin(); //Démarrer le bmp display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Démarrer l'affichage OLED display.clearDisplay(); display.display(); display.setTextColor(BLANC); display.setTextSize(1); display.print("SurtrTech"); //Afficher le nom, vous pouvez le supprimer ou le remplacer display.setCursor(32,12); display.setTextSize(2); display.println("BMP280"); display.display(); delay(2000);}boucle vide() { display.clearDisplay(); float T =bmp.readTemperature(); //Lire la température en C float P =bmp.readPressure()/100; //Lecture de la pression en Pa et conversion en hPa float A =bmp.readAltitude(1019.66); //Calcul de l'altitude, le "1019.66" est la pression en (hPa) au niveau de la mer le jour dans votre région //Si vous ne la connaissez pas, modifiez-la simplement jusqu'à ce que vous obteniez l'altitude de votre lieu display.setCursor(0 ,0) ; // Affichage Oled, jouant simplement avec la taille du texte et le curseur pour obtenir l'affichage souhaité display.setTextColor(WHITE); display.setTextSize(2); display.print("Temp"); display.setCursor(0,18); display.print(T,1) ; display.setCursor(50,17); display.setTextSize(1); display.print("C"); display.setTextSize(1); display.setCursor(65,0); display.print("Prés"); display.setCursor(65,10); display.print(P); display.setCursor(110,10); display.print("hPa"); display.setCursor(65,25); display.print("Alt"); display.setCursor(90,25); display.print(A,0); display.setCursor(110,25); display.print("m"); display.display(); retard (2000);}
bmp280_OLED_US.inoArduino
/* Ce code est à utiliser avec Adafruit BMP280 et l'écran OLED (Imperial) * Il mesure à la fois la température et la pression et les affiche sur l'écran OLED avec l'altitude * C'est une version modifiée de l'exemple de code Adafruit * Référez-vous à www.surtrtech.com ou chaîne Youtube SurtrTech */ #include  //Bibliothèques pour l'OLED et le BMP280#include #include #define SCREEN_WIDTH 128 // Largeur d'affichage OLED, en pixels#define SCREEN_HEIGHT 32 // Hauteur d'affichage OLED, en pixels#define OLED_RESET -1 // Réinitialiser la broche # (ou -1 si le partage de la broche de réinitialisation Arduino) Affichage Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Déclaration du nom d'affichage (display)Adafruit_BMP280 bmp;void setup() { bmp.begin(); //Démarrer le bmp display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Démarrer l'affichage OLED display.clearDisplay(); display.display(); display.setTextColor(BLANC); display.setTextSize(1); display.print("SurtrTech"); //Afficher le nom, vous pouvez le supprimer ou le remplacer display.setCursor(32,12); display.setTextSize(2); display.println("BMP280"); display.display(); delay(2000);}boucle vide() { display.clearDisplay(); float T =bmp.readTemperature()*9/5 + 32 ; //Lecture de la température en C et conversion en F float P =bmp.readPressure()/3386.39; //Lire la pression en Pa et conversion en pouces de mercure float A =bmp.readAltitude(1019.66)*3.28084; //Calcul de l'altitude, le "1019.66" est la pression en (hPa) au niveau de la mer le jour dans votre région //Si vous ne la connaissez pas, modifiez-la simplement jusqu'à ce que vous obteniez l'altitude de votre lieu display.setCursor(0 ,0) ; // Affichage Oled, jouant simplement avec la taille du texte et le curseur pour obtenir l'affichage souhaité display.setTextColor(WHITE); display.setTextSize(2); display.print("Temp"); display.setCursor(0,18); display.print(T,1) ; display.setCursor(50,17); display.setTextSize(1); display.print("F"); display.setTextSize(1); display.setCursor(65,0); display.print("Prés"); display.setCursor(65,10); display.print(P); display.setCursor(100,10) ; display.print("inHg"); display.setCursor(65,25); display.print("Alt"); display.setCursor(90,25); display.print(A,0); display.setCursor(110,25); display.print("ft"); display.display(); retard (2000);}
BMP280_Adafruit_library
Vous voudrez peut-être changer les choses comme dans le tutorielhttps://github.com/adafruit/Adafruit_BMP280_Library
Bibliothèque Adafruit GFX
https://github.com/adafruit/Adafruit-GFX-Library
Adafruit SSD1306
https://github.com/adafruit/Adafruit_SSD1306

Schémas

Les deux modules utilisent l'interface i²c, SDA/SCL avec A4 et A5, le BMP280 est alimenté en 5v tandis que l'OLED utilise le 3.3v.

Processus de fabrication

  1. Contrôle d'accès avec QR, RFID et vérification de la température
  2. Mesure des températures avec un capteur DS18B20 1 fil et Raspberry Pi
  3. Capteur de température Python et Raspberry Pi
  4. Température et humidité faciles sur Raspberry Pi
  5. DIY :surveillance et régulation de la température pour HomeBrew
  6. Raspberry Pi lisant la température et la pression BMP085
  7. Mesure de la température pour les projets en laboratoire et scientifiques
  8. Capteur de température et de luminosité Raspberry Pi
  9. Appareil de mesure du débit d'air sous pression avec capteur analogique