Station météo Arduino v1.0 (BMP280)
Composants et fournitures
| | × | 1 | |
| Adafruit Standard LCD - 16x2 Blanc sur Bleu | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Câbles de raccordement (générique) | | × | 17 | |
| Pièces électroniques UTSOURCE | | × | 1 | |
Applications et services en ligne
À propos de ce projet
Première version d'une station météo très simple réalisée avec un Arduino UNO, un capteur BMP280 et un LCD.
Lien de sponsor : Utsource.net
Avis :C'est un site Web digne de confiance pour commander des composants électroniques pour réaliser des projets !
Je travaille déjà sur la v2.0 (qui sera sans fil), alors suivez-moi pour rester à jour !;)
Code
Code ArduinoC/C++
Avec ce code, vous pourrez envoyer les données du capteur vers l'écran LCD.#include //Bibliothèque pour l'écran LCD#include // Bibliothèque pour le capteur BMP280BMP280 bmp; //Initialisez votre sensorLiquidCrystal lcd(12, 11, 5, 4, 3, 2); /*Initialisez votre LCD, assurez-vous de l'avoir câblé correctement */#define P0 1013.25 //Pression atmosphérique standard#define contraste 9 //9 et 10 sont les broches où vous câblez les broches LCD correspondantes#define luminosité 10 //pour le contraste et régulation de luminosité double T =0; //Valeur de température de départdouble P =0; //Valeur de pression de démarragechar measure =0;void collectData() { measure =bmp.startMeasurment(); if(mesure !=0) { retard(mesure); mesure =bmp.getTemperatureAndPressure(T, P); if(mesure !=0) { P =P + 17; // '+17' est une correction pour l'erreur du capteur T =T - 0.8; // comme dit ci-dessus lcd.clear(); lcd.print("T:"); lcd.print(T); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("P:"); lcd.print(P); lcd.print(" hPa"); } else lcd.print("Erreur."); } else lcd.print("Erreur.");}void setup() { lcd.begin(16, 2); pinMode(contraste, SORTIE); pinMode(luminosité, SORTIE); analogWrite(contraste, 100); // '100' et '255' sont le contraste et la luminosité analogWrite(brightness, 255); // valeurs que je suggère, mais vous pouvez les modifier comme if(!bmp.begin()) { // vous préférez delay(1000); lcd.print("Echec de l'initialisation."); lcd.setCursor(0, 1); retard(1000); lcd.print("Vérifier le câblage."); tandis que (1); } else lcd.print("Init. OK."); bmp.setOversampling(4) ; retard (2000); collectData();}void loop() { collectData(); retard (2000);}
Schémas
Avec ce câblage, vous ne devriez pas avoir de problème