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

பாடம் 20/31: DHT11 இலிருந்து வெப்பநிலை மற்றும் ஈரப்பதத்தை LCD திரையில் காண்பித்தல்

பாடம் 20/31: DHT11 இலிருந்து வெப்பநிலை மற்றும் ஈரப்பதத்தை LCD திரையில் காண்பித்தல்

இந்த டுடோரியல், DHT11 வெப்பநிலை மற்றும் ஈரப்பதம் சென்சாரை I2C-இயக்கப்பட்ட LCD1602 டிஸ்ப்ளேவுடன் இணைத்து, ஒரு சிறிய சுற்றுச்சூழல் கண்காணிப்பு நிலையத்தை உருவாக்குவதை நிரூபிக்கிறது. சீரியல் மானிட்டரில் இருந்து மூல சென்சார் தரவைப் படிப்பதற்குப் பதிலாக, 16x2 எழுத்துத் திரையில் நேரடி வெப்பநிலை மற்றும் ஈரப்பத அளவீடுகளைக் காண்பிப்பதை நீங்கள் கற்றுக்கொள்வீர்கள். இந்த திட்டம் டெஸ்க்டாப் வானிலை நிலையம், சிறிய கிரீன்ஹவுஸ் மானிட்டர் அல்லது எந்த வீட்டு ஆட்டோமேஷன் திட்டத்திற்கும் உள்ளூர் ரீட்அவுட்டைச் சேர்ப்பதற்கு ஏற்றது. I2C இடைமுகம் வயரிங்கை எளிதாக்குகிறது, இதனால் தொடக்கநிலையாளர்களுக்கு அணுகக்கூடிய திட்டமாகவும், அனுபவம் வாய்ந்த தயாரிப்பாளர்களுக்கு விரைவான சேர்ப்பாகவும் உள்ளது.

LCD_sunFounder

இந்த அறிவைக் கொண்டு நீங்கள் உருவாக்கக்கூடிய சில நடைமுறை யோசனைகள் இங்கே:

  • தற்போதைய அறை நிலைமைகளைக் காட்டும் டெஸ்க்டாப் வானிலை நிலையம்.
  • ஊர்வன அல்லது தாவர டெர்ரேரியத்திற்கான சிறிய காட்சி.
  • சர்வர் அறை அல்லது பணிமனை சூழலுக்கான உள்ளூர் ரீட்அவுட்.
  • மிகவும் சிக்கலான வீட்டு ஆட்டோமேஷன் அமைப்பிற்கான அடிப்படை தொகுதி.

வன்பொருள் மற்றும் கூறுகள்

இந்த திட்டத்தை உருவாக்க, உங்களுக்கு பின்வரும் கூறுகள் தேவைப்படும்:

  • Arduino Uno (அல்லது இணக்கமான போர்டு)
  • I2C இடைமுக தொகுதியுடன் கூடிய LCD1602 டிஸ்ப்ளே
  • DHT11 வெப்பநிலை மற்றும் ஈரப்பதம் சென்சார்
  • 4.7kΩ அல்லது 10kΩ புல்-அப் மின்தடை (வெற்று DHT11 சென்சாரைப் பயன்படுத்தினால்)
  • ஜம்பர் கம்பிகள்
  • பிரெட்போர்டு (விருப்பம், எளிதான இணைப்புகளுக்கு)

I2C LCD1602 ஐப் புரிந்துகொள்வது

