Wa Koodu

Ẹkọ 35: Lílo HTU21D Sensor Ìwọ̀n-otútù pẹ̀lú Arduino

Ẹkọ 35: Lílo HTU21D Sensor Ìwọ̀n-otútù pẹ̀lú Arduino

Ẹkọ 35: Lílo HTU21D Sensa Igbóná pẹ̀lú Arduino

Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe lè so HTU21D sensa igbóná pọ̀ mọ́ Arduino. Sensa yìí máa ń jẹ́ kí a lè wọn igbóná àti ọ̀rinrin pẹ̀lú ìlànà I2C, èyí tí ó mú kí ó rọrùn láti fi sínú àwọn iṣẹ́ oríṣiríṣi. Nígbà tí ẹ̀kọ́ yìí bá parí, ìwọ yóò lè ka àwọn iye igbóná àti ọ̀rinrin láti inú sensa kí o sì fi wọ́n hàn lórí Serial Monitor.

HTU21D module

Fún iṣẹ́ yìí, a óò lo Adafruit library, èyí tí ó pèsè ọ̀nà tí ó rọrùn láti bá HTU21D sensa sọ̀rọ̀. Ìwọ yóò kọ́ bí a ṣe ń tò àwọn okun, kọ kóòdù, àti láti lóye àwọn ohun pàtàkì tí a lò nínú ètò náà. Bí o bá nílò ìpàlápàlà lórí apá kan nínú ìlànà náà, o lè wo fídíò náà (nínú fídíò ní 0:00).

Ohun Èlò Tí A Ṣàlàyé

HTU21D jẹ́ sensa oní nọ́ńbà fún ọ̀rinrin àti igbóná. Ó ń ṣiṣẹ́ lórí ìwọ̀n foltije 1.5V sí 3.6V, èyí tí ó mú kí ó bá 3.3V àti 5V mu. Sensa náà ń bá I2C sọ̀rọ̀, tí ó nílò okun méjì péré fún gbígbé data: Serial Data Line (SDA) àti Serial Clock Line (SCL). Sensa náà kò lo agbára púpọ̀, ó ń lo 0.02 µA péré nígbà tí kò bá ṣiṣẹ́ àti títí di 450 µA nígbà tí ó bá ń wọn.

Yàtọ̀ sí sensa náà, ìwọ yóò nílò Arduino board àti àwọn jumper wires láti so gbogbo rẹ̀ pọ̀. Àwọn ìsopọ̀ náà rọrùn: fún sensa náà ní agbára, so àwọn okun data pọ̀, ìwọ ti ṣetán. Rí i dájú pé àwọn ìsopọ̀ rẹ ṣinṣin láti yẹra fún àwọn ìṣòro ìbánisọ̀rọ̀.

Àwọn Àlàyé Nínú Datasheet

Olùṣe TE Connectivity
Nọ́ńbà apá HTU21D-F
Foltiye Logic/IO 1.5 - 3.6 V
Foltiye ìpèsè 3.3 V
Ìwọ̀n ìjàde (nígbà tí ó bá wọ́pọ̀) 0.02 µA (nígbà tí kò ṣiṣẹ́), 450 µA (nígbà tí ó ń ṣiṣẹ́)
Ìwọ̀n igbóná -40 sí +125 °C
Ìwọ̀n ọ̀rinrin 0 sí 100 % RH
Ìpinnu (igbóná) 0.01 °C
Ìpinnu (ọ̀rinrin) 0.04 % RH
Àpótí DFN-8

 

  • Rí i dájú pé foltiye ìpèsè tọ́ (1.5 - 3.6 V) láti yẹra fún ìbàjẹ́.
  • Lo àwọn pull-up resistors lórí àwọn okun SDA àti SCL bí ó bá pọn dandan.
  • Jẹ́ kí àwọn okun kúrú láti dín àríyànjiyàn kù nínú ìbánisọ̀rọ̀ I2C.
  • Ṣàyẹ̀wò àwọn ìsopọ̀ dáradára láti yẹra fún àwọn ohun tí kò ní ìsopọ̀.
  • Lo heat sink bí o bá ń ṣiṣẹ́ nítòsí àwọn ìwọ̀n igbóná tí ó ga jùlọ.

Àwọn Ìtọ́nisọ́nà Ìsopọ̀

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

