DHT17 ջերմաստիճանի և խոնավության սենսորը սիրված և էժան սենսոր է, որը կարող է օգտագործվել ջերմաստիճանի և հարաբերական խոնավության բավականին լայն տիրույթում: Տեսնենք, թե ինչպես կարելի է այն միացնել Arduino- ին և ինչպես կարդալ դրանից ստացված տվյալները:
Անհրաժեշտ է
- - Arduino;
- - DHT17 ջերմաստիճանի և խոնավության սենսոր:
Հրահանգներ
Քայլ 1
Այսպիսով, DHT11 սենսորը ունի հետեւյալ բնութագրերը.
- չափված հարաբերական խոնավության միջակայք `20..90%` մինչև 5% սխալով, - չափված ջերմաստիճանների միջակայք `0..50 աստիճան ցելսիուս` մինչև 2 աստիճան սխալով.
- խոնավության փոփոխություններին արձագանքելու ժամանակը `մինչև 15 վայրկյան, ջերմաստիճանը` մինչև 30 վայրկյան.
- հարցման նվազագույն ժամանակահատվածը 1 վայրկյան է:
Ինչպես տեսնում եք, DHT11 սենսորը շատ ճշգրիտ չէ, և ջերմաստիճանի միջակայքը չի ծածկում բացասական արժեքները, ինչը դժվար թե հարմար լինի մեր կլիմայական պայմաններում ցուրտ սեզոնում բացօթյա չափումների համար: Այնուամենայնիվ, դրա ցածր գինը, փոքր չափը և օգտագործման հարմարությունը մասամբ փոխհատուցում են այդ թերությունները:
Նկարը ցույց է տալիս սենսորի տեսքը և դրա չափերը միլիմետրերով:
Քայլ 2
Հաշվի առեք DHT11 ջերմաստիճանի և խոնավության սենսորի միացման դիագրամը միկրոհսկիչին, մասնավորապես `Arduino- ին: Պատկերի վրա ՝
- MCU - միկրոկոնտրոլեր (օրինակ, Arduino կամ նմանատիպ) կամ մեկ տախտակ համակարգիչ (Raspberry Pi կամ նմանատիպ);
- DHT11 - ջերմաստիճանի և խոնավության ցուցիչ;
- ՏՎՅԱԼՆԵՐ - տվյալների ավտոբուս; եթե սենսորից միկրոհսկիչին միացնող մալուխի երկարությունը չի գերազանցում 20 մետրը, ապա առաջարկվում է այս ավտոբուսը 5, 1 կոլմ դիմադրությամբ քաշել դեպի էլեկտրամատակարարում; եթե ավելի քան 20 մետր է, ապա մեկ այլ հարմար արժեք (ավելի փոքր):
- VDD - սենսորային էլեկտրամատակարարում; թույլատրելի լարման ~ 3.0-ից ~ 5.5 վոլտ DC; եթե օգտագործվում է power 3.3 Վ էլեկտրամատակարարում, ապա խորհուրդ է տրվում օգտագործել մատակարարման մետաղալար 20 սմ-ից ոչ ավելի:
Սենսորային տողերից մեկը `երրորդը, ոչ մի բանի հետ կապված չէ:
DHT11 սենսորը հաճախ վաճառվում է որպես ամբողջական հավաքույթ `անհրաժեշտ խողովակաշարերով` ձգվող դիմադրություն և ֆիլտրի կոնդենսատոր:
Քայլ 3
Եկեք միասին հավաքենք դիտարկված սխեման: Ես միացնելու եմ նաև տրամաբանական անալիզատորը շղթային, որպեսզի կարողանամ ուսումնասիրել սենսորի հետ կապի ժամանակային դիագրամը:
Քայլ 4
Եկեք գնանք պարզ ձևով. Ներբեռնեք գրադարանը DHT11 սենսորի համար (հղումը «Աղբյուրներ» բաժնում), տեղադրեք այն ստանդարտ ձևով (ապամոնտաժեք այն Arduino- ի զարգացման միջավայրի / գրադարանների / գրացուցակում):
Եկեք գրենք այսպիսի պարզ ուրվագիծ: Եկեք այն բեռնենք Arduino- ի մեջ: Այս ուրվագիծը դուրս կգա RH և Temperature հաղորդագրությունները, որոնք կարդում են DHT11 սենսորից համակարգչի սերիական պորտ յուրաքանչյուր 2 վայրկյանում:
Քայլ 5
Այժմ, օգտագործելով տրամաբանական վերլուծիչից ստացված ժամանակի դիագրամը, եկեք պարզենք, թե ինչպես է իրականացվում տեղեկատվության փոխանակումը:
Միկրոհսկիչի հետ հաղորդակցվելու համար DHT11 ջերմաստիճանի և խոնավության սենսորը օգտագործում է միալար սերիական ինտերֆեյս: Տվյալների մեկ փոխանակումը տևում է մոտ 40 ms և պարունակում է. 1 պահանջ բիթ միկրոհսկիչից, 1 բիթ սենսորի պատասխան և 40 տվյալների բիթ սենսորից: Տվյալները ներառում են `խոնավության 16 բիթ տեղեկատվություն, ջերմաստիճանի վերաբերյալ 26 բիթ և 8 ստուգիչ բիթ:
Եկեք ավելի սերտ նայենք DHT11 սենսորի հետ Arduino հաղորդակցության ժամանակի դիագրամին:
Նկարից երեւում է, որ իմպուլսները երկու տեսակի են ՝ կարճ և երկար: Այս փոխանակման արձանագրության կարճ իմպուլսները նշանակում են զրոներ, երկար իմպուլսները ՝ մեկը:
Այսպիսով, առաջին երկու իմպուլսները Arduino- ի խնդրանքն են DHT11- ին և, համապատասխանաբար, սենսորի պատասխանը: Հաջորդը գալիս է խոնավության 16 բիթ: Ավելին, դրանք բաժանվում են բայտերի ՝ ձախից բարձր և ցածր, բարձր: Այսինքն, մեր նկարում խոնավության տվյալները հետևյալն են.
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH:
Peratերմաստիճանի վերաբերյալ տվյալները նման են.
0001011100000000 = 00000000 00010111 = 0x17 = 23 աստիճան ելսիուս:
Ստուգիչ բիթեր - ստուգման գումարը ընդամենը 4 ստացված տվյալների բայթերի գումարումն է.
00000000 +
00010000 +
00000000 +
00010111 =
00100111 երկուական կամ 16 + 23 = 39 տասնորդական: