วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino

สารบัญ:

วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino
วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino

วีดีโอ: วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino

วีดีโอ: วิธีเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับ Arduino
วีดีโอ: Arduino ESP8266 BLYNK IOT - ทดลอง Sensor DHT22/DHT11 วัดอุณหภูมิ และ ความชื้นในอากาศ 2024, พฤศจิกายน
Anonim

เซ็นเซอร์อุณหภูมิและความชื้น DHT17 เป็นเซ็นเซอร์ราคาถูกและเป็นที่นิยมซึ่งสามารถใช้ได้ในช่วงอุณหภูมิและความชื้นสัมพัทธ์ที่ค่อนข้างกว้าง เรามาดูวิธีเชื่อมต่อกับ Arduino และวิธีอ่านข้อมูลจากมันกัน

เซ็นเซอร์อุณหภูมิและความชื้น DHT11
เซ็นเซอร์อุณหภูมิและความชื้น DHT11

จำเป็น

  • - Arduino;
  • - เซ็นเซอร์อุณหภูมิและความชื้น DHT17

คำแนะนำ

ขั้นตอนที่ 1

ดังนั้น เซ็นเซอร์ DHT11 จึงมีลักษณะดังต่อไปนี้:

- ช่วงความชื้นสัมพัทธ์ที่วัดได้ - 20..90% โดยมีข้อผิดพลาดสูงถึง 5%

- ช่วงอุณหภูมิที่วัดได้ - 0..50 องศาเซลเซียส โดยมีข้อผิดพลาดสูงสุด 2 องศา

- เวลาตอบสนองต่อการเปลี่ยนแปลงของความชื้น - สูงสุด 15 วินาที, อุณหภูมิ - สูงสุด 30 วินาที;

- ระยะเวลาการเลือกตั้งขั้นต่ำคือ 1 วินาที

อย่างที่คุณเห็น เซ็นเซอร์ DHT11 นั้นไม่แม่นยำนัก และช่วงอุณหภูมิไม่ครอบคลุมค่าลบ ซึ่งแทบจะไม่เหมาะสำหรับการตรวจวัดกลางแจ้งในฤดูหนาวในสภาพอากาศของเรา อย่างไรก็ตาม ต้นทุนที่ต่ำ ขนาดเล็ก และความสะดวกในการใช้งานช่วยชดเชยข้อเสียเหล่านี้ได้บางส่วน

รูปภาพแสดงลักษณะที่ปรากฏของเซ็นเซอร์และขนาดเป็นมิลลิเมตร

ลักษณะและขนาดของเซ็นเซอร์ DHT11
ลักษณะและขนาดของเซ็นเซอร์ DHT11

ขั้นตอนที่ 2

พิจารณาแผนภาพการเชื่อมต่อของเซ็นเซอร์อุณหภูมิและความชื้น DHT11 กับไมโครคอนโทรลเลอร์ โดยเฉพาะกับ Arduino ในภาพ:

- MCU - ไมโครคอนโทรลเลอร์ (เช่น Arduino หรือใกล้เคียง) หรือคอมพิวเตอร์บอร์ดเดี่ยว (Raspberry Pi หรือใกล้เคียง)

- DHT11 - เซ็นเซอร์อุณหภูมิและความชื้น

- DATA - บัสข้อมูล; หากความยาวของสายเชื่อมต่อจากเซ็นเซอร์ไปยังไมโครคอนโทรลเลอร์ไม่เกิน 20 เมตร ขอแนะนำให้ดึงบัสนี้ไปยังแหล่งจ่ายไฟด้วยตัวต้านทาน 5, 1 kOhm ถ้ามากกว่า 20 เมตร ก็มีค่าที่เหมาะสมอีกค่าหนึ่ง (เล็กกว่า)

- VDD - แหล่งจ่ายไฟเซ็นเซอร์ แรงดันไฟฟ้าที่อนุญาตจาก ~ 3.0 ถึง ~ 5.5 โวลต์ DC; หากใช้แหล่งจ่ายไฟ ~ 3.3 V แนะนำให้ใช้สายไฟไม่เกิน 20 ซม.

เซ็นเซอร์ตัวใดตัวหนึ่ง - ตัวที่สาม - ไม่ได้เชื่อมต่อกับอะไรเลย

เซ็นเซอร์ DHT11 มักจะขายเป็นชุดประกอบที่สมบูรณ์พร้อมท่อที่จำเป็น - ตัวต้านทานแบบดึงขึ้นและตัวเก็บประจุตัวกรอง

แผนภาพการเชื่อมต่อเซ็นเซอร์ DHT11 กับไมโครคอนโทรลเลอร์
แผนภาพการเชื่อมต่อเซ็นเซอร์ DHT11 กับไมโครคอนโทรลเลอร์

ขั้นตอนที่ 3

เรามารวมโครงร่างที่พิจารณากัน ฉันจะเชื่อมต่อเครื่องวิเคราะห์ลอจิกกับวงจรด้วย เพื่อที่ฉันจะได้ศึกษาแผนภาพเวลาของการสื่อสารกับเซ็นเซอร์

เซ็นเซอร์ DHT11 และ Arduino
เซ็นเซอร์ DHT11 และ Arduino

ขั้นตอนที่ 4

ไปกันเถอะ วิธีง่ายๆ: ดาวน์โหลดไลบรารี่สำหรับเซ็นเซอร์ DHT11 (ลิงก์ในส่วน "แหล่งที่มา") ติดตั้งด้วยวิธีมาตรฐาน (แตกไฟล์ลงในไดเร็กทอรี / library / ของสภาพแวดล้อมการพัฒนา Arduino)

มาเขียนสเก็ตช์ง่ายๆ กันเถอะ ลองโหลดลงใน Arduino แบบร่างนี้จะส่งข้อความ RH และอุณหภูมิที่อ่านจากเซ็นเซอร์ DHT11 ไปยังพอร์ตอนุกรมของคอมพิวเตอร์ทุกๆ 2 วินาที

ภาพร่างสำหรับการทำงานกับเซนเซอร์วัดอุณหภูมิ-ความชื้น DHT11
ภาพร่างสำหรับการทำงานกับเซนเซอร์วัดอุณหภูมิ-ความชื้น DHT11

ขั้นตอนที่ 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 เป็นทศนิยม

แนะนำ: