Page 1 sur 2

Station météo Domotic DIY

Posté : mar. 4 janv. 2022 18:44
par Tonton91
Bonjour,
Avant tout, excellente année 2022 à tous.
Je me suis attaqué à la station météo en suivant les tutos du site Domotic DIY. Je suis novice mais comme les tutos sont très très bien expliqués et documentés, la mise en place des services MQTT, OTA ne m’ont posé aucun problème et je suis comme un « vieux » gamin devant Domiticz pour scruter mes vitesses de vent et niveau de pluviométrie. Mais voilà, je butte sur ce qui me paraissait le plus simple, les capteurs de température BME280 et DHT22, je n’arrive pas à afficher les données dans les fichiers test des capteurs respectifs. J’ai essayé des ESP8266 de modèles différents, j’ai upgradé les différentes bibliothèques mais toujours avec le même résultat :
Température : nan °C Pression : nan hPa humidité relative :0.00 % Approx. Altitude = nan m
Si l’un d’entre vous à un conseil à me donner, je suis preneur...

Re: Station météo Domotic DIY

Posté : mar. 4 janv. 2022 19:17
par destroyedlolo
Salut et bonne année a toi aussi.

Peux-tu nous donner le lien de ce tuto.
Sinon, j'ai un DHT22 qui tourne depuis quelques années dans mon poulailler. Les infos sont là.

A+

Re: Station météo Domotic DIY

Posté : mar. 4 janv. 2022 20:18
par Tonton91
Merci pour l’intérêt que tu portes à mon problème.

Le lien pour le BME280 est https://github.com/StationMeteoDIY/Pres ... ospherique
Le fichier utilisé est « test_BME280.ino »
Le lien pour le DHT22 est https://github.com/StationMeteoDIY/Temperature-ressenti
Le fichier utilisé est « test_ DHT22.ino »

Chose curieuse, lorsque je débranche et rebranche le +3.3V du DHT22 en cours de fonctionnement, les valeurs sont ensuite affichées !!!

Re: Station météo Domotic DIY

Posté : mar. 4 janv. 2022 21:11
par destroyedlolo
Tonton91 a écrit :
mar. 4 janv. 2022 20:18
Chose curieuse, lorsque je débranche et rebranche le +3.3V du DHT22 en cours de fonctionnement, les valeurs sont ensuite affichées !!!
Houla, ca ressemble a un probleme de timing / synchro.
T'as mis une capacité au borne du DHT ?

Re: Station météo Domotic DIY

Posté : mar. 4 janv. 2022 22:03
par Tonton91
Les capteurs sont raccordés directement à l’ESP sans autres composants comme sur les schémas proposés dans les tutos.

Re: Station météo Domotic DIY

Posté : mar. 4 janv. 2022 23:04
par mike913
Bonjour,
Pour mon site Méteo j'utilise une sonde SHT31 etanche raccordé àa une esp8266
voici le script que j'utilise:

