DHT17 ტემპერატურისა და ტენიანობის სენსორი პოპულარული და იაფი სენსორია, რომლის გამოყენება შესაძლებელია საკმაოდ ფართო ტემპერატურისა და ფარდობითი ტენიანობის დროს. ვნახოთ, როგორ დავაკავშიროთ იგი 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 kOhm რეზისტორით გაყვანა; თუ 20 მეტრზე მეტია, მაშინ სხვა შესაფერისი მნიშვნელობა (უფრო მცირე).
- VDD - სენსორის კვების წყარო; დასაშვები ძაბვები ~ 3.0-დან ~ 5.5 ვოლტ DC; თუ გამოიყენება ელექტროენერგიის მიწოდება ~ 3.3 V, მაშინ სასურველია გამოიყენოთ კვების ბლოკი არაუმეტეს 20 სმ.
ერთი სენსორი იწვევს - მესამე - არაფერთან არის დაკავშირებული.
DHT11 სენსორი ხშირად იყიდება, როგორც სრული აწყობა საჭირო მილსადენით - გამაწევი რეზისტორით და ფილტრის კონდენსატორით.
ნაბიჯი 3
მოდით შევადგინოთ განხილული სქემა. მე ასევე დავაკავშირებ ლოგიკის ანალიზატორს მიკროსქემისთვის, რათა შემიძლია შევისწავლო სენსორთან კომუნიკაციის დროის სქემა.
ნაბიჯი 4
მოდით, მარტივი ხერხით წავიდეთ: ჩამოტვირთეთ ბიბლიოთეკა DHT11 სენსორისთვის (ბმული განყოფილებაში”წყაროები”), დააინსტალირეთ სტანდარტული გზით (ჩამოაფუთეთ იგი Arduino– ს განვითარების გარემოს / ბიბლიოთეკებში).
მოდით დავწეროთ ასეთი მარტივი ესკიზი. მოდით, ჩავტვირთოთ არდუინოში. ეს ჩანახატი გამოაქვეყნებს RH და ტემპერატურის შეტყობინებებს, წაკითხული DHT11 სენსორიდან კომპიუტერის სერიულ პორტამდე ყოველ 2 წამში.
ნაბიჯი 5
ახლა, ლოგიკის ანალიზატორისგან მიღებული დროის დიაგრამის გამოყენებით, მოდით გაერკვნენ, თუ როგორ ხორციელდება ინფორმაციის გაცვლა.
DHT11 ტემპერატურისა და ტენიანობის სენსორი იყენებს ერთსადენოვან სერიულ ინტერფეისს მიკროკონტროლერთან კომუნიკაციისთვის. მონაცემთა ერთ გაცვლას დაახლოებით 40 ms სჭირდება და შეიცავს: მიკროკონტროლერის 1 მოთხოვნას ბიტს, 1 სენსორის რეაგირებას და სენსორიდან მონაცემთა 40 ბიტს. მონაცემები მოიცავს: ტენიანობის შესახებ 16 ბიტს, ტემპერატურის ინფორმაციას 26 ბიტს და 8 ბიტს.
მოდი უფრო ახლოს გავეცნოთ Arduino- ს კომუნიკაციის დროის დიაგრამას DHT11 სენსორთან.
ნახატიდან ჩანს, რომ არსებობს იმპულსების ორი ტიპი: მოკლე და გრძელი. მოკლე პულსი ამ გაცვლის ოქმში აღნიშნავს ნულებს, გრძელი პულსი - ერთს.
ასე რომ, პირველი ორი იმპულსი არის Arduino– ს მოთხოვნა DHT11– ს მიმართ და, შესაბამისად, სენსორის პასუხი. შემდეგი მოდის ტენიანობის 16 ბიტი. უფრო მეტიც, ისინი იყოფა ბაიტებად, მაღალი და დაბალი, მარცხნივ მაღალი. ეს არის, ჩვენს ფიგურაში, ტენიანობის მონაცემები შემდეგია:
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.
ტემპერატურის მონაცემები მსგავსია:
0001011100000000 = 00000000 00010111 = 0x17 = 23 გრადუსი ცელსიუსით.
გამშვები ბიტი - საკონტროლო ჯამი მხოლოდ 4 მიღებული მონაცემების ბაიტის ჯამია:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 ორობითი ან 16 + 23 = 39 ათობითი.