LCD1602 என்பது 16 நெடுவரிசைகள் மற்றும் 2 வரிசைகளைக் கொண்ட பொதுவான எழுத்து காட்சி ஆகும். டிஸ்ப்ளேவின் பின்புறத்தில் சாலிடர் செய்யப்பட்ட "I2C" தொகுதி அதன் எளிமைக்கு முக்கியமாகும். இந்த தொகுதி LCD இன் இணையான இடைமுகத்தை சீரியல் I2C இடைமுகமாக மாற்றுகிறது, இதற்கு தரவுக்கு இரண்டு கம்பிகள் (SDA மற்றும் SCL) மற்றும் மின்சக்திக்கு இரண்டு (VCC மற்றும் GND) மட்டுமே தேவை. இது உங்கள் Arduino இல் தேவையான பின்களின் எண்ணிக்கையை வெகுவாகக் குறைக்கிறது, மற்ற சென்சார்கள் மற்றும் ஆக்சுயேட்டர்களுக்கு அதிக இடத்தை விட்டுச்செல்கிறது. தொகுதியில் டிஸ்ப்ளேவின் மாறுபாட்டை சரிசெய்ய ஒரு சிறிய பொட்டென்டோமீட்டரும் உள்ளது, இது உரை தெரிவதை உறுதி செய்வதற்கு முக்கியமானது. தொகுதியின் I2C முகவரியை போர்டில் உள்ள சிறிய சாலிடர் ஜம்பர்களை (A0, A1, A2) பயன்படுத்தி மாற்றலாம், இதனால் பல I2C சாதனங்கள் ஒரே பஸ்ஸில் இணைந்து வாழ முடியும்.

வயரிங் வழிகாட்டி

LCD1602_wiring_DHT11_nopcb_bb

கீழே உள்ள வரைபடத்தில் காட்டப்பட்டுள்ளபடி கூறுகளை இணைக்கவும். I2C LCD Arduino இன் I2C பின்களைப் பயன்படுத்துகிறது, அதே நேரத்தில் DHT11 சென்சார் டிஜிட்டல் பின்னைப் பயன்படுத்துகிறது.

LCD1602-I2C க்கு:

  • VCC Arduino 5V உடன்
  • GND Arduino GND உடன்
  • SDA Arduino A4 உடன்
  • SCL Arduino A5 உடன்

DHT11 சென்சாருக்கு:

  • VCC (பின் 1) Arduino 5V உடன்
  • Data (பின் 2) Arduino டிஜிட்டல் பின் 2 உடன் (5V க்கு 10kΩ புல்-அப் மின்தடையுடன்)
  • NC (பின் 3) - இணைக்கப்படவில்லை
  • GND (பின் 4) Arduino GND உடன்

(வீடியோவில் 25:16 இல்)

லைப்ரரிகளை அமைத்தல்

இந்த திட்டத்திற்கு இரண்டு லைப்ரரிகள் தேவை. Wire.h லைப்ரரி நிலையான Arduino நிறுவலின் ஒரு பகுதியாகும். LiquidCrystal_I2C லைப்ரரி மற்றும் dht11 லைப்ரரியை நீங்கள் நிறுவ வேண்டும். அவற்றை எவ்வாறு நிறுவுவது என்பதை வீடியோ நிரூபிக்கிறது. வீடியோ விளக்கத்தில் உள்ள இணைப்புகளிலிருந்து அல்லது Robojax இணையதளத்திலிருந்து லைப்ரரிகளைப் பதிவிறக்கலாம். பதிவிறக்கியதும், Arduino IDE இல் Sketch > Include Library > Add .ZIP Library... என்பதற்குச் சென்று பதிவிறக்கிய கோப்புகளைத் தேர்ந்தெடுத்து நிறுவலாம். (வீடியோவில் 06:16 இல்)

உங்கள் LCD இன் I2C முகவரியைக் கண்டறிதல்

டிஸ்ப்ளேவைப் பயன்படுத்துவதற்கு முன், அதன் I2C முகவரியை நீங்கள் தீர்மானிக்க வேண்டும். மிகவும் பொதுவான முகவரி 0x27 அல்லது 0x3F ஆகும், ஆனால் அது மாறுபடலாம். அதைக் கண்டறிய, நீங்கள் I2C ஸ்கேனர் ஸ்கெட்ச்சைப் பயன்படுத்தலாம். இது I2C பஸ்ஸை ஸ்கேன் செய்து, கண்டறியும் எந்த முகவரிகளையும் சீரியல் மானிட்டருக்கு அறிவிக்கும் எளிய நிரலாகும். ஸ்கேனர் குறியீட்டைப் பதிவேற்றவும், 9600 பாட் வேகத்தில் சீரியல் மானிட்டரைத் திறக்கவும், அது உங்கள் LCD இன் முகவரியைக் காண்பிக்கும். (வீடியோவில் 08:11 இல்)

குறியீடு விளக்கம்

