Bincika Lambar

Darasi na 35: Yin amfani da na'urar zafin jiki ta HTU21D tare da Arduino

Darasi na 35: Yin amfani da na'urar zafin jiki ta HTU21D tare da Arduino

Darasi na 35: Yin Amfani da Na'urar Zazzabi ta HTU21D tare da Arduino

A cikin wannan koyarwar, za mu koyi yadda ake haɗa na'urar zazzabi ta HTU21D da Arduino. Wannan na'urar tana ba da damar auna zazzabi da danshi daidai ta amfani da sadarwar I2C, wanda ke sauƙaƙa haɗawa cikin ayyuka daban-daban. A ƙarshen wannan darasi, za ku iya karanta ƙimar zazzabi da danshi daga na'urar kuma ku nuna su a kan Serial Monitor.

HTU21D module

Don wannan aikin, za mu yi amfani da ɗakin karatu na Adafruit, wanda ke ba da hanya mai sauƙi don sadarwa da na'urar HTU21D. Za ku koyi yadda ake saita wayoyi, rubuta lambar, da fahimtar mahimman alamomin da aka yi amfani da su a cikin shirin. Idan kuna buƙatar ƙarin bayani kan kowane ɓangare na tsari, kuna iya koma ga bidiyon (a cikin bidiyo a 0:00).

Bayanin Kayan Aiki

HTU21D na'urar auna danshi da zazzabi ce ta dijital. Tana aiki a kan kewayon wutar lantarki na 1.5V zuwa 3.6V, wanda ya dace da tsarin 3.3V da 5V. Na'urar tana sadarwa ta I2C, tana buƙatar wayoyi biyu kawai don canja wurin bayanai: Serial Data Line (SDA) da Serial Clock Line (SCL). Na'urar tana da ƙarancin amfani da wutar lantarki, tana ɗaukar 0.02 µA kawai lokacin da ba ta aiki ba kuma har zuwa 450 µA yayin aunawa.

Baya ga na'urar, za ku buƙaci allo na Arduino da wasu wayoyi masu haɗawa don haɗa komai. Haɗin suna da sauƙi: ba da wutar lantarki ga na'urar, haɗa layukan bayanai, kuma kun shirya. Tabbatar cewa haɗinku suna da ƙarfi don guje wa matsalolin sadarwa.

Cikakkun Bayanai na Datasheet

Mai Ƙirƙira TE Connectivity
Lambar sashi HTU21D-F
Wutar Logic/IO 1.5 - 3.6 V
Wutar samarwa 3.3 V
Fitar wutar (na yau da kullun) 0.02 µA (lokacin hutu), 450 µA (lokacin aiki)
Kewayon zazzabi -40 zuwa +125 °C
Kewayon danshi 0 zuwa 100 % RH
Ƙimar auna (zazzabi) 0.01 °C
Ƙimar auna (danshi) 0.04 % RH
Kunshin DFN-8

 

  • Tabbatar da ingantaccen wutar samarwa (1.5 - 3.6 V) don guje wa lalacewa.
  • Yi amfani da resistors masu ɗagawa akan layukan SDA da SCL idan ya cancanta.
  • Ka tsare wayoyi su kasance gajeru don rage hayaniya a sadarwar I2C.
  • Bincika haɗin a hankali don guje wa shigarwar da ba ta da tushe.
  • Yi amfani da abin rarraba zafi idan kuna aiki kusa da iyakar zazzabi mafi girma.

Umarnin Haɗa Wayoyi

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

Don haɗa na'urar HTU21D zuwa Arduino, fara da haɗa fil ɗin wutar lantarki. Haɗa fil ɗin hagu na na'urar zuwa fitar 3.3V akan Arduino. Fil na biyu ya kamata a haɗa shi da ƙasa (GND). Na gaba, haɗa fil ɗin SDA na na'urar zuwa fil ɗin A4 na Arduino, wanda ke aiki azaman layin bayanai don sadarwar I2C. A ƙarshe, haɗa fil ɗin SCL na na'urar zuwa fil ɗin A5 akan Arduino, wanda ke aiki azaman layin agogo. Tabbatar cewa duk haɗin suna da ƙarfi don kiyaye sadarwa mai dogaro.

Idan kuna amfani da wani allo daban, fil ɗin SDA da SCL na iya bambanta, don haka duba ƙayyadaddun allo ɗinku. A cikin bidiyon, an tattauna zaɓuɓɓukan haɗin wayoyi daban-daban a taƙaice (a cikin bidiyo a 1:30).

Misalan Lamba & Bayani

Yanzu za mu duba lambar da ke sadarwa da na'urar HTU21D. Da farko, muna buƙatar haɗa ɗakunan karatu masu dacewa don sadarwar I2C da na'urar HTU21D. Wannan ɓangaren da ke gaba yana nuna aikin saitin:

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Ba a sami na'urar ba!");
    while (1);
  }
}

A nan, muna fara Serial Monitor a ƙimar baud na 9600. Sannan muna ƙoƙarin fara na'urar da htu.begin(). Idan ba a sami na'urar ba, shirin zai buga saƙon kuskure kuma ya tsaya.

Na gaba, muna ci gaba da karanta ƙimar zazzabi da danshi a cikin aikin madauki:

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

A cikin wannan madauki, muna karanta zazzabi ta amfani da htu.readTemperature() kuma mu adana shi a cikin ma'aunin temp. Hakazalika, muna karanta danshi da htu.readHumidity(). Ana buga ƙimar zuwa Serial Monitor kowane milisakanci 500.

Don ingantacciyar hanya, kuna iya ayyana ayyuka don sarrafa karatun. Cikakken lambar zai ɗora a ƙarƙashin wannan labarin, yana ba ku cikakken damar yin amfani da duk ayyukan da aka tattauna.

Nuni / Abin da Za Ku Yi Tsammani

Lokacin da kuka ɗora lambar zuwa Arduino kuma ku buɗe Serial Monitor, ya kamata ku ga ci gaba da karatun zazzabi da danshi. Ƙimar za su sabunta kowane rabin daƙiƙa. Idan na'urar ta gano zazzabi sama da iyakar mafi girma na 125 °C, tana iya nuna sifili ko ƙimar kuskure. Wannan matsala ce ta gama gari da za a kula da ita yayin gwaji (a cikin bidiyo a 4:30).

Lokutan Bidiyo

  • [00:00] Gabatarwa
  • [00:22] Bayanin Na'urar
  • [01:22] Binciken Datasheet
  • [02:28] Haɗa Wayoyi
  • [03:03] Shigar da ɗakin karatu
  • [04:05] Bayanin Lamba (Kashi na 1)
  • [08:33] Bayanin Lamba (Kashi na 2)
  • [07:34] Nuni na Kai Tsaye

Hotuna

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

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Littattafan Arduino (zip)