Alors pour le branchement, j'ai mis le Dout sur la pin 02 et le CLK sur la pin 15.
Et comme je l'avais évoqué ce matin, après moultes essais, je n'arrive pas à faire communiquer le DHT11.
Le moniteur serie m'affiche les autres températures (DHT20 + DS18B20) mais il n'affiche pas le DHT11 car la valeur ne doit pas être lu... Bien sûr, j'ai essayé plusieurs pins sans succès!
Je vous joint mon code qui a légèrement évolué !!

PS: Je précise que mon projet est une ruche connecté avec :
- Température intérieure (DS18B20)
- Prise d'humidité intérieure DHT11
- Température + humidité extérieure (DHT20)
- Poids
Tous cela est envoyé en lora sur un ESP qui réceptionnera le tout. Tout fonctionne hormis ce satané DHT11 
//VERSION FONCTIONNELLE AU 21/03/2023
#include <DFRobot_DHT20.h>
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include "SSD1306.h"
#include "images.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#include "HX711.h"
#include <soc/rtc.h>
#include <dht_nonblocking.h>
#define SCK 5 // GPIO5 -- SX1278's SCK
#define MISO 19 // GPIO19 -- SX1278's MISnO
#define MOSI 27 // GPIO27 -- SX1278's MOSI
#define SS 18 // GPIO18 -- SX1278's CS
#define RST 14 // GPIO14 -- SX1278's RESET
#define DI0 26 // GPIO26 -- SX1278's IRQ(Interrupt Request)
#define ONE_WIRE_BUS 25
#define DOUT 02
#define CLK 15
#define BAND 8695E5 // Plutôt que 868E6 plus encombrée (868E6 bande de fréquences pour l'Europe)
#define uSc_Sc 1000000 // Facteur de conversion de micro-seconde à seconde
#define Sc_Mn 60 //Facteur de conversion de seconde à minute
#define Time_To_Sleep 1 // Définit le temps d'endormissement en minutes
static const int DHT_SENSOR_PIN = 04;
#define DHT_SENSOR_TYPE DHT_TYPE_11
DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE );
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
HX711 scale;
DFRobot_DHT20 dht20;
unsigned int counter = 0;
float calibration_factor = 23100;
float poids;
float dataE[6];
float tempINT;
float tempEXT;
float humEXT;
//float temperatureDHT11;
//float humidityDHT11;
SSD1306 display(0x3c, 21, 22);
String rssi = "RSSI --";
String packSize = "--";
String packet ;
void setup() {
pinMode(16,OUTPUT);
digitalWrite(16, LOW); // set GPIO16 low to reset OLED
delay(50);
digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high
rtc_clk_cpu_freq_set(RTC_CPU_FREQ_80M); // ramène la fréquence à 80MHz bien meilleur pour le bon fonctionnement du HX711
Serial.begin(9600);
while (!Serial);
Serial.println();
Serial.println("LoRa Sender Test");
scale.begin(DOUT, CLK);
Serial.println("Demarrage en cours");
sensors.begin(); // Start up the library
SPI.begin(SCK,MISO,MOSI,SS);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(868E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
while(dht20.begin()){
Serial.println("Initialize sensor failed");
}
//LoRa.onReceive(cbk);
// LoRa.receive();
LoRa.setSpreadingFactor(10); // Facteur d'étalement 7 est la valeur par défaut. Permet de discriminer deux émissions
Serial.println("LoRa Initial OK!");
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
//Calibration du pese-ruche
Serial.println("Calibration du HX711");
Serial.println("Enlever tous les poids de la balance");
Serial.println("des la lecture commencee, placer un poids connu sur la balance");
Serial.println("Presser a,s,d,f ajoute a la calibration 10,100,1000,10000 respectivement");
Serial.println("Presser z,x,c,retranche a la calibration 10,100,1000,10000 respectivement");
Serial.println("taper t dans le moniteur pour tarer la balance");
scale.set_scale();
//scale.tare(); //Remet la balance a zero. Attention à chaque redemarrage il reinitialise la tare
/*************************** Notice de la tare: ***************************
Pour la tare:
- Laisser le contenant vide.
- Décommenter scale.tare();
- Se mettre en liaison série et relever le "Zero factor: "
- Mettre le zero factor dans scale.set_offset(***);
- Recommenter la ligne scale.tare();*/
long zero_factor = scale.read_average();
Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
Serial.println(zero_factor);
scale.set_offset(341318); //fixe le zero (la tare) a partir d'un zero_factor Nouvelle valeur
// préalablement enregistre avec scale.tare active.
delay(1500);
}
//dht11
static bool measure_environment( float *temperatureDHT11, float *humidityDHT11 )
{
static unsigned long measurement_timestamp = millis( );
/* Measure once every four seconds. */
if( millis( ) - measurement_timestamp > 3000ul )
{
if( dht_sensor.measure( temperatureDHT11, humidityDHT11 ) == true )
{
measurement_timestamp = millis( );
return( true );
}
}
return( false );
}
void loop() {
dataE[0] = 1; // numéro de la ruche
//Prise de la température DS180
Serial.print("Requete en cours...");
sensors.requestTemperatures(); // Send the command to get temperatures
tempINT = sensors.getTempCByIndex(0);
dataE[1] = tempINT ;
if(tempINT != DEVICE_DISCONNECTED_C)
{
Serial.print("Temperature interieure: ");
Serial.println(tempINT);
}
else
{
Serial.println("Error: Could not read temperature data");
}
//Prise de la température + hygro DHT20
//Get ambient temperature
tempEXT = dht20.getTemperature();
Serial.print("temperature DHT20:");
Serial.print(tempEXT);
Serial.print("C");
dataE[2] = tempEXT;
//Get relative humidity
humEXT = dht20.getHumidity()*100;
Serial.print(" humidity DHT20:");
Serial.print(humEXT);
Serial.println(" %RH");
dataE[3] = humEXT;
//Prise de la température DHT11
float temperatureDHT11;
float humidityDHT11;
/* Measure temperature and humidity. If the functions returns
true, then a measurement is available. */
if( measure_environment( &temperatureDHT11, &humidityDHT11 ) == true )
{
/*Serial.print( "T = " );
Serial.print( temperatureDHT11, 1 );
Serial.print( " deg. C, H = " );*/
Serial.print( humidityDHT11, 1 );
Serial.println( "%" );
dataE[4] = humidityDHT11;
}
//Pesée
scale.set_scale(calibration_factor); //Aggiustamento del calibration_factor
poids = scale.get_units();
dataE[5] = poids ; // met la donnée dans la première ligne (ou colonne) du tableau
//Calibration de la pesée via la sortie série
if (Serial.available()) // Si liaison série disponible...
{
char temp = Serial.read();
if (temp == '+' || temp == 'a')
calibration_factor += 10;
else if (temp == '-' || temp == 'z')
calibration_factor -= 10;
else if (temp == 's')
calibration_factor += 100;
else if (temp == 'x')
calibration_factor -= 100;
else if (temp == 'd')
calibration_factor += 1000;
else if (temp == 'c')
calibration_factor -= 1000;
else if (temp == 'f')
calibration_factor += 10000;
else if (temp == 'v')
calibration_factor -= 10000;
else if (temp == 't')
scale.tare(); //Remet la balance a zero
}
Serial.print("En lecture: ");
Serial.print(poids, 3);
Serial.print(" kg");
Serial.print(" facteur de calibration: ");
Serial.print(calibration_factor);
Serial.println();
Serial.print(" ----------------------------------------------------------------- ");
Serial.println();
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Sending packet: ");
display.drawString(90, 0, String(counter));
display.drawString(0, 15, "Temp: ");
display.drawString(90, 15, String(tempINT));
display.drawString(0, 30, "Poids: ");
display.drawString(90, 30, String(poids));
display.display();
// send packet
LoRa.beginPacket();
// LoRa.print(temp);
// LoRa.print(poids);
LoRa.write((uint8_t*)&dataE, sizeof(dataE)); // &data signifie adresse de data stocké dans la mémoire sous forme unsigned integer
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(500);
/*esp_sleep_enable_timer_wakeup(uSc_Sc * Sc_Mn * Time_To_Sleep); // Timer d'endormissement en microsecondes
Serial.print("deepsleep:");
esp_deep_sleep_start(); // Mise en sommeil durant le temps d'endormissement défini ci-dessus*/
}