Différences entre les versions de « Code du jour avec GPS et capteur de température »

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche
 
Ligne 1 : Ligne 1 :
Utilisé pour tester une installation avec IDE Arduino et un ESP32, sur lequel est connecté un GPS et un capteur de température.
Utilisé pour tester une installation avec IDE Arduino et un ESP32, sur lequel sont connectés un GPS et un capteur de température.


<pre>
<pre>

Version actuelle datée du 5 avril 2024 à 11:31

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++;
}