Test. Shield SHT30 pour ESP8266 LoLin D1 Mini (WeMos), température et humidité sur bus I2C

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Le Shield SHT30 pour l’ESP8266 LoLin d1 mini (WeMos) permet réaliser des mesures numériques de température et d’humidité via le bus I2C ce qui permet de réduire le câblage des projets. 

 

 

Le capteur de température et d’humidité DHT22 (et son petit frère le DHT11) sont omniprésents dans les tutoriels Arduino / ESP8266 / Raspberry Pi. Vous connaissez également très certainement de Dallas DS18b20 qui utilise le protocole 1-Wire. Avec ce nouveau shield, vous pourrez économiser une broche supplémentaire pour vos projets. Le Shield embarque le capteur miniature Sensirion SHT30.

Déballage du shield SHT30

Vendu moins de 4€ en direct d’Asie, le shield SHT30 est livré dans une pochette anti-statique. Contrairement aux autres Shields de la famille, il n’est livré qu’avec un seul type de connecteur au pas de 2.54mm.

deballage shield sht30 wemos d1 miniVersion 1.0 (moins de 2€)sht30 v2.1.0 shield lolin d1 miniVersion 2.1.0 (environ 4€)

 

Deux adresses sont disponibles 0x44 et 0x45 qui peut être sélectionné à l’aide d’un Jumper présent à coté du capteur. L’adresse par défaut est 0x44. Depuis la version 2.0.0, il est possible de déporter la sonde de température en la détachant du Shield. Il suffira ensuite de connecter la sonde au bus I2C à l’aide d’un câble 4 brins (+3V, GND, SDA, SCL) au format JST SH 1.0mm 4 broches. La sonde pourra être fixée à l’aide d’un perçage de 2mm de diamètre.

Caractéristiques techniques

La documentation technique du fabricant Sensirion est disponible ici. Le SHT30 (et son grand frère, le SHT31) permet de mesurer la température dans une plage de -40°C à +125°C. L’humidité peut être mesurée de 0 à 100%. La précision de mesure varie en fonction de la température. Autour de l’ambiant (de -10°C à +55°C), la précision de mesure de la température est de ±0,3°C.

shield sht30 wemos d1 mini courbe precision mesure temperature

Source : https://www.wemos.cc/sites/default/files/2016-11/SHT30-DIS_datasheet.pdf

Remarque. Le SHT31 offre une meilleure précision de mesure de l’humidité.

Montage du Shield SHT30 sans soudure :

Lorsque j’ai eu le shield dans mes mains, j’ai trouvé dommage de souder les connecteurs. J’ai donc essayé d’étamer les bords des broches GND, 3V3, D1 et D2 (utilisées par le bus I2C). J’ai ensuite empilé la carte sur un Shield OLED. On obtient ainsi une assemblage extrêmement compact. De bas en haut :

shield sht30 wemos d1 mini stack oled battery

Attention. Le montage sans soudure peut empêcher le Shield SHT30 de fonctionner correctement. En cas de problème, revenez à un montage classique

Installer la librairie SHT30 sur IDE Arduino

Wemos a mis a disposition une librairie que l’on peut récupérer sur GitHub ici. Téléchargez d’abord le dépôt avant de le décompresser dans le dossier Library de l’IDE Arduino. Relancez l’IDE pour que ce dernier prenne en compte la librairie.

Programme de base

Un exemple basique (SHT30_Shield.ino) est livré avec la librairie. Il montre comment récupérer la mesure de température et d’humidité. On appel la librairie WEMOS_SHT3X en début de programme

#include <WEMOS_SHT3X.h>

Par défaut, le SHT30 est accessible à l’adresse 0x45. Pour utiliser l’adresse 0x44, il faudra faire un point de soudure sur le jumper ADDR

SHT3X sht30(0x45);

Ensuite, il suffit d’appeler la fonction sht30.get()  pour récupérer les mesures. On dispose enfin de trois classes publiques qui permettent de récupèrer les mesures :

  • sht30.cTemp pour la température en Celcius
  • sht30.fTemp pour avoir la température en Fahrenheit
  • sht30.humidity pour l’humidity
#https://github.com/wemos/WEMOS_SHT3x_Arduino_Library
#include <WEMOS_SHT3X.h>
SHT3X sht30(0x45);

void setup() {
  Serial.begin(115200);
}

void loop() {
  sht30.get();
  Serial.print("Temperature in Celsius : ");
  Serial.println(sht30.cTemp);
  Serial.print("Temperature in Fahrenheit : ");
  Serial.println(sht30.fTemp);
  Serial.print("Relative Humidity : ");
  Serial.println(sht30.humidity);
  Serial.println();
  delay(1000);
}

Sonde de température avec affichage OLED 64×48 pixels

Le Shield étant installé en dessous d’un Shield OLED (présenté précédemment), je vous propose un petit programme permettant d’afficher la température et l’humidité sur ce dernier. Pour fonctionner, il est nécessaire d’inclure manuellement la librairie Adadruit_SSD1306 modifiée par Mike Causer disponible sur Github ici.

/*
 * SHT30 Shield for Wemos d1 mini
 * - Read temperature and humidity
 * - Display value on OLED Shield (64x48 pixels) 
 *  
 * - Lit la température et l'humidité sur le capteur 
 * - Affiche les mesures sur l'écran OLED (64x48 pixels)
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * Licence : MIT
 * Copyright (C) 2017 : www.projetsdiy.fr and www.diyprojects.io
 */
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_SSD1306.h"
#include <WEMOS_SHT3X.h>

#define OLED_RESET 0  // GPIO0
Adafruit_SSD1306 display(OLED_RESET);
SHT3X sht30(0x45);

void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 64x48)
  display.display(); 
}

void loop() {
  sht30.get();  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);

  display.println("- SHT30 -");
  display.print("T ");
  display.print(sht30.cTemp);
  display.println(" *C");

  display.print("H ");
  display.print(sht30.humidity);
  display.println(" %");
  display.println("");
  display.println("projetsdiy");
  display.display();
  delay(2000);
}

Le Shield SHT30 a donc de nombreux atouts. Son prix est équivalent au Shield DHT22 (environ 2,90€ au lieu de 2,77€). Il utilise le bus I2C pour communiquer avec la LoLin – Wemos ce qui permet d’économiser une broche. Enfin, le Shield est extrêmement compact. Il pourra être intercalé entre 2 autres shields. Petit bémol pour les débutants, ce capteur étant moins répondu, vous trouverez moins d’exemples et aucun plugin ESP Easy n’a encore été développé.

Tous les shields compatibles LoLin d1 mini

La liste détaillée et les informations techniques des cartes d’extension pour L’ESP8266 LoLin d1 mini sont mises à jour régulièrement sur cette page.

-13% ProtoBoard Shield For WeMos D1 Mini Double Sided Perf PCB Extension Board...
0,32 0,37
Esp8266 pour WeMos D1 module WS2812B RGB bouclier pour WeMos D1 mini...
0,32
-24% 1-Button Shield Module for WeMos D1 mini button
0,33 0,44
-13% ESP8266 Relay Shield V2 WeMos D1 Mini ESP8266 Development Board For WeMos...
0,37 0,43
-11% Micro SD Card Shield IoT Wireless Control for D1 Mini ESP8266 WiFi...
0,46 0,52
-11% Double Socket Dual Base Shield for WeMos D1 Mini NodeMCU ESP8266 For...
0,46 0,52
TFT I2C Connecteur Bouclier V1.1.0 pour LOLIN (WEMOS) D1 mini 1x TFT,...
0,63
-9% For Wemos D1 Mini Buzzer Shield V1.0.0 Development Board For Wemos D1...
0,81 0,90
-9% DHT Shield for WeMos D1 mini DHT11 Single-bus digital temperature and humidity...
0,84 0,93
Lumière ambiante Bouclier V1.0.0 pour LOLIN D1 mini BH1750 BH1750FVI I2C numérique...
1,08
-15% Micro SD pour Wemos D1 Mini horloge en temps réel enregistreur de...
1,16 1,38
-7% Matrix LED Shield V1.0.0 8 Step Adjustable Intensity for WEMOS D1 mini...
1,18 1,27
IR Contrôleur Bouclier V1.0.0 pour LOLIN D1 mini Infrarouge capteurs 4x 940nm...
1,26
Barométrique Pression Bouclier V1.0.0 pour LOLIN (WEMOS) D1 mini HP303B I2C numérique...
1,35
PIR Bouclier V1.0.0 pour LOLIN D1 mini infrarouge passif capteur module
1,44
-6% Bouclier OLED V2.0.0 pour WeMos D1 mini 0.66
1,78 1,90
TFT 1.4 Bouclier V1.0.0 pour WeMos D1 mini 1.44
1,79
SGP30 officiel (TVOC + eCO2)
1,79
-9% DHT Pro Shield for WeMos D1 mini DHT22 Single-bus digital temperature and...
2,41 2,67
2pcs Wemos® DHT Shield V2.0.0 For WEMOS D1 Mini DHT12 I2C Digital...
5,03
TFT 2.4 Tactile Bouclier V1.0.0 pour LOLIN (WEMOS) d1 mini 2.4
5,31
EPaper 2.13 bouclier V1.0.0 pour LOLIN (WEMOS) D1 mini D32-2.13 pouce 250X122...
8,91
Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

Ressources utiles
quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?
4 Commentaires
  1. Qu’est ce que ça donne pour l’exactitude des mesures ? Avec ce montage en stack, j’obtiens une température de 2 à 6°C plus élevée que la réalité. J’ai essayé le mode Deep Sleep entre 2 mesures pour refroidir l’assemblage, ça améliore un peu mais ça reste trop élevé.

    • Oui, c’est vrai, j’ai aussi constaté des mesures assez aléatoires mais pas uniquement avec le SHT30. J’ai aussi le même problème avec l’antique DHT22. Disons que ces capteurs ne coutent pas très chers et qu’ils donnent une bonne idée de la température ambiante. Pour améliorer les choses, on pourrait lisser les mesures en faisant une moyenne sur 5 mesures glissantes par exemple.

  2. Le plugin pour espeasy existe depuis un bout me semble, ce capteur remplace avantageusement mes dht22 qui rende l’ame un par un après 2 ans de mise en service, à voire a l’usage pour celui-ci.

    Laisser un commentaire

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

    Domotique et objets connectés à faire soi-même