குறியீட்டை தேடு

பாடம் 35: Arduino உடன் HTU21D வெப்பநிலை சென்சாரைப் பயன்படுத்துதல்

பாடம் 35: Arduino உடன் HTU21D வெப்பநிலை சென்சாரைப் பயன்படுத்துதல்

பாடம் 35: Arduino உடன் HTU21D வெப்பநிலை சென்சாரைப் பயன்படுத்துதல்

இந்த பயிற்சியில், HTU21D வெப்பநிலை சென்சாரை Arduino உடன் இணைப்பது எப்படி என்பதைக் கற்றுக்கொள்வோம். இந்த சென்சார் I2C தொடர்பைப் பயன்படுத்தி வெப்பநிலை மற்றும் ஈரப்பதத்தை துல்லியமாக அளவிட அனுமதிக்கிறது, இது பல்வேறு திட்டங்களில் எளிதாக ஒருங்கிணைக்க உதவுகிறது. இந்த பாடத்தின் முடிவில், சென்சாரிலிருந்து வெப்பநிலை மற்றும் ஈரப்பத மதிப்புகளைப் படித்து, அவற்றை Serial Monitor இல் காண்பிக்க முடியும்.

HTU21D module

இந்த திட்டத்திற்கு, HTU21D சென்சாருடன் தொடர்புகொள்வதற்கான எளிய வழியை வழங்கும் Adafruit நூலகத்தைப் பயன்படுத்துவோம். வயரிங் அமைப்பது, குறியீட்டை எழுதுவது மற்றும் நிரலில் பயன்படுத்தப்படும் முக்கிய அடையாளங்காட்டிகளைப் புரிந்துகொள்வது எப்படி என்பதை நீங்கள் கற்றுக்கொள்வீர்கள். செயல்முறையின் எந்தப் பகுதியிலும் தெளிவு தேவைப்பட்டால், வீடியோவைப் பார்க்கலாம் (வீடியோவில் 0:00 இல்).

வன்பொருள் விளக்கம்

HTU21D என்பது டிஜிட்டல் ஈரப்பதம் மற்றும் வெப்பநிலை சென்சார் ஆகும். இது 1.5V முதல் 3.6V வரையிலான மின்னழுத்த வரம்பில் செயல்படுகிறது, இது 3.3V மற்றும் 5V அமைப்புகளுக்கு ஏற்றதாக அமைகிறது. சென்சார் I2C மூலம் தொடர்பு கொள்கிறது, தரவு பரிமாற்றத்திற்கு இரண்டு கம்பிகள் மட்டுமே தேவை: Serial Data Line (SDA) மற்றும் Serial Clock Line (SCL). சென்சார் மிகக் குறைந்த மின்சாரத்தைப் பயன்படுத்துகிறது, செயலற்ற நிலையில் 0.02 µA மற்றும் அளவீடுகளின் போது 450 µA வரை மட்டுமே எடுக்கிறது.

சென்சாரைத் தவிர, உங்களுக்கு ஒரு Arduino பலகை மற்றும் அனைத்தையும் இணைக்க சில ஜம்பர் கம்பிகள் தேவைப்படும். இணைப்புகள் எளிமையானவை: சென்சாருக்கு மின்சாரம் வழங்கவும், தரவு கோடுகளை இணைக்கவும், நீங்கள் தயார். தொடர்பு சிக்கல்களைத் தவிர்க்க உங்கள் இணைப்புகள் பாதுகாப்பாக இருப்பதை உறுதிசெய்யவும்.

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர் TE Connectivity
பகுதி எண் HTU21D-F
லாஜிக்/IO மின்னழுத்தம் 1.5 - 3.6 V
வழங்கல் மின்னழுத்தம் 3.3 V
வெளியீட்டு மின்னோட்டம் (வழக்கமான) 0.02 µA (செயலற்றது), 450 µA (செயலில்)
வெப்பநிலை வரம்பு -40 முதல் +125 °C
ஈரப்பத வரம்பு 0 முதல் 100 % RH
தெளிவுத்திறன் (வெப்பநிலை) 0.01 °C
தெளிவுத்திறன் (ஈரப்பதம்) 0.04 % RH
பேக்கேஜ் DFN-8

 

  • சேதத்தைத் தவிர்க்க சரியான மின்சார வழங்கல் மின்னழுத்தத்தை (1.5 - 3.6 V) உறுதிசெய்யவும்.
  • தேவைப்பட்டால் SDA மற்றும் SCL கோடுகளில் புல்-அப் மின்தடையங்களைப் பயன்படுத்தவும்.
  • I2C தொடர்பில் இரைச்சலைக் குறைக்க வயரிங்கை குறுகியதாக வைத்திருக்கவும்.
  • மிதக்கும் உள்ளீடுகளைத் தவிர்க்க இணைப்புகளை கவனமாக சரிபார்க்கவும்.
  • அதிகபட்ச வெப்பநிலை வரம்புகளுக்கு அருகில் இயங்கினால் ஹீட் சிங்கைப் பயன்படுத்தவும்.

