DHT11 shield per
Modulo WeMos D1 mini

ultimo aggiornamento 10 dicembre 2017


 


Indice

Descrizione

Tra i molti modelli di shield realizzati appositamente per il modulo WeMos D1 mini troviamo il Wemos DHT Shield che utilizza il sensore di umiditÓ e temperatura DHT11, il sensore Ŕ calibrato dal costruttore e non richiede componenti aggiuntivi, Ŕ in grado di misurare la temperatura in una gamma compresa tra 0░C e +60░C con una precisione di ▒2░C e l'umiditÓ in una gamma compresa tra 20%RH e 90%RH con una precisione di ▒5RH.

 

Vista frontale dello Shield DHT11

Vista posteriore dello Shield DHT11

Sullo shield il DHT11 viene utilizzato come modulo giÓ provvisto di resistenza e collegabile direttamente a vdd o 3v3.
I dati del sensore sono letti tramite interfaccia One-Wire.

NOTA: attualmente del modulo Ŕ possibile trovare la versione V2.0.0 basata su un sensore DTT12

Per altre informazioni ed aggiornamenti vedere la pagina originale.

 

 

Bustina antistatica contenente lo shield

Contenuto della bustina antistatica

 

homotix

PCBONLINE

Caratteristiche

 

Shield con connettori montati

 

Libreria per gestione sensore

 

Per la lettura dei dati del sensore DHT11, occorre, se non lo si Ŕ mai utilizzato caricare l'apposita libreria, per cui andare al menu Sketch-> #includi libreria  -> Gestione librerie

 

 

ricercare dth e installare la libreria DHT sensor library By Adafruit, per il funzionamento occorre anche installare la libreria  Adafruit_Sensor

Le due librerie sono scaricabili dai seguenti link

https://github.com/adafruit/DHT-sensor-library

https://github.com/adafruit/Adafruit_Sensor

 

Esempio di utilizzo del sensore

In questo esempio utilizziamo il modulo WeMos D1 mini per leggere i dati di temperatura ed umiditÓ forniti dallo shield sensore DHT11 e invieremo i dati sul canale Thinkspeak,  che Ŕ una piattaforma Internet che consente di raccogliere e memorizzare i dati del sensore nel cloud e di sviluppare applicazioni IoT.

La piattaforma ThingSpeak IoT fornisce la possibilitÓ di visualizzare i dati in MATLAB e quindi eseguire, in una seconda fase una eventuale manipolazione dei dati raccolti.

Per collegare il sensore sarÓ sufficiente collegare tra loro i due moduli come visibile nella foto, automaticamente il sensore DHT11 sarÓ collegato: Pin 1 al pin 3.3V, Pin 2 al pin D4 del modulo WeMos D1 mini, il Pin 4 a GND.

Ora dovremo crearci un account sul sito web di thingspeak – https://thingspeak.com. inserendo  le informazioni nell'apposita maschera

Una volta creato l'account dovremo configurare un canale dove visualizzare i dati pubblicati dal nostro dispositivo e creeremo due campi, uno per la Temperatura e l'altro per l'UmiditÓ rilevati dal nostro sensore DHT11. La schermata, apparirÓ come segue:

Per l'invio dei dati dobbiamo caricare un'apposita libreria per cui andare al menu Sketch-> #includi libreria  -> Gestione librerie e ricercare "ThingSpeak" e installare la libreria

Sketch del programma

Quindi caricare il programma seguente in cui dovremmo inserire alcuni campi specifici per la vostra applicazione.

Programma wemos_d1_mini_dht11.ino

String apiKey = "xxxxx"; Il valore si trova della Chiave API di scrittura Ŕ fornita dal sito ThingSpeak

const char* ssid = "xxxxx";
const char* password = "xxxxx";
I valori da inserire sono il nome del vostro Router e la relativa password.

 
/*
  wemos_d1_mini_dht11.ino
  In questo esempio utilizziamo il modulo WeMos D1 mini
  per leggere i dati di temperatura ed umiditÓ forniti
  dallo shield sensore DHT11 e invieremo i dati sul canale
  Thinkspeak,  che Ŕ una piattaforma Internet che consente
  di raccogliere e memorizzare i dati del sensore nel cloud
  e di sviluppare applicazioni IoT.

  Sono utilizzati i seguenti pin
  Pin +3.3V         -> Alimentazione shield DHT11
  Pin GND           -> GND shield DHT11
  Pin Digital D4    -> ingresso dati DHT11


  Creato il 10/8/2017 da Adriano Gandolfo
  Sito web http://www.adrirobot.it
  Blog http://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
*/

#include <DHT.h>
#include <ESP8266WiFi.h>

// Inserire la chiave API del proprio canale, il nome
// del proprio SSID con relativa password
String apiKey = "xxxx";
const char* ssid = "xxxx";
const char* password = "xxxx";
const char* server = "api.thingspeak.com";

#define DHTPIN D4
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;

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

  WiFi.begin(ssid, password);

  Serial.println();
  Serial.println();
  Serial.print("Connessione ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connessa");

}

void loop()
{

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t))
  {
    Serial.println("Fallito lettura dati da sensore DHT!");
    return;
  }

  if (client.connect(server, 80)) {
    String postStr = apiKey;
    postStr += "&field1=";
    postStr += String(t);
    postStr += "&field2=";
    postStr += String(h);
    postStr += "\r\n\r\n";

    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr);

    Serial.print("Temperatura: ");
    Serial.print(t);
    Serial.print(" ░C HumiditÓ ");
    Serial.print(h);
    Serial.println("Invio dati a Thingspeak");
  }
  client.stop();

  Serial.println("Attesa di 20 sec");
  // thingspeak richiede almeno un ritardo di 15 secondi
  // tra gli aggiornamenti, 20 secondi per essere sicuri
  delay(20000);
}

Risultati del funzionamento

Dopo qualche minuto di funzionamento del nostro dispositivo, potremo vedere riportate nel nostro canale i risultati della lettura del nostro canale.

Elenco revisioni:

10/12/2017

Separato pagina

15/10/2017

Emissione preliminare