DHT17 sıcaklık ve nem sensörü, oldukça geniş bir sıcaklık ve bağıl nem aralığında kullanılabilen popüler ve ucuz bir sensördür. Arduino'ya nasıl bağlanacağını ve ondan nasıl veri okunacağını görelim.
Gerekli
- -Arduino;
- - DHT17 sıcaklık ve nem sensörü.
Talimatlar
Aşama 1
Bu nedenle, DHT11 sensörü aşağıdaki özelliklere sahiptir:
- ölçülen bağıl nem aralığı - %5'e kadar hata ile %20..90, - ölçülen sıcaklık aralığı - 2 dereceye kadar hata ile 0..50 santigrat derece;
- nemdeki değişikliklere tepki süresi - 15 saniyeye kadar, sıcaklık - 30 saniyeye kadar;
- minimum yoklama süresi 1 saniyedir.
Gördüğünüz gibi, DHT11 sensörü çok hassas değil ve sıcaklık aralığı, iklimimizde soğuk mevsimde dış mekan ölçümleri için pek uygun olmayan negatif değerleri kapsamaz. Ancak düşük maliyeti, küçük boyutu ve kullanım kolaylığı bu dezavantajları kısmen telafi etmektedir.
Şekil, sensörün görünümünü ve boyutlarını milimetre cinsinden göstermektedir.
Adım 2
DHT11 sıcaklık ve nem sensörünün mikrodenetleyiciye, özellikle Arduino'ya bağlantı şemasını düşünün. Resimde:
- MCU - mikrodenetleyici (örneğin, Arduino veya benzeri) veya tek kartlı bilgisayar (Raspberry Pi veya benzeri);
- DHT11 - sıcaklık ve nem sensörü;
- VERİ - veri yolu; sensörden mikrodenetleyiciye giden bağlantı kablosunun uzunluğu 20 metreyi geçmezse, bu veri yolunun 5, 1 kOhm'luk bir dirençle güç kaynağına çekilmesi önerilir; 20 metreden fazla ise, başka bir uygun değer (daha küçük).
- VDD - sensör güç kaynağı; ~ 3.0 ila ~ 5.5 volt DC arasında izin verilen voltajlar; güç kaynağı ~ 3,3 V kullanılıyorsa, 20 cm'den uzun olmayan bir besleme kablosu kullanılması tavsiye edilir.
Sensör uçlarından biri - üçüncüsü - hiçbir şeye bağlı değil.
DHT11 sensörü genellikle gerekli borulama - çekme direnci ve filtre kapasitörü ile birlikte komple bir montaj olarak satılmaktadır.
Aşama 3
Düşünülen şemayı bir araya getirelim. Sensörle iletişimin zamanlama şemasını inceleyebilmem için devreye bir lojik analizör de bağlayacağım.
4. Adım
Basit yoldan gidelim: DHT11 sensörü için kitaplığı indirin ("Kaynaklar" bölümündeki bağlantı), standart şekilde kurun (Arduino geliştirme ortamının / library / dizinine açın).
Böyle basit bir eskiz yazalım. Arduino'ya yükleyelim. Bu çizim, DHT11 sensöründen okunan RH ve Sıcaklık mesajlarını her 2 saniyede bir bilgisayarın seri portuna çıkaracaktır.
Adım 5
Şimdi mantık analizöründen elde edilen zamanlama diyagramını kullanarak bilgi alışverişinin nasıl yapıldığını bulalım.
DHT11 sıcaklık ve nem sensörü, mikrodenetleyici ile iletişim kurmak için tek kablolu bir seri arabirim kullanır. Bir veri alışverişi yaklaşık 40 ms sürer ve şunları içerir: mikro denetleyiciden 1 istek biti, sensör yanıtının 1 biti ve sensörden 40 veri biti. Veriler şunları içerir: 16 bit nem bilgisi, 26 bit sıcaklık bilgisi ve 8 kontrol biti.
DHT11 sensörü ile Arduino iletişiminin zamanlama şemasına daha yakından bakalım.
Şekilden, iki tür dürtü olduğu görülebilir: kısa ve uzun. Bu değişim protokolündeki kısa darbeler sıfırları, uzun darbeleri - birleri belirtir.
Bu nedenle, ilk iki darbe Arduino'nun DHT11'e talebi ve buna bağlı olarak sensörün yanıtıdır. Ardından 16 bit nem geliyor. Ayrıca, solda yüksek ve düşük olmak üzere baytlara ayrılırlar. Yani, şeklimizde nem verileri aşağıdaki gibidir:
0001000000000000 = 00000000 00010000 = 0x10 = %16 BN.
Şuna benzer sıcaklık verileri:
0001011100000000 = 00000000 00010111 = 0x17 = 23 santigrat derece.
Bitleri kontrol edin - sağlama toplamı yalnızca alınan 4 veri baytının toplamıdır:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 ikili veya 16 + 23 = 39 ondalık.