வயரிங் வழிமுறைகள்

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

HTU21D சென்சாரை உங்கள் Arduino உடன் இணைக்க, மின்சார பின்களை இணைப்பதன் மூலம் தொடங்கவும். சென்சாரின் இடது பின்னை Arduino இன் 3.3V வெளியீட்டுடன் இணைக்கவும். இரண்டாவது பின்னை தரை (GND) உடன் இணைக்க வேண்டும். அடுத்து, சென்சாரின் SDA பின்னை Arduino இன் A4 பின்னுடன் இணைக்கவும், இது I2C தொடர்புக்கான தரவு வரியாக செயல்படுகிறது. இறுதியாக, சென்சாரின் SCL பின்னை Arduino இன் A5 பின்னுடன் இணைக்கவும், இது கடிகார வரியாக செயல்படுகிறது. நம்பகமான தொடர்பை பராமரிக்க அனைத்து இணைப்புகளும் பாதுகாப்பாக இருப்பதை உறுதிசெய்யவும்.

நீங்கள் வேறு பலகையைப் பயன்படுத்தினால், SDA மற்றும் SCL பின்கள் மாறுபடலாம், எனவே உங்கள் பலகையின் விவரக்குறிப்புகளை சரிபார்க்கவும். வீடியோவில், மாற்று வயரிங் விருப்பங்கள் சுருக்கமாக விவாதிக்கப்படுகின்றன (வீடியோவில் 1:30 இல்).

குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்

HTU21D சென்சாருடன் தொடர்பு கொள்ளும் குறியீட்டை இப்போது பார்ப்போம். முதலில், I2C தொடர்பு மற்றும் HTU21D சென்சாருக்கு தேவையான நூலகங்களைச் சேர்க்க வேண்டும். பின்வரும் பகுதி setup செயல்பாட்டைக் காட்டுகிறது:

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

இங்கே, Serial Monitor ஐ 9600 பாட் வீதத்தில் தொடங்குகிறோம். பின்னர் htu.begin() மூலம் சென்சாரை தொடங்க முயற்சிக்கிறோம். சென்சார் கண்டறியப்படாவிட்டால், நிரல் பிழை செய்தியை அச்சிட்டு நிறுத்தப்படும்.

அடுத்து, 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);
}

இந்த loop இல், htu.readTemperature() ஐப் பயன்படுத்தி வெப்பநிலையைப் படித்து temp மாறியில் சேமிக்கிறோம். இதேபோல், htu.readHumidity() மூலம் ஈரப்பதத்தைப் படிக்கிறோம். மதிப்புகள் ஒவ்வொரு 500 மில்லி விநாடிகளுக்கும் Serial Monitor இல் அச்சிடப்படுகின்றன.

மேலும் கட்டமைக்கப்பட்ட அணுகுமுறைக்கு, அளவீடுகளை கையாள செயல்பாடுகளை வரையறுக்கலாம். முழு குறியீடு இந்த கட்டுரைக்கு கீழே ஏற்றப்படும், இது விவாதிக்கப்பட்ட அனைத்து செயல்பாடுகளுக்கும் முழு அணுகலை உங்களுக்கு வழங்குகிறது.

நிரூபணம் / என்ன எதிர்பார்க்கலாம்

குறியீட்டை உங்கள் Arduino க்கு பதிவேற்றி Serial Monitor ஐ திறக்கும்போது, வெப்பநிலை மற்றும் ஈரப்பதத்தின் தொடர்ச்சியான அளவீடுகளை நீங்கள் காண வேண்டும். மதிப்புகள் ஒவ்வொரு அரை விநாடிக்கும் புதுப்பிக்கப்படும். சென்சார் அதன் அதிகபட்ச வரம்பான 125 °C க்கு மேல் வெப்பநிலையை கண்டறிந்தால், அது பூஜ்ஜியம் அல்லது தவறான மதிப்புகளைக் காட்டலாம். சோதனையின் போது கவனிக்க வேண்டிய பொதுவான ஆபத்து இதுவாகும் (வீடியோவில் 4:30 இல்).

வீடியோ நேர முத்திரைகள்

  • [00:00] அறிமுகம்
  • [00:22] சென்சார் கண்ணோட்டம்
  • [01:22] டேட்டாஷீட் மதிப்பாய்வு
  • [02:28] வயரிங்
  • [03:03] நூலக நிறுவல்
  • [04:05] குறியீடு விளக்கம் (பகுதி 1)
  • [08:33] குறியீடு விளக்கம் (பகுதி 2)
  • [07:34] நேரடி நிரூபணம்

படங்கள்

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)
மொழி: 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);
}

நீங்கள் தேவைப்படும் எண்ணங்கள்

வளங்கள் மற்றும் மேற்கோள்கள்

கோப்புகள்📁

ஆர்டினோ நூலகங்கள் (ஜிப்)