WemosD1 DHT11 Schema

Utilizzare il sensore di temperatura DHT11 con la scheda Wemos D1 Mini

In questo post vorrei mostrarvi come utilizzare il sensore di temperatura DHT11 con un WeMos D1 Mini (ESP8266) programmandola con l’IDE Arduino.

Differenze dall’utilizzo di un DHT11 con una scheda Arduino standard

Ci sono due principali differenze da tenere a mente quando si utilizza DHT11 su un Wemos D1 Mini (ESP8266) o chipset simili.

La prima è che il pin out è diverso nell’IDE di Arduino rispetto all’utilizzo di Arduino. In poche parole, è necessario utilizzare numeri di pin diversi.

La seconda differenza è che la libreria DHT11 standard (Adafruit) non funziona molto bene con WeMos. Dopo aver provato un paio di librerie ho trovato che la più semplice da usare e installare era la “DHT sensor library for ESPx” di beegee_tokyo.

Dopo aver fatto qualche indagine, il motivo per cui la libreria DHT11 standard non funziona è che Arduino è molto più lento dell’ ESP8266. Ciò influisce sulla libreria DHT11 standard poiché DHT11 ha severi requisiti di temporizzazione. La maggiore velocità dell’ESP8266 causa problemi di comunicazione con il DHT11 e ne impedisce il funzionamento.

Come collegare il DHT11 alla WeMos D1 Mini

WemosD1 DHT11 Schema
WemosD1 DHT11 Schema

Per facilitare il collegamento del sensore ho collegato la linea 3,3 volt e GND alla breadboard. Da lì collego la linea da 3,3 volt al primo pin del DHT11.

Il quart pin è collegato alla linea GND da WeMos.

Il secondo pin viene utilizzato per i dati ed è collegato al pin D5 su WeMos. Inoltre, collego una resistenza da 10k tra questo pin di dati e la linea a 3,3 volt per fungere da resistenza di pull-up.

Personalmente ho provato anche a non utilizzare la resistenza di pull-up che viene consigliata nel documento ufficiale e non ho riscontrato problemi. Farò delle prove per vedere se le letture ne risentono ma per il momento non so.. per facilità di realizzazione, pigrizia e mancanza della resistenza lo utilizzo senza.

È importante non collegare il sensore DHT11 alla linea a 5 volt. Questo perché l’alimentazione viene inviata sui pin dati e potrebbe danneggiare la WeMos.

A differenza di Arduino, i pin di dati WeMos sono a 3,3 volt. Ciò significa che il collegamento dei 5 volt ad essi danneggia il micro controllore. Poiché il DHT11 supporta tensioni tra 3 e 5,5 volt, è perfettamente corretto utilizzare la linea da 3,3 volt.

Come programmare la Wemos D1 Mini per usare il sensore DHT11

Invece di usare la libreria DHT standard sto usando la DHTesp. Questa libreria è stata creata appositamente per utilizzare i dispositivi DHT sui microcontrollori ESP8266.

#include "DHTesp.h"     // Libreria per utilizzare la Wemos D1 Mini con il sensore DHT11/DHT22 
#define DHTpin D5	// Pin a cui è collegato il sensore DHT11 
 
DHTesp dht;
 
void setup()
{
  Serial.begin(9600);  
  dht.setup(DHTpin, DHTesp::DHT11); 	// Utilizzare questa riga per il sensore DHT11 
  //dht.setup(DHTpin, DHTesp::DHT22); 	//Utilizzare questa riga per il sensore DHT22
}
 
void loop(){
  int humidity = dht.getHumidity();       // Richiedo il valore dell'umidità
  int temperature = dht.getTemperature(); // Richiedo il valore della temperatura 
  
  Serial.print("Stato:");
  Serial.print(dht.getStatusString());  
  Serial.print(" Umid:");
  Serial.print(humidity, 1);
  Serial.print(" Temp:");
  Serial.println(temperature, 1);
  
  delay(5000);	// Attendo 5 secondi
}

Il sensore DHT11 è un sensore di temperatura e umidità utile ed economico che può essere utilizzato con WeMos D1 mini. Sebbene le librerie DHT11 standard non possano essere utilizzate, esistono librerie simili progettate per i chipset ESP8266 come WeMos D1 mini.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna su