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. Vus 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.
Sommaire
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.
Version 1.0 (moins de 2€) | Version 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.
Shield, breakouts et modules M5Stack
Le SHT30 est disponible sous la forme du shield pour LoLin d1 mini, breakout pour projets ESP32, ESP8266 ou Raspberry Pi, module M5Stack.
Shield SHT30 pour LoLin d1 mini (WeMos)
Breakout SHT30 pour ESP32, ESP8266, Raspberry Pi
Module SHT30 I2C compatible M5Stack
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.
Source : https://www.wemos.cc/sites/default/files/2016-11/SHT30-DIS_datasheet.pdf
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 :
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
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
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);
}
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.
Après compilation, voici à quoi ressemblera la sonde
/*
* 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 .
*
* Licence : MIT
* Copyright (C) 2017 : www.projetsdiy.fr and www.diyprojects.io
*/
#include
#include
#include
#include "Adafruit_SSD1306.h"
#include
#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.
- ESP32, broches GPIO et fonctions associées. I/O, PWM, RTC, I2C, SPI, ADC, DAC
- ESP32-CAM. Broches et équipements ESP-EYE, AI Thinker, TTGO T-Camera, M5Stack Timer Camera…
- ESP32-CAM. Quel modèle choisir ? ESP-EYE, AI Thinker, TTGO T-Camera, M5Stack Timer Camera…
- M5Stack Atomic GPS. Tracker ESP32 TinyGPS++, export GPX sur carte SD, visualisation sur Google Maps ou VSCode
- Home Assistant. Installer le snap sur NAS Synology sur une machine virtuelle Ubuntu
Avez-vous aimé cet article ?