ESP01S + DHT22 Et DEEP SLEEP

Bonjour la communautés,

Voici mon problème en qq petites lignes.

J’ai fait une sonde de T° et Humidité e avec un ESP01S et DHT22.
Avec un DHT11 je n’ai aucun problème après le reveil tous fonctionne.
Mais avec le même code même câblage et un DHT 22 après le reveil le DHT est en TIME out !!!

Avez vous une idée ?

Je joint le code mais sans grand intérêt !!!

#include "DHTesp.h"
DHTesp dht;
#include <ESP8266WiFi.h>
const char* MY_SSID = "---------"; 
const char* MY_PWD = "---------";
char server[] = "XXXXXXXX"; 



void setup()
{
  delay(5000);
  Serial.begin(74880);
  int a =0;
  Serial.print("Connecting to "+*MY_SSID);

 // WiFi.config(ip, gateway, subnet);
  WiFi.begin(MY_SSID, MY_PWD);
  while (WiFi.status() != WL_CONNECTED) {
  a ++ ;
  if (a == 10) { Serial.println ("Not Connect then Sleep"); ESP.deepSleep(60e6); }
    
  delay(1000);
  Serial.print(".");
  }
  
  Serial.println("");
  Serial.println("Connected");
  Serial.println(""); 
  Serial.println();
  Serial.println("Status\tHumidity (%)\tTemperature ");


  dht.setup(2, DHTesp::DHT11); // Connect DHT sensor to GPIO 17

  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity();
  float temperature = dht.getTemperature();

  Serial.print(dht.getStatusString());

  Serial.print("\t");
  Serial.print(humidity, 1);
  Serial.print("\t\t");
  Serial.print(temperature, 1);
  Serial.print("\t\t");
  if (dht.getStatusString()!="TIMEOUT"){
  WiFiClient client;
  
  if (client.connect(server, 80)) {

    client.print(F( "GET /core/api/jeeApi.php?plugin=virtual&apikey=----------------&type=virtual&id=137&value="));
    client.print (temperature);
    
    client.println(F(" HTTP/1.1"));
    client.print(F("Host: "));
    client.println(server);
    delay(111);
    client.println();
    delay(111);    
    client.print(F( "GET /core/api/jeeApi.php?plugin=virtual&apikey=---------------&type=virtual&id=138&value="));
    client.print (humidity);
    client.println(F(" HTTP/1.1"));
    client.print(F("Host: "));
    client.println(server);
    delay(111);
    client.println(F("Connection: close"));
    client.println();
    delay(111);
    
  }
    client.stop();
  }

 Serial.println ("Sleep");
 ESP.deepSleep(60e6); 


}
void loop()
{}

Merci pour votre aide :wink:

Bonsoir

Le phénomène se reproduit-il avec la librairie d'Adafruit ?

cette libraire est listée sur la page ESP8266/Arduino,comme fonctionnelle sur ESP8266
https://arduino-esp8266.readthedocs.io/en/2.6.3/libraries.html#other-libraries-not-included-with-the-ide

De mémoire (a vérifier) au démarrage et au redémarrage quelques impulsions sortent de GPIO2 avant que celui-ci ne soit libre pour l'application Arduino (GPIO2 est la sortie Tx du second UART). Si cela est vrai ces impulsions perturberaient peut être le DHT22.

Sans vérifier, comme ça, je dirais que si tu passes d'un DHT11 à un DHT22 il faut modifier

dht.setup(2, DHTesp::DHT11);

en

dht.setup(2, DHTesp::DHT22);

De même tous tes delay (111) deviennent des delay (222)

lesept:
De même tous tes delay (111) deviennent des delay (222)

Pourquoi changer la valeur des delay() ?

Ben, c'est logique, non ?

DHT11 --> DHT22

Donc

delay (111) --> delay (222)

