Luka Code

Lisolo 35: Kosalela senseur ya température HTU21D na Arduino

Lisolo 35: Kosalela senseur ya température HTU21D na Arduino

Litho 35: Kosalela ya HTU21D ya Temperature na Arduino

Na lithuto lena, to koyekola mokemoke kosalela sensor ya température ya HTU21D na Arduino. Sensor oyo epesaka posibilité ya komeka température mpe humidité na nguya ya I2C, oyo esalaka ete ezala pete na kosangisa na ba projets ndenge na ndenge. Na suka ya lithuto oyo, okoka kotanga ba valeurs ya température mpe humidité longwa na sensor mpe komonisa yango na Serial Monitor.

HTU21D module

Na projet oyo, to kosalela bibliothèque ya Adafruit, oyo epesaka nzela pete ya kosolola na sensor ya HTU21D. Okoyekola ndenge ya kosala câblage, kokoma code, mpe kososola ba identifiants ya ntina oyo esalelami na programme. Soki osengeli na ndimbola na eteni nionso ya processus, okoki kotala vidéo (na vidéo na 0:00).

Matériel ya kolimbolama

HTU21D ezali sensor ya numérique ya humidité mpe température. Esalaka na voltage kati na 1.5V mpe 3.6V, oyo esalaka ete ekoka mpo na ba systèmes ya 3.3V mpe 5V. Sensor esololaka na I2C, esengaka kaka ba fils mibale mpo na kopesa ba données: Serial Data Line (SDA) mpe Serial Clock Line (SCL). Sensor ezali na consommation ya courant ya moke, esalelaka kaka 0.02 µA ntango ezali na pemi mpe kino 450 µA ntango ezali komeka.

Na ngambo ya sensor, okosengela carte ya Arduino mpe ba fils ya jumper mpo na kosangisa nyonso. Ba connexions ezali pete: pesa sensor courant, sangisa ba lignes ya données, mpe okomi prêt. Tika ete ba connexions na yo ezala ya libende mpo na kokima ba problèmes ya communication.

Ba Détails ya Datasheet

Fabricant TE Connectivity
Numéro ya partie HTU21D-F
Voltage ya logique/IO 1.5 - 3.6 V
Voltage ya alimentation 3.3 V
Courant ya sortie (typique) 0.02 µA (pemi), 450 µA (actif)
Intervalle ya température -40 kino +125 °C
Intervalle ya humidité 0 kino 100 % RH
Résolution (température) 0.01 °C
Résolution (humidité) 0.04 % RH
Paquet DFN-8

 

  • Kokisa ete voltage ya alimentation ezala ya malamu (1.5 - 3.6 V) mpo na kokima kobebisa.
  • Salela ba résistances ya pull-up na ba lignes SDA mpe SCL soki esengeli.
  • Kokisa ba fils ya mokuse mpo na kokitisa bruit na communication I2C.
  • Vérifier ba connexions na likebi mpo na kokima ba entrées ya libende.
  • Salela dissipateur ya chaleur soki ozali kosala pembeni ya ba limites ya température ya maximum.

Ba Instructions ya Câblage

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

Mpo na kosangisa sensor ya HTU21D na Arduino na yo, banda na kosangisa ba pins ya courant. Sangisa pin ya gauche ya sensor na sortie ya 3.3V na Arduino. Pin ya mibale esengeli kosangisama na terre (GND). Na nsima, sangisa pin ya SDA ya sensor na pin A4 ya Arduino, oyo esalaka lokola ligne ya données mpo na communication I2C. Na suka, sangisa pin ya SCL ya sensor na pin A5 na Arduino, oyo esalaka lokola ligne ya horloge. Tika ete ba connexions nyonso ezala ya libende mpo na kobatela communication ya malamu.

Soki ozali kosalela carte mosusu, ba pins ya SDA mpe SCL ekoki kobongwana, boye tala ba spécifications ya carte na yo. Na vidéo, ba options mosusu ya câblage etalemi mokuse (na vidéo na 1:30).

Ba Exemples ya Code & Explication

Tokotala sik’oyo code oyo esalelaka sensor ya HTU21D. Liboso, tosengeli kosangisa ba bibliothèques ya ntina mpo na communication I2C mpe sensor ya HTU21D. Eteni oyo elandaka elakisi fonction ya setup:

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

Awa, tobandisaka Serial Monitor na taux ya baud ya 9600. Na nsima, tosengaka ete sensor ebandisama na htu.begin(). Soki sensor ezwami te, programme ekomaka message ya erreur mpe ekosepelaka.

Na nsima, to tangaka ba valeurs ya température mpe humidité na boucle:

void loop() {
    float temp = htu.readTemperature();
    float rel_hum = htu.readHumidity();
    Serial.print("Temperature: "); Serial.print(temp); Serial.println(" C");
    Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
    delay(500);
}

Na boucle oyo, to tangaka température na htu.readTemperature() mpe tobulukaka yango na variable temp. Na ndenge moko, to tangaka humidité na htu.readHumidity(). Ba valeurs yango ekomamaka na Serial Monitor na ntango nyonso ya 500 millisecondes.

Mpo na ndenge ya kosala oyo ezali ya kolandama, okoki kosala ba fonctions mpo na kosimba ba lectures. Code ya mobimba ekozala na se ya article oyo, mpe epesaka yo accès ya mobimba na ba fonctionnalités nyonso oyo etalemi.

Démonstration / Nini Okoki Kozela

Ntango okotia code na Arduino na yo mpe ofungoli Serial Monitor, osengeli komona ba lectures ya température mpe humidité na ntango nyonso. Ba valeurs ekobongwana na ntango nyonso ya ndambo ya seconde. Soki sensor emoni température oyo eleki limite ya maximum ya 125 °C, ekoki kolakisa zéro to ba valeurs ya mabe. Oyo ezali likambo ya mbala mingi ya kotalela na ntango ya test (na vidéo na 4:30).

Ba Timestamps ya Vidéo

  • [00:00] Introduction
  • [00:22] Aperçu ya Sensor
  • [01:22] Révision ya Datasheet
  • [02:28] Câblage
  • [03:03] Installation ya Bibliothèque
  • [04:05] Explication ya Code (Partie 1)
  • [08:33] Explication ya Code (Partie 2)
  • [07:34] Démonstration ya Mbala Moko

Images

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
212-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic)
Langue: C++
++
/***************************************************
  This is an example for the HTU21D-F Humidity & Temperature Sensor

  Designed specifically to work with the HTU21D-F sensor from Adafruit
  ----> https://www.adafruit.com/products/1899

  These module use I2C to communicate; 2 pins are required to
  interface
 ****************************************************/

#include <Wire.h>
#include "Adafruit_HTU21DF.h"

// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)

Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)

void setup() {
  Serial.begin(9600);
  Serial.println("HTU21D-F test for two modules");

  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

void loop() {
	//get value for sensor 1
    float temp1 = htu1.readTemperature();
    float rel_hum1 = htu1.readHumidity();

	//get value for sensor 2
    float temp2 = htu2.readTemperature();
    float rel_hum2 = htu2.readHumidity();	

	//get value for sensor 3
    float temp3 = htu3.readTemperature();
    float rel_hum3 = htu3.readHumidity();	
	
	//print values for sensor 1
    Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
    Serial.print("\t\t");
    Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");

	//print values for sensor 2
    Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
    Serial.print("\t\t");
    Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");	
	
	//print values for sensor 3
    //Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
    //Serial.print("\t\t");
    //Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");	
	
    delay(500);
}

Nko o na nki.

Mokili na bisika

Fichiers📁

Maktabat ya Arduino (zip)