- DHT11 - விவரக்குறிப்பு மற்றும் வேலை
- DHT11 சென்சாருடன் தொடர்புகொள்வது
- தேவையான கூறுகள்
- திட்டவட்டமான
- PIC MPLABX குறியீடு விளக்கத்துடன் DHT11
ஹோம் ஆட்டோமேஷன், சுற்றுச்சூழல் கண்காணிப்பு, வானிலை நிலையம் போன்ற பல பயன்பாடுகளில் வெப்பநிலை மற்றும் ஈரப்பதம் அளவீடு பெரும்பாலும் பயனுள்ளதாக இருக்கும். பை மற்றும் பல மேம்பாட்டு வாரியங்கள். இந்த கட்டுரையில், இந்த DHT11 ஐ PIC16F87A உடன் 8-பிட் PIC மைக்ரோகண்ட்ரோலருடன் எவ்வாறு இடைமுகப்படுத்துவது என்பதைக் கற்றுக்கொள்வோம். இந்த மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி DHT11 ஐப் பயன்படுத்தி வெப்பநிலை மற்றும் ஈரப்பதத்தின் மதிப்புகளைப் படித்து எல்சிடி டிஸ்ப்ளேயில் காண்பிப்போம். பி.ஐ.சி மைக்ரோகண்ட்ரோலர்களைப் பயன்படுத்துவதில் நீங்கள் முற்றிலும் புதியவராக இருந்தால், பி.ஐ.சி மைக்ரோகண்ட்ரோலரை எவ்வாறு நிரல் செய்வது மற்றும் பயன்படுத்துவது என்பதை அறிய எங்கள் பி.ஐ.சி டுடோரியல் தொடரைப் பயன்படுத்தலாம், என்று கூறப்பட்டால், தொடங்குவோம்.
DHT11 - விவரக்குறிப்பு மற்றும் வேலை
DHT11 சென்சார் தொகுதி வடிவத்தில் அல்லது சென்சார் வடிவத்தில் கிடைக்கிறது. இந்த டுடோரியலில் நாம் சென்சாரைப் பயன்படுத்துகிறோம், இரண்டிற்கும் உள்ள ஒரே வித்தியாசம் என்னவென்றால், தொகுதி வடிவத்தில் சென்சார் ஒரு வடிகட்டுதல் மின்தேக்கி மற்றும் சென்சாரின் வெளியீட்டு முள் இணைக்கப்பட்ட ஒரு இழுத்தல் மின்தடை ஆகியவற்றைக் கொண்டுள்ளது. எனவே நீங்கள் தொகுதியைப் பயன்படுத்துகிறீர்கள் என்றால் அவற்றை வெளிப்புறமாகச் சேர்க்க வேண்டியதில்லை. சென்சார் வடிவத்தில் உள்ள டி.எச்.டி 11 கீழே காட்டப்பட்டுள்ளது.

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

தயாரிப்பு 4 பின் ஒற்றை வரிசை தொகுப்பில் உள்ளது. 1 வது முள் VDD முழுவதும் இணைக்கப்பட்டுள்ளது மற்றும் 4 வது முள் GND முழுவதும் இணைக்கப்பட்டுள்ளது. 2 வது முள் தரவு முள் ஆகும், இது தகவல் தொடர்பு நோக்கங்களுக்காக பயன்படுத்தப்படுகிறது. இந்த தரவு முள் 5k இன் புல்-அப் மின்தடை தேவை. இருப்பினும், மற்றவர்கள் 4.7k போன்ற மின்தடைகளை 10k க்கு இழுக்கவும் பயன்படுத்தலாம். 3 வது முள் எதையும் இணைக்கவில்லை. எனவே அது புறக்கணிக்கப்படுகிறது.
தரவுத்தாள் தொழில்நுட்ப விவரக்குறிப்புகள் மற்றும் கீழே உள்ள அட்டவணையில் காணக்கூடிய இடைமுக தகவல்களை வழங்குகிறது.

மேலே உள்ள அட்டவணை வெப்பநிலை மற்றும் ஈரப்பதம் அளவீட்டு வரம்பு மற்றும் துல்லியம் ஆகியவற்றைக் காட்டுகிறது. இது 0/50 டிகிரி செல்சியஸிலிருந்து +/- 2 டிகிரி செல்சியஸ் துல்லியத்துடன் மற்றும் 20-90% RH இலிருந்து ஈரப்பதத்தை +/- 5% RH துல்லியத்துடன் அளவிட முடியும். விவரம் விவரக்குறிப்பை கீழே உள்ள அட்டவணையில் காணலாம்.

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

தகவல்தொடர்பு தொடங்க DHT11 க்கு MCU இலிருந்து தொடக்க சமிக்ஞை தேவை. எனவே, ஒவ்வொரு முறையும் MCU வெப்பநிலை மற்றும் ஈரப்பதத்தின் மதிப்புகளை அனுப்புமாறு கோர DHT11 சென்சாருக்கு தொடக்க சமிக்ஞையை அனுப்ப வேண்டும். தொடக்க சமிக்ஞையை முடித்த பிறகு, டி.எச்.டி 11 ஒரு பதில் சமிக்ஞையை அனுப்புகிறது, அதில் வெப்பநிலை மற்றும் ஈரப்பதம் பற்றிய தகவல்கள் அடங்கும். தரவு தொடர்பு ஒற்றை பஸ் தரவு தொடர்பு நெறிமுறையால் செய்யப்படுகிறது. முழு தரவு நீளம் 40 பிட் மற்றும் சென்சார் முதலில் அதிக தரவு பிட்டை அனுப்புகிறது.

புல்-அப் மின்தடையின் காரணமாக, செயலற்ற பயன்முறையில் தரவு வரி எப்போதும் வி.சி.சி மட்டத்தில் இருக்கும். MCU இந்த மின்னழுத்தத்தை அதிகபட்சமாக 18ms வரை குறைக்க வேண்டும். இந்த நேரத்தில், DHT11 சென்சார் தொடக்க சமிக்ஞையைக் கண்டறிந்து, மைக்ரோகண்ட்ரோலர் 20-40us க்கு தரவு வரியை அதிகமாக்குகிறது. இந்த 20-40us நேரம் காத்திருப்பு காலம் என்று அழைக்கப்படுகிறது, அங்கு DHT11 பதிலுக்குத் தொடங்குகிறது. இந்த காத்திருப்பு காலத்திற்குப் பிறகு, டிஹெச்.டி 11 தரவை மைக்ரோகண்ட்ரோலர் அலகுக்கு அனுப்புகிறது.
DHT11 சென்சார் தரவு வடிவம்
தரவு தசம மற்றும் ஒருங்கிணைந்த பகுதிகளை ஒன்றாக இணைக்கிறது. சென்சார் கீழே உள்ள தரவு வடிவமைப்பைப் பின்பற்றுகிறது -
8 பிட் ஒருங்கிணைந்த RH தரவு + 8 பிட் தசம RH தரவு + 8 பிட் ஒருங்கிணைந்த டி தரவு + 8 பிட் தசம டி தரவு + 8 பிட் செக்சம்.
பெறப்பட்ட தரவுடன் செக்சம் மதிப்பைச் சரிபார்த்து தரவை ஒருவர் சரிபார்க்க முடியும். இதைச் செய்ய முடியும், ஏனென்றால் எல்லாம் சரியாக இருந்தால், சென்சார் சரியான தரவை அனுப்பியிருந்தால், செக்சம் “8 பிட் ஒருங்கிணைந்த RH தரவு + 8 பிட் தசம RHdata + 8bit ஒருங்கிணைந்த டி தரவு + 8 பிட் தசம டி தரவு” ஆக இருக்க வேண்டும்.
தேவையான கூறுகள்
இந்த திட்டத்திற்கு, கீழே உள்ள விஷயங்கள் தேவை -
- PIC மைக்ரோகண்ட்ரோலர் (8 பிட்) நிரலாக்க அமைப்பு.
- ப்ரெட்போர்டு
- 5 வி 500 எம்ஏ மின்சாரம் வழங்கும் பிரிவு.
- 4.7 கே மின்தடை 2 பிசிக்கள்
- 1 கே மின்தடை
- PIC16F877A
- 20mHz படிக
- 33 பிஎஃப் மின்தேக்கி 2 பிசிக்கள்
- 16x2 எழுத்து எல்சிடி
- DHT11 சென்சார்
- ஜம்பர் கம்பிகள்
திட்டவட்டமான
PIC16F877A உடன் DHT11 ஐ இணைப்பதற்கான சுற்று வரைபடம் கீழே காட்டப்பட்டுள்ளது.

DHT11 இலிருந்து நாம் அளவிடும் வெப்பநிலை மற்றும் ஈரப்பதம் மதிப்புகளைக் காட்ட 16x2 LCD ஐப் பயன்படுத்தியுள்ளோம். எல்சிடி 4-கம்பி பயன்முறையில் இடைமுகப்படுத்தப்பட்டுள்ளது மற்றும் சென்சார் மற்றும் எல்சிடி இரண்டும் 5 வி வெளிப்புற மின்சாரம் மூலம் இயக்கப்படுகின்றன. தேவையான அனைத்து இணைப்புகளையும் செய்ய நான் ஒரு பிரெட் போர்டைப் பயன்படுத்தினேன் மற்றும் வெளிப்புற 5 வி அடாப்டரைப் பயன்படுத்தினேன். 5V உடன் உங்கள் போர்டுக்கு சக்தி அளிக்க இந்த ப்ரெட்போர்டு மின்சாரம் வழங்கல் குழுவையும் பயன்படுத்தலாம்.

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

PIC MPLABX குறியீடு விளக்கத்துடன் DHT11
இந்த குறியீடு MPLABX IDE ஐப் பயன்படுத்தி எழுதப்பட்டது மற்றும் XC8 கம்பைலரைப் பயன்படுத்தி தொகுக்கப்பட்டது, இவை இரண்டும் மைக்ரோசிப்பால் வழங்கப்பட்டது மற்றும் பதிவிறக்கம் செய்து பயன்படுத்த இலவசம். நிரலாக்கத்தின் அடிப்படைகளைப் புரிந்து கொள்ள அடிப்படை பயிற்சிகளைப் பார்க்கவும், DHT11 சென்சாருடன் தொடர்புகொள்வதற்குத் தேவையான மூன்று முக்கியமான செயல்பாடுகள் மட்டுமே கீழே விவாதிக்கப்படுகின்றன. செயல்பாடுகள் -
வெற்றிட dht11_init (); void find_response (); char read_dht11 ();
முதல் செயல்பாடு dht11 உடன் தொடக்க சமிக்ஞைக்கு பயன்படுத்தப்படுகிறது. முன்பு விவாதித்தபடி, DHT11 உடனான ஒவ்வொரு தகவல்தொடர்புகளும் தொடக்க சமிக்ஞையுடன் தொடங்குகிறது, இங்கே மைக்ரோகண்ட்ரோலரின் வெளியீடாக தரவு முள் கட்டமைக்க முள் திசை முதலில் மாற்றப்படுகிறது. பின்னர் தரவு வரி குறைவாக இழுக்கப்பட்டு 18 எம்.எஸ். அதன் பிறகு மீண்டும் மைக்ரோகண்ட்ரோலரால் வரி உயர்ந்தது மற்றும் 30us வரை காத்திருக்கிறது. அந்த காத்திருப்பு நேரத்திற்குப் பிறகு, தரவைப் பெற மைக்ரோகண்ட்ரோலருக்கு தரவு முள் உள்ளீடாக அமைக்கப்படுகிறது.
வெற்றிட dht11_init () { DHT11_Data_Pin_Direction = 0; // RD0 ஐ வெளியீடாக உள்ளமைக்கவும் DHT11_Data_Pin = 0; // RD0 சென்சாருக்கு 0 ஐ அனுப்புகிறது __delay_ms (18); DHT11_Data_Pin = 1; // RD0 சென்சாருக்கு 1 ஐ அனுப்புகிறது __delay_us (30); DHT11_Data_Pin_Direction = 1; // RD0 ஐ உள்ளீடாக உள்ளமைக்கவும் }
தரவு முள் நிலையைப் பொறுத்து காசோலை பிட் அமைக்க அடுத்த செயல்பாடு பயன்படுத்தப்படுகிறது. இது DHT11 சென்சாரிலிருந்து பதிலைக் கண்டறியப் பயன்படுகிறது.
void find_response () { Check_bit = 0; __ தாமத_உஸ் (40); if (DHT11_Data_Pin == 0) { __delay_us (80); if (DHT11_Data_Pin == 1) { Check_bit = 1; } __ தாமத_உஸ் (50);} }
இறுதியாக dht11 வாசிப்பு செயல்பாடு; இங்கே தரவு 8-பிட் வடிவத்தில் படிக்கப்படுகிறது, அங்கு தரவு முள் நிலையைப் பொறுத்து பிட் ஷிப்ட் செயல்பாட்டைப் பயன்படுத்தி தரவு திரும்பும்.
char read_dht11 () { கரி தரவு, for_count; (for_count = 0; for_count <8; for_count ++) { போது (! DHT11_Data_Pin); __ தாமத_உஸ் (30); if (DHT11_Data_Pin == 0) { data & = ~ (1 << (7 - for_count)); // தெளிவான பிட் (7-பி) } else { data- = (1 << (7 - for_count)); // பிட் (7-பி) அமைக்கும்போது (DHT11_Data_Pin); } } தரவை வழங்கும்; }
அதன் பிறகு, அனைத்தும் முக்கிய செயல்பாட்டில் செய்யப்படுகின்றன. முதலாவதாக, எல்சிடி துவக்கப்பட்டு எல்சிடி பின்ஸ் போர்ட் திசை வெளியீட்டிற்கு அமைக்கப்பட்ட இடத்தில் கணினி துவக்கம் செய்யப்படுகிறது. பயன்பாடு முக்கிய செயல்பாட்டிற்குள் இயங்குகிறது
void main () { system_init (); (1) { __ தாமத_எம்எஸ் (800); dht11_init (); find_response (); if (Check_bit == 1) { RH_byte_1 = read_dht11 (); RH_byte_2 = read_dht11 (); Temp_byte_1 = read_dht11 (); Temp_byte_2 = read_dht11 (); சுருக்கம் = read_dht11 (); if (சுருக்கம் == ((RH_byte_1 + RH_byte_2 + Temp_byte_1 + Temp_byte_2) & 0XFF)) { ஈரப்பதம் = Temp_byte_1; RH = RH_byte_1; lcd_com (0x80); lcd_puts ("தற்காலிக:"); // lcd_puts (""); lcd_data (48 + ((ஈரப்பதம் / 10)% 10%); lcd_data (48 + (ஈரப்பதம்% 10%); lcd_data (0xDF); lcd_puts ("சி"); lcd_com (0xC0); lcd_puts ("ஈரப்பதம்:"); // lcd_puts (""); lcd_data (48 + ((RH / 10)% 10%); lcd_data (48 + (RH% 10%); lcd_puts ("%"); } else { lcd_puts ("செக்ஸம் பிழை"); } } else { clear_screen (); lcd_com (0x80); lcd_puts ("பிழை !!!"); lcd_com (0xC0); lcd_puts ("பதில் இல்லை."); } __ தாமத_எம்எஸ் (1000); } }
தொடக்க சமிக்ஞை சென்சாருக்கு சமர்ப்பிக்கப்படும் போது டிஹெச்.டி 11 சென்சாருடனான தொடர்பு நேர வளையத்திற்குள் செய்யப்படுகிறது. அதன் பிறகு, find_response செயல்பாடு தூண்டப்படுகிறது. என்றால் Check_bit 1 பின்னர் மேற்கொண்டு தொடர்புகொள்வதிலிருந்து மேற்கொள்ளப்படுகிறது இல்லையெனில் எல்சிடி பிழை உரையாடல் காண்பிக்கும்.
40bit தரவு பொறுத்து, read_dht11 5 முறை (5 முறை x 8bit) அழைத்து தரவுத்தாள் வழங்கப்படும் தரவு வடிவமைப்பில் படி தரவு சேமிக்கப்படுகிறது. செக்சம் நிலையும் சோதிக்கப்படுகிறது மற்றும் பிழைகள் காணப்படுகின்றன என்றால், இது LCD யில் தெரிவிப்போம். இறுதியாக, தரவு மாற்றப்பட்டு 16x2 எழுத்துக்குறி எல்சிடிக்கு அனுப்பப்படுகிறது.
இந்த PIC வெப்பநிலை மற்றும் ஈரப்பதம் அளவீட்டுக்கான முழுமையான குறியீட்டை இங்கிருந்து பதிவிறக்கம் செய்யலாம். கீழே கொடுக்கப்பட்டுள்ள ஆர்ப்பாட்ட வீடியோவையும் சரிபார்க்கவும்.
நீங்கள் திட்டத்தை புரிந்து கொண்டீர்கள் மற்றும் பயனுள்ள ஒன்றை உருவாக்கி மகிழ்ந்தீர்கள் என்று நம்புகிறேன். உங்களிடம் ஏதேனும் கேள்விகள் இருந்தால் அவற்றை கீழே உள்ள கருத்துப் பிரிவில் விடவும் அல்லது பிற தொழில்நுட்ப கேள்விகளுக்கு எங்கள் மன்றங்களைப் பயன்படுத்தவும்.