இந்த பகுதி குறியீட்டின் முக்கிய, பயனர்-கட்டமைக்கக்கூடிய பகுதிகளை விளக்குகிறது. முழு நிரல் கட்டுரைக்கு கீழே பதிவிறக்கத்திற்கு கிடைக்கிறது.

குறியீடு தேவையான லைப்ரரிகளைச் சேர்ப்பதன் மூலமும், பயன்படுத்தப்படும் பின்கள் மற்றும் பொருட்களை வரையறுப்பதன் மூலமும் தொடங்குகிறது.

// GetHub இலிருந்து ஹெடர் கோப்பு: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // DHT11 இன் பொருளை உருவாக்கவும்
#define dhtpin 2 // DHT11 உடன் இணைக்க பின்னை அமைக்கவும்

// LCD1602-I2C க்கான அமைப்புகளின் தொடக்கம்
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 16 எழுத்துகள் மற்றும் 2 வரி காட்சிக்கு LCD முகவரியை 0x3F ஆக அமைக்கவும்
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// LCD1602-I2C க்கான அமைப்புகளின் முடிவு

உங்கள் அமைப்பிற்கு கட்டமைக்க வேண்டிய மிக முக்கியமான வரிகள் இவை:

  • #define dhtpin 2: இது DHT11 சென்சாரின் தரவு பின்னுடன் இணைக்கப்பட்ட Arduino பின்னை வரையறுக்கிறது. நீங்கள் வேறு பின்னைப் பயன்படுத்தினால் 2 என்ற எண்ணை மாற்றவும்.
  • LiquidCrystal_I2C lcd(0x3F, 16, 2);: இந்த வரி LCD பொருளை உருவாக்குகிறது. முதல் அளவுரு, 0x3F, முந்தைய படியில் நீங்கள் கண்டறிந்த I2C முகவரியாகும். 16 மற்றும் 2 உங்கள் டிஸ்ப்ளேவின் நெடுவரிசைகள் மற்றும் வரிசைகளின் எண்ணிக்கையை வரையறுக்கின்றன. உங்கள் ஸ்கேனர் வேறு முகவரியைக் கண்டறிந்தால் (எ.கா., 0x27) முகவரியைப் புதுப்பிக்கவும்.

இந்த குறியீடு ஒரு தனிப்பயன் செயல்பாட்டைப் பயன்படுத்துகிறது, getTemp(), வெப்பநிலையைப் படித்து அதை வெவ்வேறு அலகுகளாக மாற்ற. இது ஒரு சக்திவாய்ந்த அம்சமாகும், இது குறியீட்டை வெவ்வேறு பயன்பாடுகளுக்கு மீண்டும் பயன்படுத்தக்கூடியதாக ஆக்குகிறது.

float getTemp(char type) {
    float temp = (float)DHT11.temperature;//வெப்பநிலையைப் பெறுக
  if(type =='F')
  {
    return temp * 1.8 + 32;// பாரன்ஹீட்டாக மாற்ற
  }else if(type =='K')
  {
    return temp + 274.15;// கெல்வினாக மாற்ற
  }else{
   return temp; 
  }  
}

இந்த செயல்பாட்டைப் பயன்படுத்த, நீங்கள் அதை விரும்பிய அலகைக் குறிக்கும் ஒற்றை எழுத்து வாதத்துடன் அழைக்கிறீர்கள். எடுத்துக்காட்டாக, getTemp('C') வெப்பநிலையை செல்சியஸில் திருப்பித் தருகிறது, getTemp('F') அதை பாரன்ஹீட்டில் திருப்பித் தருகிறது, மற்றும் getTemp('K') அதை கெல்வினில் திருப்பித் தருகிறது. செயல்பாடு DHT11 சென்சாரிலிருந்து மூல வெப்பநிலையைப் படித்து தேவையான மாற்று சூத்திரத்தைப் பயன்படுத்துகிறது. இது சென்சார் வாசிப்பு தர்க்கத்தை மீண்டும் எழுதாமல் முக்கிய loop() இல் காட்டப்படும் அலகை எளிதாக மாற்ற உங்களை அனுமதிக்கிறது. முக்கிய லூப் வெப்பநிலை மற்றும் ஈரப்பதத்தை LCD இல் lcd.setCursor() மற்றும் lcd.print() செயல்பாடுகளைப் பயன்படுத்தி அச்சிடுகிறது, இது திரையில் மதிப்புகள் எங்கு தோன்றும் என்பதைக் கட்டுப்படுத்துகிறது.

