Accueil > Arduino, NodeMCU > Capteur de température et d’humidité SHT21

Capteur de température et d’humidité SHT21

Après avoir écrit une librairie pour la gestion du capteur de température et d’humidité SHT21 en Micropython, je vous livre une librairie écrite pour l’Arduino.

La librairie permet de :

– Lire l’état de l’alimentation du capteur.

– Lire la température et l’humidité.

– Lire la résolution du capteur.

– Configurer la résolution du capteur.

Le lien pour télécharger la librairie est le suivant :

https://github.com/itechnofrance/Arduino/tree/master/librairies/sht21

Voici un exemple d’utilisation de la librairie :

/*
* Programme qui permet d’afficher la température et l’humidité à partir du capteur SHT21 sur écran OLED
* Matériel :
*        NODEMCU V1.0 DEV Kit
*        OLED SSD1306
*        capteur de température SHT21
*       
* Auteur : iTechnoFrance
*/

// Ajout librairie gestion OLED, I2C, SHT21
#include <Wire.h> 
#include "SSD1306.h"
#include <sht21.h> 

sht21 SHT21;  // création d’une instance pour le capteur SHT21

// Déclaration de l’afficheur OLED via I2C
// D1 -> SDA -> GPIO5
// D2 -> SCL -> GPIO4
SSD1306  display(0x3c, D1, D2);

float temperature;
float humidite;
char str[10]; // permet la transformation float vers char

void setup()
{
  Serial.begin(115200);
  display.init(); // initialise l’afficheur
  display.flipScreenVertically(); // inverse l’affichage
  display.setFont(ArialMT_Plain_10);
  display.clear();
  SHT21.begin(D1, D2);  // initialise la librairie SHT21 pour une utilisation NodeMCU Lolin
}

void affiche_oled()
{
  display.clear();
  display.drawString(0, 0, "Température :");
  display.drawString(70, 0, dtostrf(temperature, 5, 1, str));
  display.drawString(95, 0, "°C");
  display.drawString(0, 10, "Humidité :");
  display.drawString(70, 10, dtostrf(humidite, 5, 1, str));
  display.drawString(95, 10, "%");
  if (humidite < 40) { display.drawString(0, 30, "Air trop sec"); }
  if (humidite > 60) { display.drawString(0, 30, "Air trop humide"); }
  display.display(); // affichage
}

void erreur_oled()
{
  display.clear();
  display.drawString(0, 0, "Erreur CRC");
  display.display(); // affichage
}

void loop()
{
  temperature = SHT21.lecture_temperature();  // récupère la température
  humidite = SHT21.lecture_humidite();  // récupère l’humidité relative
  if ((temperature == -1) or (humidite == -1)) { erreur_oled(); }
  else { affiche_oled(); }
  delay(1000);
}

Catégories :Arduino, NodeMCU Étiquettes : , , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :