(résolu) esp8266 version 201 et sonde DHT22

Bonjour,
je souhaiterais envoyer les T° et H% d’une sonde dht22 sur un serveur (ci joint la photo du montage : le dht22 peut être alimenté en 3.3 ou 5V)

le problème:

  • si je charge l’exemple d’adafruit, le dht22 me renvoi aucune erreur en 5V, mais en 3.3V c’est reboot intempestif ou une fois sur deux Failed to read from DHT sensor!
  • si je prends ce meme exemple et envoi ces données sur un site c’est pire:
    5V >> 1 erreur sur 5 (dans les meilleurs des cas, sans parler des reboot)
    3.3V >> impossible de lire les données du dht >> Failed to read from DHT sensor! ou reboot infini

je suis un peu perdu car j’obtiens aucun résultat >> j’ai testé plusieurs alim / résistance différente pour le dht (4.7k 10K) / alim différencié esp et DHT, …

le code pour lire et envoyer les données:

#include <ESP8266WiFi.h>

// librairie Adafruit
#include "DHT.h"

#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);

const char* ssid     = "ssid_XXXXXXXXXXXXXXXX";
const char* password = "password_XXXXXXXXXXXX";

const char* host = "192.168,X,X";

void setup() {
  Serial.begin(115200);
  dht.begin();
  delay(2000);
  

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  delay(5000);

  Serial.print("connecting to ");
  Serial.print(host);
  
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }


  String temp = String(dht.readTemperature());
  String humidity = String(dht.readHumidity());
  String url = "/inject/sondeTH_Test?sensor=";
  url += "esp1&temp=";
  url += temp;
  url += "&hum=";
  url += humidity;
  
  Serial.print(" URL: ");
  Serial.println(url);
  
  // This will send the request to the server
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  delay(10);
  
  // Read all the lines of the reply from server and print them to Serial
//  while(client.available()){
//    String line = client.readStringUntil('\r');
//    Serial.print(line);
//  }
  
  Serial.println("_______________________");
  delay(5000);
}

bonsoir il y a pas mal de topic DHT sur le forum esp8266 exemple esp201

salut Artouste ;) pour les topics dht j'ai déja parcouru esp8266.com et le web, majoritairement les exemples sont entre un dht11 et esp01 (que je pense acheté vu la quantités d'exemples/tutos ...)

Artouste: il y a pas mal de topic DHT sur le forum esp8266 exemple esp201

Je suis tombé sur ce post aujourd'hui, j'ai pas pas encore testé son code (ou librairie)

je sais pas encore si le problème vient du branchement (physique ou alimentation) ou du code.

pour le moment, je n'ai pas réussi à avoir un comportement stable avec les esp. (cela ne fait que 2 semaines, pas faciles à apprivoiser ces bêtes :blush: :blush: )

tu pourrais essayer de traiter en 2 temps : premier : tu fais l'acquisition de la DHT deuxième : connection et transmission wifi

alors c'est la sonde pour mes test qui ne vas pas (elle ne renvoie aucune valeur en dessous de 3,4v) j'en ai reçu de nouvelles ce matin, c'est réglé. tout fonctionne par défaut avec les lib d'adafruit (mais pas celle de rob tillaart >> erreur de compil avec les cartes esp 201)

Merci pour vos conseils en tout cas ;) , je vais pouvoir enfin commencer les esp en autonome (sur batterie / deepsleep / ...)