டிகிரி சின்னத்தைக் காட்டுதல்

நிலையான HD44780 LCD எழுத்து தொகுப்பில் அர்ப்பணிக்கப்பட்ட டிகிரி சின்னம் (°) இல்லை. அதைக் காட்ட, LCD இன் ROM இலிருந்து எழுத்தின் தசம மதிப்புடன் lcd.write() செயல்பாட்டைப் பயன்படுத்த வேண்டும். டிகிரி சின்னத்திற்கு, இந்த மதிப்பு 223 ஆகும். வெப்பநிலை மதிப்புக்குப் பிறகு சின்னத்தை அச்சிட lcd.print((char)223); ஐப் பயன்படுத்துவதன் மூலம் குறியீடு இதை நிரூபிக்கிறது. (வீடியோவில் 30:16 இல்)

நேரடி திட்ட ஆர்ப்பாட்டம்

குறியீடு பதிவேற்றப்பட்டவுடன், காட்சி ஒரு தொடக்க செய்தியைக் காண்பிக்கும், பின்னர் தற்போதைய வெப்பநிலை மற்றும் ஈரப்பதத்தைக் காட்ட அதை அழிக்கும். காட்சியின் முதல் வரி "LCD1602 DHT11" உரையைக் காட்டுகிறது, இரண்டாவது வரி செல்சியஸில் வெப்பநிலையைக் காட்டுகிறது, அதைத் தொடர்ந்து டிகிரி சின்னம் மற்றும் "C", பின்னர் பாரன்ஹீட்டில் வெப்பநிலை, அதைத் தொடர்ந்து டிகிரி சின்னம் மற்றும் "F". ஈரப்பத மதிப்பு சீரியல் மானிட்டரில் அச்சிடப்படுகிறது. வீடியோவில் உள்ள ஆர்ப்பாட்டம் சென்சார் பிடிக்கப்படும்போது ஒவ்வொரு அரை வினாடிக்கும் காட்சி புதுப்பிக்கப்படுவதைக் காட்டுகிறது, சுற்றுப்புற நிலைமைகளை துல்லியமாக பிரதிபலிக்கிறது. (வீடியோவில் 29:42 இல்)

LCD இல் பொட்டென்டியோமீட்டரிலிருந்து மின்னழுத்தத்தைக் காண்பிப்பது பாடம் 20/31: LCD1602 இல் மின்னழுத்தத்தைக் காண்பித்தல் இல் உள்ளடக்கப்பட்டுள்ளது.

அல்ட்ராசோனிக் சென்சாரிலிருந்து தூரத்தைக் காட்ட அதே LCD ஐப் பயன்படுத்துவது பாடம் 20/31: Arduino உடன் LCD1602 ஐப் பயன்படுத்தி வெப்பநிலை, மின்னழுத்தம் மற்றும் தூரத்தைக் காண்பித்தல் | Robojax இல் உள்ளடக்கப்பட்டுள்ளது.

இந்த வீடியோவிலிருந்து தொடர்புடைய திட்டங்கள்

அத்தியாயங்கள்

  • [00:00] LCD1602 அறிமுகம் மற்றும் திட்ட கண்ணோட்டம்
  • [01:30] LCD1602 வன்பொருள் மற்றும் I2C தொகுதி விளக்கம்
  • [02:47] LCD மாறுபாட்டை சரிசெய்தல்
  • [03:14] LCD பின்அவுட் மற்றும் I2C முகவரி உள்ளமைவு
  • [05:28] LCD1602 க்கான வயரிங் வரைபடம்
  • [06:16] LiquidCrystal_I2C நூலகத்தை நிறுவுதல்
  • [08:11] ஸ்கேனருடன் I2C முகவரியைக் கண்டறிதல்
  • [09:28] LCD இல் உரையை அச்சிட அடிப்படை குறியீடு
  • [11:10] எடுத்துக்காட்டுகள்: ஒளிரும் கர்சர் மற்றும் தனிப்பயன் எழுத்துகள்
  • [13:46] தனிப்பயன் எழுத்துகளை உருவாக்கி பயன்படுத்துதல்
  • [18:51] சீரியல் காட்சி எடுத்துக்காட்டு
  • [23:16] LCD இல் உரையை உருட்டுதல்
  • [24:36] DHT11 சென்சார் குறியீட்டை LCD உடன் இணைத்தல்
  • [30:16] டிகிரி சின்னத்தைக் காண்பித்தல்
  • [32:03] வெப்பநிலையிலிருந்து தசம புள்ளிகளை நீக்குதல்
  • [33:00] LCD இல் பொட்டென்டியோமீட்டரிலிருந்து மின்னழுத்தத்தைக் காண்பித்தல்
  • [35:56] அல்ட்ராசோனிக் சென்சாரிலிருந்து தூரத்தைக் காண்பித்தல்

