الوصف
المواصفات الفنية
- جهد تشغيل من 3.3 – 5.5 فولت
- قراءة رقمية و بإستخدام مخرج واحد
- إمكانية قراءة درجات الحرارة من 0 إلى 50 درجة مئوية و رطوبة نسبيه من 20-90٪
- الدقة: +/- 5٪ للرطوبة و +/- 2 درجة مئوية
- معيار مؤشر القياس: 1٪ للرطوبة و 1 درجة مئوية للحرارة
- معامل تغير القياس عبر عمر الحساس: +/- 1٪ للرطوبة/السنة
ملحوظات هامه
- لابد من تفادي درجات الرطوبة العالية و التي قد تؤدي لتكثف الماء داخل الحساس
- في حالة التخزين لفترة طويلة يراعى الحفظ في درجة حرارة من 10 – 40 درجة مئوية و درجة رطوبة تحت 60٪
- التأكد من عدم عكس الأقطاب عند توصيل الحساس لتفادي فساد الوحدة
الأدوات اللازمة للتشغيل
- لوحة تحكم مثل الأردوينو
- كابل توصيل الأردوينو بالحاسب الألي للبرمجة
- حساس DH11
طريقة التوصيل
مخرج الأرضي (GND) في الأردوينو –> مخرج – في الحساس
محرج +5 فولت في الأردوينو –> مخرج الموجب في الحساس و الموجود في الوسط
مخرج رقمي مثل D8 في حالة المثال التالي –> مخرج S في الحساس
برنامج التشغيل
//KY015 DHT11 Temperature and humidity sensor int DHpin = 8; byte dat [5]; byte read_data () { byte data; for (int i = 0; i < 8; i ++) { if (digitalRead (DHpin) == LOW) { while (digitalRead (DHpin) == LOW); // wait for 50us delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1' if (digitalRead (DHpin) == HIGH) data |= (1 << (7-i)); // high front and low in the post while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver } } return data; } void start_test () { digitalWrite (DHpin, LOW); // bus down, send start signal delay (30); // delay greater than 18ms, so DHT11 start signal can be detected digitalWrite (DHpin, HIGH); delayMicroseconds (40); // Wait for DHT11 response pinMode (DHpin, INPUT); while (digitalRead (DHpin) == HIGH); delayMicroseconds (80); // DHT11 response, pulled the bus 80us if (digitalRead (DHpin) == LOW); delayMicroseconds (80); // DHT11 80us after the bus pulled to start sending data for (int i = 0; i < 4; i ++) // receive temperature and humidity data, the parity bit is not considered dat[i] = read_data (); pinMode (DHpin, OUTPUT); digitalWrite (DHpin, HIGH); // send data once after releasing the bus, wait for the host to open the next Start signal } void setup () { Serial.begin (9600); pinMode (DHpin, OUTPUT); } void loop () { start_test (); Serial.print ("Current humdity ="); Serial.print (dat [0], DEC); // display the humidity-bit integer; Serial.print ('.'); Serial.print (dat [1], DEC); // display the humidity decimal places; Serial.println ('%'); Serial.print ("Current temperature ="); Serial.print (dat [2], DEC); // display the temperature of integer bits; Serial.print ('.'); Serial.print (dat [3], DEC); // display the temperature of decimal places; Serial.println ('C'); delay (700); }