Láti so HTU21D sensa pọ̀ mọ́ Arduino rẹ, bẹ̀rẹ̀ nípa sísopọ̀ àwọn okun agbára. So okun òsì ti sensa náà pọ̀ mọ́ 3.3V tí ó wà lórí Arduino. Okun kejì yẹ kí ó so pọ̀ mọ́ ilẹ̀ (GND). Nígbà tí ó yá, so okun SDA ti sensa pọ̀ mọ́ pin A4 ti Arduino, èyí tí ó jẹ́ okun data fún ìbánisọ̀rọ̀ I2C. Níkẹyìn, so okun SCL ti sensa pọ̀ mọ́ pin A5 lórí Arduino, èyí tí ó jẹ́ okun aago. Rí i dájú pé gbogbo àwọn ìsopọ̀ ṣinṣin láti mú ìbánisọ̀rọ̀ gbígbàṣe.

Bí o bá ń lo board mìíràn, àwọn pin SDA àti SCL lè yàtọ̀, nítorí náà ṣàyẹ̀wò àwọn ìwé ìtọ́nisọ́nà board rẹ. Nínú fídíò náà, àwọn ọ̀nà ìsopọ̀ mìíràn ni a jíròrò ní ṣókí (nínú fídíò ní 1:30).

Àwọn Àpẹẹrẹ Kóòdù & Ìṣàlàyé

A óò wo kóòdù tí ó ń bá HTU21D sensa sọ̀rọ̀ nísinsin yìí. Kọ́kọ́rẹ̀, a nílò láti fi àwọn library tí a nílò fún ìbánisọ̀rọ̀ I2C àti HTU21D sensa sí inú. Àpẹẹrẹ tí ó tẹ̀le yìí fi ìṣiṣẹ́ setup hàn:

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

Níbí, a bẹ̀rẹ̀ Serial Monitor ní ìwọ̀n baud 9600. A sì gbìyànjú láti bẹ̀rẹ̀ sensa náà pẹ̀lú htu.begin(). Bí a kò bá rí sensa náà, ètò náà yóò tẹ̀ ìròyìn àṣìṣe jáde kí ó sì dúró.

Nígbà tí ó yá, a ń ka àwọn iye igbóná àti ọ̀rinrin nígbà gbogbo nínú ìṣiṣẹ́ loop:

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);
}

Nínú loop yìí, a ń ka igbóná pẹ̀lú htu.readTemperature() kí a sì fi sí inú àṣàyàn temp. Bákan náà, a ń ka ọ̀rinrin pẹ̀lú htu.readHumidity(). Àwọn iye náà ni a sì ń tẹ̀ jáde sí Serial Monitor ní gbogbo 500 milliseconds.

Fún ọ̀nà tí ó ṣètò dáradára, o lè ṣàlàyé àwọn ìṣiṣẹ́ láti mú àwọn ìwọ̀n náà. Kóòdù kíkún yóò gbé sílẹ̀ lábẹ́ àpilẹ̀kọ yìí, tí yóò fún ọ ní ààyè kíkún sí gbogbo àwọn iṣẹ́ tí a jíròrò.

Ìfihàn / Ohun Tí O Lè Retí

Nígbà tí o bá gbé kóòdù náà sí inú Arduino rẹ kí o sì ṣí Serial Monitor, o yẹ kí o rí àwọn ìwọ̀n igbóná àti ọ̀rinrin nígbà gbogbo. Àwọn iye náà yóò máa yípadà ní gbogbo idaji ìṣẹ́jú kan. Bí sensa náà bá rí àwọn igbóná tí ó ju ìwọ̀n tí ó ga jùlọ 125 °C lọ, ó lè fi òdo tàbí àwọn iye tí kò tọ́ hàn. Èyí jẹ́ ìṣòro tí a sábà máa ń rí nígbà ìdánwò (nínú fídíò ní 4:30).

Àwọn Àkókò Nínú Fídíò

  • [00:00] Ìfihàn
  • [00:22] Ìwòye Sensa
  • [01:22] Àtúnyẹ̀wò Datasheet
  • [02:28] Ìsopọ̀
  • [03:03] Fífi Library Sọ̀rọ̀
  • [04:05] Ìṣàlàyé Kóòdù (Apá 1)
  • [08:33] Ìṣàlàyé Kóòdù (Apá 2)
  • [07:34] Ìfihàn Láàyè

Aworan

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)
Ede: 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);
}

Ohun ti o le nilo

Orisun & itọkasi

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)