படங்கள்

LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD_sunFounder
LCD_sunFounder
911-Lesson 20/31: Displaying Temperature and humidity from DHT11 on LCD screen
மொழி: C++
/*
Lesson 20/31: Displaying Temperature and humidity from DHT11 on  LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
 

 * This is the Arduino code for  DHT11 module to read temperature and humidity
 * This code can display temperature in:
 * C is used to get Celsius
 * F is used to get Fahrenheit
 * K is used for Kelvin

 *  * 
 * Written by Ahmad Shamshiri for Robojax
 * on Jan 04, 2018
 * Robojax.com

   Please watch video instruction here https://youtu.be/0XMLnCYkvbE
 This code is available at http://robojax.com/course1/?vid=lecture11
 
with over 100 lectures Free On  YouTube Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339 

  
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been download from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

// header file from GetHub: https://github.com/adidax/dht11
#include <dht11.h>

dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11

// start of settings for LCD1602-I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x3F for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// end of settings for LCD1602-I2C


void setup() {
    Serial.begin(9600);// setting up serial monitor

  // initialize the LCD, 
  lcd.begin();
  // Turn on the blacklight and print a message.
  lcd.backlight();
  lcd.clear();
  lcd.setCursor (0,0); //
  lcd.print("DHT11 Sensor"); 
  delay(2000);
}

void loop() {
	//Robojax Step By Step Arduino Course YouTube Watch it here http://robojax.com/L/?id=338
  DHT11.read(dhtpin);// initialize the reading
  int humidity = DHT11.humidity;// get humidity

  lcd.clear();// clear previous values from screen
  lcd.setCursor (0,0); //character zero, line 1
  lcd.print("LCD1602 DHT11"); // print text 

  // print distance in degrees C
  lcd.setCursor (0,1); //character 0, line 2
  lcd.print(getTemp('C'));// print Temperature Celsius
  lcd.setCursor (4,1); //character 5, line 2 
  lcd.print((char)223);// print degree 
  lcd.setCursor (5,1); //character 6, line 2 
  lcd.print("C");// print C
  
   // print distance degrees F
  lcd.setCursor (7,1); //character 8, line 2
  lcd.print(getTemp('F'));// print distance in cm
  lcd.setCursor (13,1); //character 14, line 2 
  lcd.print((char)223);// print degree 
  lcd.setCursor (14,1); //character 16, line 2 
  lcd.print("F");// print F 
  
  
  //code for Robojax.com video
   Serial.print(getTemp('C'));
   Serial.print("C ");
   Serial.print(getTemp('F'));
   Serial.print("F ");
   Serial.print(getTemp('K'));
   Serial.print("K ");
   Serial.print(" humidity:");
   Serial.print (humidity);
   Serial.print("% ");
   Serial.println();
 delay(500);
}


/*
 * getTemp(char type)
 * type character of upper case 
 * C is used to get Celsius
 * F is used to get Fahrenheit
 * K is used for Kelvin
 */
float getTemp(char type) {
	//Robojax Step By Step Arduino Course YouTube Watch it here http://robojax.com/L/?id=338	
    float temp = (float)DHT11.temperature;//get temp
  if(type =='F')
  {
    return temp * 1.8 + 32;// convert to Fahrenheit
  }else if(type =='K')
  {
    return temp + 274.15;// convert to Kelvin
  }else{
   return temp; 
  }
  
}

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

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

கோப்புகள்📁

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

பயனர் கையேடு