Code : Tout sélectionner

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Version pour ESP8266  - DEEP Batterie DEEP
// Version du 17/09/2021
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define DEBUG
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Version
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
String script = "SHT3XDeep-5.101";
String host = "ESP-02";
String dest = "";
String dest1 = "http://192.168.A.X";
String dest2 = "http://192.168.B.Y";
String sondes = "SHT31";
String type = "Deep";
String Alim = "Accus";
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Variables SHT
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "Wire.h"
#include "SHT31.h"
SHT31 sht;
float t = 0;
float h = 0;
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Timers
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define INTERVAL	  	118 	  	// 120 secondes
#define NB_TRYWIFI	 10 		// nbr d'essai connexion WiFi, number of try to connect WiFi
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Variables WiFi
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
String ssid1 = "SSID_A";
String psk1 = "PassPhrase_A";
String ssid2 = "SSID_B";
String psk2 = "PassPhrase_B";
ESP8266WiFiMulti wifiMulti;
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Procedure Connexion
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void connexion()
{
  wifiMulti.addAP(ssid1.c_str(), psk1.c_str());
  wifiMulti.addAP(ssid2.c_str(), psk2.c_str());
#ifdef DEBUG
  Serial.println("Connexion Wifi...");
#endif
  int _try = 0;
  while (wifiMulti.run() != WL_CONNECTED)
  {
#ifdef DEBUG
    Serial.print("#");
#endif
    delay(500);
    _try++;
    if ( _try >= NB_TRYWIFI )
    {
#ifdef DEBUG
      Serial.println("Impossible to connect WiFi network, go to deep sleep");
#endif
      ESP.deepSleep(10 * 1000000);
    }
  }
  if ( WiFi.SSID() == ssid1)
    dest = dest1;
  else if ( WiFi.SSID() == ssid2)
    dest = dest2;
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Evoie des données
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
int Send(String URL)
{
  WiFiClient client;
  HTTPClient http;
  int OK = 0;
  if (http.begin(URL))
  {
    int httpCode = http.GET();
    OK = httpCode;
#ifdef DEBUG
    if (httpCode > 0)
    {
      Serial.printf("[HTTP] GET... code: %d\n", httpCode);
      if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY)
      {
        String payload = http.getString();
        Serial.println(payload);
      }
    }
    else
    {
      Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
    }
#endif
    http.end();
  }
  return OK;
}
//===========================================================================
//  SETUP
//===========================================================================
void setup()
{
  Serial.begin(115200);
  WiFi.persistent(false);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(host);
  connexion();
#ifdef DEBUG
  Serial.println("Connected to the WiFi network");
  Serial.print ( "IP address: " );
  Serial.println ( WiFi.localIP() );
#endif
  Wire.begin();
  sht.begin(0x44);
  Wire.setClock(100000);
  sht.read();
  float ts = sht.getTemperature();
  float hs = sht.getHumidity();
  String url = dest;
  url += "/meteo/php/logdeep.php?Host=";
  url += host;
  url += "&Sondes=";
  url += sondes;
  url += "&Alim=";
  url += Alim;
  url += "&Script=";
  url += script;
  url += "&SSID=";
  url += WiFi.SSID();
  url += "&Signal=";
  url += WiFi.RSSI();
  url += "&IP=";
  url += WiFi.localIP().toString();
  url += "&Tmp=";
  url += ts;
  url += "&Hum=";
  url += hs;
  int rep = Send(url);
#ifdef DEBUG
  Serial.println(url);
  Serial.println(rep);
#endif
  if (rep == 200)
  {
    ESP.deepSleep(INTERVAL * 1000000);
  }
  else
  {
    delay(2000);
    ESP.restart();
  }
}
//===========================================================================
//  Boucle Principale
//===========================================================================
void loop() {
}


Comme mon ESP est alimanté par une batterie, il n' ya pas d' OTA, et j' utilise la mise en sommeil de l' ESP

Re: Station météo Domotic DIY

Posté : mer. 5 janv. 2022 13:52
par destroyedlolo
Tonton91 a écrit :
mar. 4 janv. 2022 22:03
Les capteurs sont raccordés directement à l’ESP sans autres composants comme sur les schémas proposés dans les tutos.
Je n'ai pas vu la vidéo en plein, mais le DHT qu'elle montre est sur un PCB rouge qui contient une résistance et un condo : est-ce bien le model que tu utilises ?
Car le model de base, sans ce PCB, il faut ajouté un condo de filtrage.

Re: Station météo Domotic DIY

Posté : jeu. 6 janv. 2022 08:28
par Tonton91
Merci à mike93 et destroyedlolo pour votre aide.

Mon DHT est un modèle simple dans un boitier blanc sans PCB et c’est un ASAIR AM2302. Le tuto disait que l’on pouvait utiliser aussi bien un DHT221 qu’un AM2302.

As-tu l’info concernant les valeurs et le brochage ?

En te remerciant par avance.

Re: Station météo Domotic DIY

Posté : jeu. 6 janv. 2022 08:34
par Tonton91
J'ai trouvé un schéma, 100nf entre la pin 1 et 4, 4.7k à 10k en pull-up sur la 2 des datas

Re: Station météo Domotic DIY

Posté : jeu. 6 janv. 2022 10:44
par destroyedlolo
Sinon, il y a aussi un schema avec les valeurs sur mon site avec le lien que je t'ai donné.