IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Probabilité de pluie


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Par défaut Probabilité de pluie
    Bonjour à tous,

    Depuis quelques temps , je souhaite pouvoir détecter la probabilité de risque de pluie avec un Arduino ( localement car je ne souhaite pas interroger les sites en ligne à cause du quota)
    Les détecteurs actuels sont peu ou pas fiables car l'idéal n'est pas de tester la présence de l'eau ( c'est trop tard ) mais bien la proba lité qu'elle arrive

    Ce faisant , il pourrait exister une solution en mesurant de façon périodique la température et l'humidité extérieures et ainsi me donner quelques solutions

    - soit par un modèle d'approche "par apprentissage automatique"
    je mesure et je stocke les données T° et RH%
    puis j'utilise un "model" pour en déterminer la probabilité mais là je n'ai pas le type de modele

    -soit je détermine alors des seuils
    je mesure T° et RH% et suivant des seuils tels que :
    - Si humidité > 90% et température < 20°C, forte chance de pluie. (vPluie = 1 )
    - Si humidité < 60%, pluie peu probable. (vPluie = 0)

    j'expérimente çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #include <DHT.h>
    #include <math.h>
     
    // Taille de l'écran OLED
    #define SCREEN_WIDTH 128
    #define SCREEN_HEIGHT 64
     
    // Initialisation de l'écran OLED (adresse 0x3C)
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
     
    // Capteur DHT
    #define DHTPIN 2
    #define DHTTYPE DHT22
    DHT dht(DHTPIN, DHTTYPE);
     
    // Coefficients issus du modèle de régression logistique
    float a = -0.34513;
    float b = 0.09128;
    float c = -1.43782;
     
    void setup() {
      Serial.begin(9600);
      dht.begin();
     
      // Initialisation de l'écran OLED
      if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println(F("Écran SSD1306 non détecté"));
        for (;;); // Boucle infinie en cas d'erreur
      }
     
      display.clearDisplay();
      display.setTextSize(1);
      display.setTextColor(SSD1306_WHITE);
      display.setCursor(0, 0);
      display.println("Station Meteo");
      display.display();
      delay(2000);
    }
     
    void loop() {
      float temp = dht.readTemperature();
      float humid = dht.readHumidity();
     
      if (isnan(temp) || isnan(humid)) {
        display.clearDisplay();
        display.setCursor(0, 0);
        display.println("Erreur capteur!");
        display.display();
        delay(2000);
        return;
      }
     
      // Calcul de la probabilité de pluie
      float z = a * temp + b * humid + c;
      float proba = 1.0 / (1.0 + exp(-z));  // <=====================
     
      // Affichage sur OLED
      display.clearDisplay();
      display.setCursor(0, 0);
      display.setTextSize(1);
     
      display.print("Temp: ");
      display.print(temp, 1);
      display.println(" C");
     
      display.print("Humid: ");
      display.print(humid, 0);
      display.println(" %");
     
      display.print("Pluie: ");
      display.print(proba * 100, 0);
      display.println(" %");
     
      // Message en fonction du seuil
      display.setCursor(0, 48);
      display.setTextSize(1);
      if (proba >= 0.5) {
        display.println("Pluie probable");
      } else {
        display.println("Pluie peu probable");
      }
     
      display.display();
     
      Serial.print("Temp: ");
      Serial.print(temp);
      Serial.print(" | Humid: ");
      Serial.print(humid);
      Serial.print(" | Proba pluie: ");
      Serial.println(proba, 2);
     
      delay(5000);
    }


    Je voudrais donc simplement ici avoir votre avis ou peut-être avez-vous d'autres solutions


    merci bien
    pascal

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Bonjour,
    Citation Envoyé par cobra38 Voir le message
    Ce faisant , il pourrait exister une solution en mesurant de façon périodique la température et l'humidité extérieures et ainsi me donner quelques solutions.
    Sans être météorologue, il manque :
    - La mesure de pression atmosphérique car quand elle baisse il pleut souvent. https://meteofrance.com/actualites-e...temp%C3%A9ries.
    - Tu peux aussi mesurer la luminosité pour tenter de voir le ciel se couvrir (prédiction de court terme car on mesure localement).
    - Le vent qui monte est très souvent annonciateur de pluie.

    Un modèle d'apprentissage me paraît une très bonne idée ! Peut être complexe à mettre en oeuvre ? Je ne l'ai jamais fait personnellement.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Par défaut
    Bonjour Vincent

    - La mesure de pression atmosphérique car quand elle baisse il pleut souvent. https://meteofrance.com/actualites-e...temp%C3%A9ries.
    - Tu peux aussi mesurer la luminosité pour tenter de voir le ciel se couvrir (prédiction de court terme car on mesure localement).
    - Le vent qui monte est très souvent annonciateur de pluie.
    Oui tu as raison j'ai oublié d'y adjoindre la pression atmosphérique mais je devrais alors changer de capteur (BME680)
    mais je ne vois surtout pas comment l’intégrer dans la formule de proba

    d'ailleurs , j'ai fini par comprendre que la probabilité de pluie tenait compte de la conscience du météorologue (?) et de la zone
    pas forcement de données compilées étrange...

  4. #4
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 791
    Par défaut
    Hello,

    Le modèle Alaro utilisé par l'IRM (météo Belgique) a mis des années (si pas plus d'une décennie) pour être à peu près fiable (c'est en constante évolution). Alors, en amateur (et je ne dénigre rien ni personne), je pense qu'espérer pouvoir prévoir qu'il va pleuvoir, c'est quelque peu "au petit bonheur la chance".
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Par défaut
    Salut edgarjacobs

    Le modèle Alaro utilisé par l'IRM (météo Belgique) a mis des années (si pas plus d'une décennie) pour être à peu près fiable (c'est en constante évolution). Alors, en amateur (et je ne dénigre rien ni personne), je pense qu'espérer pouvoir prévoir qu'il va pleuvoir, c'est quelque peu "au petit bonheur la chance".
    oh rassures-toi , je n'ai pas cette prétention, je voulais juste trouver une autre approche que celle d'un capteur ou d'une API sur "openweathermap" que je sollicite beaucoup trop à mon goût ...

  6. #6
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut
    Bonjour,

    En local cela doit être plus facile d'établir un modèle qu'avoir un modèle général paramétrable localement. Bon déjà, à pile ou face nous avons déjà 50% c'est déjà pas si mal

    La prise en compte de l'électricité statique est assez simple pour détecter les orages à venir (détection > 10 km) mais il y a des orages sans pluie (assez rare) et des pluies sans orage (assez fréquent). J'aurais tendance à prendre les différents éléments déjà cités et les faire contribuer à un évaluateur global avec, dans un premier temps, une logique linéaire et non contradictoire (certaines valeurs de capteurs peuvent influer sur l'interprétation d'autres capteurs). Donc une grosse somme pondérée comparée à un seuil.

    Une détection d'eau serait un plus pour éviter que le bidule soit toujours dans le "non pluie" alors qu'il pleut à verse

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. Probabilité
    Par laclac dans le forum Probabilités
    Réponses: 3
    Dernier message: 12/03/2006, 21h45
  2. algorithme pour calcul de probabilité
    Par filsdugrand dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 14/12/2005, 14h11
  3. [SQL] : lois de probabilité
    Par PpPool dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/11/2005, 15h26
  4. [SQL] : lois de probabilité
    Par PpPool dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2005, 12h31
  5. Démineur, probabilité d'avoir une mine ?
    Par KORTA dans le forum Probabilités
    Réponses: 28
    Dernier message: 25/03/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo