Station météo à base de ESP8266 V2

Je vous présente aujourd’hui la version 2 de ma Station Météo Personnel réalisé autour d’un ESP8266.

24102015-20151024_135536

Le montage est composé d’un ESP8266 avec plateforme de développement NodeMCU V2. Et la Programmation s’effectuera avec l’IDE de l’Arduino (cliquez ici pour suivre ce tuto).

nodemcuv2NodeMCU_Pinout

Les parties mécaniques de la station, Anémomètre, Pluviomètre et le boitier Thermo/Hygromètre ont été récupéré sur une station WMR200.

Le fonctionnement de Anémomètre est conservé, Un tour des godets active un interrupteur magnétique ILS ( 2.5km/h par commutation toute les seconde). La direction est obtenu à l’aide de 8 interrupteur magnétique ILS.

La partie Thermo/Hygromètre contiens le baromètre (BME280) avec le ESP8266 NodeMCU.

Le Chargeur dans le petit boitier ou il y avait le panneau solaire et la Batterie dans la petite boite de dérivation

22102015-20151022_205543 22102015-20151022_021044 22102015-20151022_002907 22102015-20151022_001328 21102015-20151021_210716

Le Pluviomètre est quant à lui composé d’un simple un interrupteur magnétique ILS, Chaque 0.8mm les godets bascule et active l’ILS.

22102015-20151022_222405

Voici le schéma de connexion des divers capteur:

ESP8266-PWS-V2

Vous pouvez télécharger le sketch et librairies ici ou le visualiser ici.

Pour consulter les données de la station vous pouvez cliquez ici.

Pour marque-pages : Permaliens.

7 réponses à Station météo à base de ESP8266 V2

  1. Bruce dit :

    Good work, Jordan – I am working on a similar project, and your code will help me now I have the hardware!

    The only difference is that I am going to use contactless sensors for speed and direction , as I have found that contact bounces can be a real problem – there are Hall Effect sensors that work well, and a cheap I2C magnetic compass sensor for the wind direction.

    thank you for posting your work, so others like me can benefit from it.

    • Jordan BLANCHARD dit :

      Debouce is a real problem, i use that in my code to reduce that:
      void rpm() {
      long thisTime=micros()-wind_last;
      wind_last=micros();
      if(thisTime>500)
      {

      pulseswind++;
      pulsesgust++;
      if (debug) {
      Serial.print(« Nb wind turn: « );
      Serial.println(pulseswind);
      }
      }
      }
      If bounce time is inferior than 500us i don’t take care.

      Using Hal sensor and compass it’s a good idea, i think i will use that for an other weather station.

  2. Quentin dit :

    Salut,

    Je suis en train de monter une station météo à l’aide de l’ESP8266 et du BME280.
    J’ai une erreur importante sur la température (de l’ordre de 4°), as-tu eu le même problème ?

    D’où vient ton BME280 ?

    Merci !!! 🙂

    • Jordan BLANCHARD dit :

      Salut!

      Dans mon code j’ai ajouter ceci:
      int temp_offset = -4; // Temp. Offset
      int humi_offset = 10; // Humidity Offset
      Effectivement pour moi j’avais une légère différence, que j’ai combler par un offset, vérifie si pour toi cela est nécessaire.

      J’ai eu mon BME280 chez adafruit.

  3. Ping :Short cuts | organic~monkey~motion

  4. manu k dit :

    I want to build this as my town has No PWS
    I have made NodeMCU small weather station and its working but only able to publish to thingspeak

    Can this be made with BMP180 +DHT11 and skip the Anemometer ?

    please suggest.

    • Jordan BLANCHARD dit :

      Yes you can, only thing you must folow it’s the wunderground protocol http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
      Just use the variable you need when you build the request:
      String url = "/weatherstation/updateweatherstation.php?ID=";
      url += WUID;
      url += "&PASSWORD=";
      url += WUPASS;
      url += "&dateutc=now&winddir=";
      url += winddir;
      url += "&windspeedmph=";
      url += windspeed;
      url += "&windgustmph=";
      url += windgust;
      url += "&tempf=";
      url += tempout;
      url += "&dewptf=";
      url += dewpout;
      url += "&humidity=";
      url += humidity;
      url += "&baromin=";
      url += baro;
      url += "&rainin=";
      url += rain1h;
      url += "&dailyrainin=";
      url += rain24h;
      url += "&weather=&clouds=&softwaretype=Arduino-ESP8266&action=updateraw";

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *