Ang sensor ng temperatura at kahalumigmigan ng DHT17 ay isang tanyag at murang sensor na maaaring magamit sa isang malawak na saklaw ng temperatura at kamag-anak na halumigmig. Tingnan natin kung paano ito ikonekta sa Arduino at kung paano basahin ang data mula rito.
Kailangan
- - Arduino;
- - DHT17 temperatura at sensor ng kahalumigmigan.
Panuto
Hakbang 1
Kaya, ang sensor ng DHT11 ay may mga sumusunod na katangian:
- Saklaw ng sinusukat na kamag-anak na kahalumigmigan - 20..90% na may error na hanggang 5%, - saklaw ng sinusukat na temperatura - 0..50 degrees Celsius na may error na hanggang 2 degree;
- oras ng pagtugon sa mga pagbabago sa kahalumigmigan - hanggang sa 15 segundo, temperatura - hanggang sa 30 segundo;
- ang minimum na panahon ng botohan ay 1 segundo.
Tulad ng nakikita mo, ang sensor ng DHT11 ay hindi masyadong tumpak, at ang saklaw ng temperatura ay hindi sumasaklaw sa mga negatibong halaga, na halos hindi angkop para sa panlabas na mga sukat sa malamig na panahon sa ating klima. Gayunpaman, ang mababang gastos, maliit na sukat at kadalian ng paggamit nito ay bahagyang binabawi ang mga hindi magandang ito.
Ipinapakita ng pigura ang hitsura ng sensor at mga sukat nito sa millimeter.
Hakbang 2
Isaalang-alang ang diagram ng koneksyon ng temperatura ng DHT11 at sensor ng kahalumigmigan sa microcontroller, sa partikular, sa Arduino. Sa imahe:
- MCU - microcontroller (halimbawa, Arduino o katulad) o solong board computer (Raspberry Pi o katulad);
- DHT11 - sensor ng temperatura at halumigmig;
- DATA - data bus; kung ang haba ng pagkonekta na cable mula sa sensor sa microcontroller ay hindi hihigit sa 20 metro, kung gayon inirerekumenda na hilahin ang bus na ito sa supply ng kuryente na may resistor na 5, 1 kOhm; kung higit sa 20 metro, pagkatapos ay isa pang naaangkop na halaga (mas maliit).
- VDD - supply ng kuryente ng sensor; pinahihintulutang voltages mula ~ 3.0 hanggang ~ 5.5 volts DC; kung ang supply ng kuryente ~ 3.3 V ay ginamit, ipinapayong gumamit ng isang supply wire na hindi hihigit sa 20 cm.
Ang isa sa mga lead ng sensor - ang pangatlo - ay hindi konektado sa anumang bagay.
Ang sensor ng DHT11 ay madalas na ibinebenta bilang isang kumpletong pagpupulong na may kinakailangang piping - pull-up risistor at filter capacitor.
Hakbang 3
Isama natin ang isinasaalang-alang na pamamaraan. Ikonekta ko rin ang isang analysis ng lohika sa circuit upang mapag-aralan ko ang diagram ng tiyempo ng komunikasyon gamit ang sensor.
Hakbang 4
Pumunta tayo sa simpleng paraan: i-download ang library para sa sensor ng DHT11 (link sa seksyong "Mga Pinagmulan"), i-install ito sa karaniwang paraan (i-unpack ito sa direktoryo ng / mga aklatan / ng Arduino development environment).
Sumulat tayo ng isang simpleng sketch. I-load natin ito sa Arduino. Ang sketch na ito ay maglalabas ng mga mensahe ng RH at Temperatura na basahin mula sa sensor ng DHT11 sa serial port ng computer tuwing 2 segundo.
Hakbang 5
Ngayon, gamit ang diagram ng tiyempo na nakuha mula sa taganalisa ng lohika, alamin natin kung paano isinasagawa ang palitan ng impormasyon.
Ang sensor ng temperatura at kahalumigmigan ng DHT11 ay gumagamit ng isang solong-wire na serial interface upang makipag-usap sa microcontroller. Ang isang palitan ng data ay tumatagal ng tungkol sa 40 ms at naglalaman ng: 1 kahilingan bit mula sa microcontroller, 1 bit ng sensor tugon at 40 data bits mula sa sensor. Kasama sa data ang: 16 piraso ng impormasyon sa kahalumigmigan, 26 piraso ng impormasyon sa temperatura, at 8 mga piraso ng tseke.
Tingnan natin nang mas malapit ang diagram ng tiyempo ng komunikasyon ng Arduino sa sensor ng DHT11.
Maaari itong makita mula sa pigura na mayroong dalawang uri ng mga salpok: maikli at mahaba. Ang mga maikling pulso sa exchange protocol na ito ay nagpapahiwatig ng mga zero, mahabang pulso - mga bago.
Kaya, ang unang dalawang pulso ay ang kahilingan ng Arduino sa DHT11 at, nang naaayon, ang tugon ng sensor. Susunod ay dumating ang 16 piraso ng halumigmig. Bukod dito, nahahati sila sa mga byte, mataas at mababa, mataas sa kaliwa. Iyon ay, sa aming pigura, ang data ng kahalumigmigan ay ang mga sumusunod:
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.
Ang data ng temperatura na katulad ng:
0001011100000000 = 00000000 00010111 = 0x17 = 23 degrees Celsius.
Suriin ang mga piraso - ang tsekum ay ang buod lamang ng 4 na natanggap na byte ng data:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 sa binary o 16 + 23 = 39 sa decimal.