DHT17 температур ба чийгшлийн мэдрэгч нь нэлээд өргөн температур, харьцангуй чийгшилд ашиглах боломжтой түгээмэл бөгөөд хямд мэдрэгч юм. Үүнийг Arduino-той хэрхэн холбох, үүнээс өгөгдлийг хэрхэн уншихыг үзье.
Шаардлагатай
- - Ардуино;
- - DHT17 температур ба чийгшлийн мэдрэгч.
Зааварчилгаа
1-р алхам
Тиймээс DHT11 мэдрэгч нь дараах шинж чанартай байна.
- хэмжсэн харьцангуй чийгшлийн хүрээ - 5% хүртэлх алдаатай 20..90%, - хэмжсэн температурын хүрээ - 0..50 хэм, 2 градусын алдаатай;
- чийгийн өөрчлөлтөд хариу өгөх хугацаа - 15 секунд хүртэл, температур - 30 секунд хүртэл;
- санал авах доод хугацаа 1 секунд байна.
Таны харж байгаагаар DHT11 мэдрэгч нь тийм ч зөв биш бөгөөд температурын хязгаар нь сөрөг утгыг хамардаггүй бөгөөд энэ нь манай цаг уурын нөхцөлд хүйтэн улиралд гадаа хэмжихэд бараг тохирохгүй юм. Гэсэн хэдий ч хямд өртөгтэй, жижиг хэмжээтэй, ашиглахад хялбар байдал нь эдгээр сул талыг хэсэгчлэн нөхдөг.
Зураг дээр мэдрэгчийн гадаад байдал, түүний хэмжээсийг миллиметрээр харуулав.
Алхам 2
DHT11 температур ба чийгшлийн мэдрэгчийн микроконтроллер, ялангуяа Ардуино руу холбогдох схемийг авч үзье. Зураг дээр:
- MCU - микроконтроллер (жишээлбэл, Arduino эсвэл үүнтэй төстэй) эсвэл дан самбар бүхий компьютер (Raspberry Pi эсвэл үүнтэй төстэй);
- DHT11 - температур ба чийгшлийн мэдрэгч;
- DATA - өгөгдлийн автобус; хэрэв мэдрэгчээс микроконтроллер руу холбох кабелийн урт 20 метрээс хэтрэхгүй бол 5, 1 кОмм эсэргүүцэл бүхий энэ автобусыг цахилгаан тэжээл рүү татахыг зөвлөж байна; хэрэв 20 метрээс илүү байвал өөр нэг тохиромжтой утга (бага).
- VDD - мэдрэгчийн тэжээлийн хангамж; ~ 3.0-аас ~ 5.5 вольтын тогтмол гүйдлийн зөвшөөрөгдөх хүчдэл; хэрэв цахилгаан хангамж ~ 3.3 В-ийг ашигладаг бол 20 см-ээс хэтрэхгүй тэжээлийн утас ашиглах нь зүйтэй.
Мэдрэгчийн нэг нь гурав дахь нь юу ч холбоогүй байна.
DHT11 мэдрэгчийг ихэвчлэн шаардлагатай хоолойгоор татдаг резистор ба шүүлтүүр конденсатор бүхий иж бүрдэл хэлбэрээр зардаг.
Алхам 3
Харгалзан үзсэн схемийг нэгтгье. Би мөн логик анализаторыг хэлхээнд холбож, мэдрэгчтэй харилцах хугацааны диаграммыг судалж чадна.
Алхам 4
Энгийн аргаар явъя: DHT11 мэдрэгчийн санг татаж аваад ("Эх сурвалж" хэсгийн холбоос), стандарт аргаар суулгаарай (Arduino хөгжүүлэлтийн орчны / libraries / директор дотор задлаад).
Ийм энгийн ноорог бичье. Ардуино руу ачаад үзье. Энэхүү ноорог нь DHT11 мэдрэгчээс уншсан RH ба Температурын мэдээг компьютерын цуваа порт руу 2 секунд тутамд гаргана.
Алхам 5
Одоо логик анализатороос олж авсан цагийн схемийг ашиглан мэдээллийн солилцоо хэрхэн явагдаж байгааг олж мэдье.
DHT11 температур ба чийгшлийн мэдрэгч нь микроконтроллертой холбогдохын тулд нэг утастай цуваа интерфэйсийг ашигладаг. Нэг өгөгдлийн солилцоо нь 40 мс орчим үргэлжилдэг бөгөөд үүнд: микроконтроллероос 1 хүсэлтийн бит, мэдрэгчийн хариу урвалаас 1 бит, мэдрэгчээс 40 өгөгдлийн бит орно. Өгөгдөлд: 16 битийн чийглэгийн мэдээлэл, 26 битийн температурын мэдээлэл, 8 шалгах бит орно.
DHT11 мэдрэгчтэй Arduino холбооны цаг хугацааны схемийг нарийвчлан авч үзье.
Богино ба урт гэсэн хоёр төрлийн импульс байдгийг зураг дээрээс харж болно. Энэхүү солилцооны протокол дахь богино импульс нь тэг, урт импульс - нэгийг илэрхийлнэ.
Тиймээс эхний хоёр импульс нь Arduino-ийн DHT11-д тавьсан хүсэлт ба түүний дагуу мэдрэгчийн хариу үйлдэл юм. Дараа нь 16 битийн чийгшил ирдэг. Түүгээр ч үл барам зүүн, өндөр, бага байт гэж хуваадаг. Энэ бол бидний зураг дээр чийгийн өгөгдөл дараах байдалтай байна.
0001000000000000 = 00000000 00010000 = 0х10 = 16% НҮЭМ.
Үүнтэй төстэй температурын өгөгдөл:
0001011100000000 = 00000000 00010111 = 0х17 = Цельсийн 23 градус.
Битийг шалгах - хяналтын дүн нь зөвхөн хүлээн авсан 4 өгөгдлийн байтын нийлбэр юм.
00000000 +
00010000 +
00000000 +
00010111 =
00100111 хоёртын тоогоор эсвэл 16 + 23 = 39 аравтын бутархай тоогоор.