Dht 11 en dht 22 avait été fait bien sûr.
Le delay en 222 me paraît farfelu mais bon sa ma bien fait rire.
Je vais regarder les librairies quant j aurai un moment.

Je vous dirai quoi plus tard.

Essaye avec un petit delay (30) avant le dht.setup

Merci @lesept mais ce n'est pas encore sa ! même avec un delay plus long.
J'ai essayé un delay de 1sec juste après le setup mais non !

De base j'emploie celle-ci DHT sensor library for ESPx

J'ai essaye cette lib ci : DHT-sensor-library/DHTtester.ino at master · adafruit/DHT-sensor-library · GitHub

Idem ne fonctionne pas mieux même symptôme

@Le_Joebar :
-ton capteur DHT22 fonctionne-t-il correctement avec une carte Arduino ?

-sur ESP8266 : changer de GPIO pour le capteur ?
Petite vérification ce matin à l'oscilloscope : à chaque démarrage une trame série sort de GPIO2 (alias D4) , probablement à 74880 bauds. Durée de la trame environ 20mS.

Un adaptateur Uart/USB permettrait devoir le contenu du message de boot.

Qui sait ce que fait le DHT22 de cette trame ?

J essaye demain ! Donc l idée serais de mettre le dht 22 sur le gpio 0 ?! Cela me semblait pas faisable ! Je me trompe sans doute.

L'ESP01S est très limité, notamment en termes de GPIO disponibles. As-tu réellement besoin d'utiliser ce modèle ?

Il serait plus facile de passer sur un NodeMCU v3 par exemple, qui est beaucoup plus riche que ce plan.

Quand l'ESP8266 est sorti fin 2014, l'ESP-01 était l'unique façon de l'utiliser.
et on était contents de l'avoir et le pratiquer, pas d'alternative à l'époque !!

Nombre de tutoriels ont été accumulés au cours de ces années et c'est probablement cette quantité de tutoriels accumulés qui aujourd'hui encore, de manière surprenante, fait opter pour ce module pour démarrer l'ESP8266 alors que d'autres modules paraissent plus appropriés pour un usage courant (NodeMCU, D1 Mini...)

Aujourd'hui le choisir pour démarrer l'ESP8266 c'est se compliquer la vie.

Donc l idée serais de mettre le dht 22 sur le gpio 0 ?! Cela me semblait pas faisable !

GPOIO0 est 'mobilisé' pour le flashage mais en suite il me semble qu'il est disponible pour l'application

Merci Pour l'aide j'ai essayé le GPIO 0 que je pensais a tord ne pas être dispo!
Et bien sa fonctionne
Merci @al1fch car je n'ai même pas pensé à taper le scop dessus.
Merci @lesept pour l'aide mais juste un point. Perso j'ai déjà sorti des trucs dingues avec un esp01 ce que j'aime c'est sa petite taille et quand même avec 2 GPIO + la possibilité du RX en IO etc.. sa permet de faire pas mal de choses.
Et l'idée de facilité n'est pas mon truc.
Et aussi pourquoi employer un node MCU pour juste un GPIO ! Non franchement si j'ai besoin d'une 2CV c'est pas pour y mettre un moteur de 350 CV lollll

Merci pour l'aide de chacun franchement trop top !

Pas de souci, bonne continuation !

content que GPIO0 résolve le pb !!

ce que j'aime c'est sa petite taille et quand même avec 2 GPIO + la possibilité du RX en IO etc.. sa permet de faire pas mal de choses.

j'ai également vu passer une application avec un DHT22 sur TX !!

l'absence d'entrée analogique et la grande difficulté au réveil en deep-sleep sont quand même gènantes pour certains.. Question taille les ESP-03 et ESP-07 sont pas mal !!

mon compromis taille/confort de développement/ capacités : le D1 Mini (en gros le double de l'ESP-01 en taille, mais avec une bonne alimentation 3,3V et une interface USB et une gestion automatique du mod bootloader)