Code du jour avec GPS et capteur de température
Révision datée du 5 avril 2024 à 10:31 par 192.168.2.1 (discussion)
Utilisé pour tester une installation avec IDE Arduino et un ESP32, sur lequel sont connectés un GPS et un capteur de température.
#include <TinyGPS.h> #include <HardwareSerial.h> #include "DHT.h" #include <Adafruit_Sensor.h> const int RXPin = 16; // Broche RX de l'ESP32 connectée au TX du module GPS const int TXPin = 17; // Broche TX de l'ESP32 connectée au RX du module GPS const int BAUDrate = 9600; // Vitesse de bauds du module GPS #define LED_PIN 2 // Définir le numéro de broche pour la LED #define DHTPIN22 4 DHT dht22(DHTPIN22, DHT22); //if using DHT22 must set DHT22 // Création d'une instance de l'objet TinyGPS TinyGPS gps; HardwareSerial gpsSerial(2); // UART2 sur l'ESP32 void setup() { //initialize DHT dht22.begin(); pinMode(LED_PIN, OUTPUT); // Configurer la broche de la LED en mode sortie Serial.begin(19200); // Initialisation de la communication série pour le moniteur série // Message au démarrage Serial.println("Programme de lecture GPS démarré."); gpsSerial.begin(BAUDrate, SERIAL_8N1, RXPin, TXPin); // Initialisation de la communication série pour le module GPS } void loop() { // put your main code here, to run repeatedly: //DHT sensor read data float humidity22 = dht22.readHumidity(); float temperature22 = dht22.readTemperature(); static int loopCounter = 0; // Déclaration d'une variable compteur de boucle //Serial.print("Boucle numéro : "); //Serial.println(loopCounter); Serial.print("."); //delay(1000); // Attendre 1 seconde if (gps.encode(gpsSerial.read())) { // Si des données valides sont disponibles, récupérez la position float latitude, longitude; gps.f_get_position(&latitude, &longitude); delay(10000); // Attendre 10 seconde // Vérifiez si la position est valide //if (latitude != TinyGPS::GPS_INVALID_F_ANGLE && longitude != TinyGPS::GPS_INVALID_F_ANGLE) { // Lire les données de localisation Serial.println(); Serial.print("Latitude : "); Serial.println(latitude, 6); Serial.print("Longitude : "); Serial.println(longitude, 6); Serial.print("https://www.google.com/maps?q="); Serial.print(latitude, 6); Serial.print(","); Serial.println(longitude, 6); // Récupérer le nombre de satellites Serial.print("Nombre de satellites : "); Serial.println(gps.satellites()); // Récupérer l'altitude Serial.print("Altitude : "); Serial.println(gps.f_altitude()); // Récupérer la vitesse Serial.print("Vitesse : "); Serial.println(gps.f_speed_kmph()); // Récupérer la direction Serial.print("Direction : "); Serial.println(gps.f_course()); //print result to serial Serial.print("Humidity 22 = "); Serial.print(humidity22, 2); Serial.println(" %"); Serial.print("Temperature 22 = "); Serial.print(temperature22, 2); Serial.println(" °C"); digitalWrite(LED_PIN, HIGH); // Allumer la LED delay(100); // Attendre 1 seconde digitalWrite(LED_PIN, LOW); // Éteindre la LED //} else { // Serial.println("Position GPS non valide."); //} } else { // Aucune donnée GPS disponible //Serial.println("Aucune donnée GPS disponible."); } loopCounter++; }