Orodha ya maudhui:

DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka: Hatua 14
DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka: Hatua 14

Video: DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka: Hatua 14

Video: DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka: Hatua 14
Video: AM2320 Датчик температуры и влажности и Ардуино 2024, Novemba
Anonim
DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka
DHT12 (i2c Unyevu Nafuu na Sensorer ya Joto), Matumizi rahisi ya haraka

Unaweza kupata sasisho na zingine kwenye wavuti yangu

Napenda sensa inayoweza kutumiwa na waya 2 (itifaki ya i2c), lakini nampenda yule wa bei rahisi.

Hii ni maktaba ya Arduino na esp8266 ya safu ya DHT12 ya sensorer ya joto / unyevu wa gharama ya chini sana (chini ya $ 1) ambayo inafanya kazi na i2c au unganisho moja la waya.

Inatumika sana ikiwa unataka kutumia esp01 (ikiwa unatumia serial una pini 2 tu) kusoma unyevu na joto na kuionyesha kwenye LCD ya i2c.

AI ilisoma kwamba wakati mwingine inaonekana kuwa inahitaji usawa, lakini nina mti wa hii na napata thamani sawa na DHT22. Ikiwa una hesabu ya shida hii, fungua suala kwenye github na ninaongeza utekelezaji.

Hatua ya 1: Jinsi I2c inavyofanya kazi

Jinsi I2c Inafanya Kazi
Jinsi I2c Inafanya Kazi

I2C inafanya kazi na waya zake mbili, SDA (laini ya data) na SCL (laini ya saa).

Mistari yote miwili iko wazi, lakini imevutwa na vizuia.

Kawaida kuna bwana mmoja na mtumwa mmoja au wengi kwenye mstari, ingawa kunaweza kuwa na mabwana wengi, lakini tutazungumza juu yake baadaye.

Wote mabwana na watumwa wanaweza kusambaza au kupokea data, kwa hivyo, kifaa kinaweza kuwa katika moja ya majimbo haya manne: kusambaza bwana, kupokea bwana, kusambaza watumwa, kupokea watumwa.

Hatua ya 2: Maktaba

Unaweza kupata maktaba yangu hapa.

Ili kupakua

Bonyeza kitufe cha DOWNLOADS kwenye kona ya juu kulia, badilisha jina folda isiyofinywa ya DHT12.

Angalia kuwa folda ya DHT ina DHT12.cpp na DHT12.h.

Weka folda ya maktaba ya DHT yako / maktaba / folda.

Unaweza kuhitaji kuunda folda ndogo ya maktaba ikiwa ni maktaba yako ya kwanza.

Anzisha tena IDE.

Hatua ya 3: Mhudumu

Ibra hii inajaribu kuiga tabia ya sensorer ya kiwango cha maktaba ya DHT (na nakili nambari nyingi), na ninaongeza nambari ya kusimamia i2c olso kwa njia ile ile.

Njia hiyo ni sawa na sensorer ya maktaba ya DHT, na zingine zikiongeza kama kazi ya mahali pa umande.

Hatua ya 4: Matumizi ya I2c

Kutumia na i2c (anwani chaguomsingi na pini chaguomsingi ya SDA SCL) mjenzi ni:

DHT12 dht12;

na uchukue thamani chaguomsingi ya pini ya SDA SCL.

(Inawezekana kufafanua upya na mtangazaji maalum wa esp8266, inahitajika kwa ESP-01). au

DHT12 dht12 (anwani ya uint8_tOrPin)

anwaniOrPin -> anwani

kubadilisha anwani.

Hatua ya 5: Matumizi Moja ya waya

Kutumia waya moja:

DHT12 dht12 (anwani ya uint8_tOrPin, kweli)

anwaniOrPin -> pini

Thamani ya boolean ni uteuzi wa mode OneWire au i2c.

Hatua ya 6: Soma wazi

Unaweza kuitumia kwa "wazi", "kusoma rahisi" au "kusoma kamili": Imetumika, ni kusoma tu ya kwanza ikisoma kweli ya sensa, nyingine kusoma ambayo inakuwa katika 2secs. muda ni thamani iliyohifadhiwa ya kusoma kwanza.

// Kusoma kwa sensa kuna sekunde 2 za muda uliopita, isipokuwa unapitisha parameta ya nguvu

// Soma joto kama Celsius (chaguo-msingi) kuelea t12 = dht12.readTemperature (); // Soma joto kama Fahrenheit (isFahrenheit = kweli) kuelea f12 = dht12.readTemperature (kweli); Kusoma kwa sensorer pia kunaweza kuwa hadi sekunde 2 'zamani' (ni sensorer polepole sana) kuelea h12 = dht12.readHumidity (); // Fanya fahirisi ya joto katika Fahrenheit (chaguo-msingi) kuelea hif12 = dht12.computeHeatIndex (f12, h12); // Fanya faharisi ya joto katika Celsius (isFahreheit = uwongo) kuelea hic12 = dht12.computeHeatIndex (t12, h12, uwongo); // Fanya alama ya umande katika Fahrenheit (chaguo-msingi) kuelea dpf12 = dht12.dewPoint (f12, h12); // Sehemu ya umande wa hesabu katika Celsius (isFahreheit = uwongo) kuelea dpc12 = dht12.dewPoint (t12, h12, uwongo);

Hatua ya 7: Soma Rahisi

Kusoma rahisi kupata hadhi ya kusoma.

// Kusoma kwa sensa kuna sekunde 2 za muda uliopita, isipokuwa unapitisha parameta ya nguvu

bool chk = dht12.read (); // kusoma kweli ni sawa, shida ya kusoma ya uwongo

// Soma joto kama Celsius (chaguomsingi)

kuelea t12 = dht12.readTemperature (); // Soma joto kama Fahrenheit (isFahrenheit = kweli) kuelea f12 = dht12.readTemperature (kweli); Kusoma kwa sensorer pia kunaweza kuwa hadi sekunde 2 'zamani' (ni sensorer polepole sana) kuelea h12 = dht12.readHumidity (); // Fanya fahirisi ya joto katika Fahrenheit (chaguo-msingi) kuelea hif12 = dht12.computeHeatIndex (f12, h12); // Fanya hesabu ya joto katika Celsius (isFahreheit = uwongo) kuelea hic12 = dht12.computeHeatIndex (t12, h12, uwongo); // Fanya alama ya umande katika Fahrenheit (chaguo-msingi) kuelea dpf12 = dht12.dewPoint (f12, h12); // Sehemu ya umande wa hesabu katika Celsius (isFahreheit = uwongo) kuelea dpc12 = dht12.dewPoint (t12, h12, uwongo);

Hatua ya 8: Soma kamili

Kusoma kamili kupata hali maalum.

// Kusoma kwa sensa kuna sekunde 2 za muda uliopita, isipokuwa unapitisha parameta ya nguvu

DHT12:: ReadStatus chk = dht12. StatStatus (); Serial.print (F ("\ nSensa ya kusoma:")); kubadili (chk) {kesi DHT12:: OK: Serial.println (F ("OK")); kuvunja; kesi DHT12:: ERROR_CHECKSUM: Serial.println (F ("Hitilafu ya Checksum")); kuvunja; kesi DHT12:: ERROR_TIMEOUT: Serial.println (F ("Hitilafu ya kumaliza muda")); kuvunja; kesi DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Hitilafu ya kumaliza muda kwenye ishara ya chini, jaribu kuweka upinzani mkubwa wa pullup")); kuvunja; kesi DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Hitilafu ya kumaliza muda kwenye ishara ya chini, jaribu kuweka upinzani mdogo wa pullup")); kuvunja; kesi DHT12:: ERROR_CONNECT: Serial.println (F ("Unganisha kosa")); kuvunja; kesi DHT12:: ERROR_ACK_L: Serial.println (F ("AckL error")); kuvunja; kesi DHT12:: ERROR_ACK_H: Serial.println (F ("AckH makosa")); kuvunja; kesi DHT12:: ERROR_UNKNOWN: Serial.println (F ("Kosa lisilofahamika DETECTED")); kuvunja; kesi DHT12:: HAKUNA: Serial.println (F ("Hakuna matokeo")); kuvunja; chaguo-msingi: Serial.println (F ("Hitilafu isiyojulikana")); kuvunja; }

// Soma joto kama Celsius (chaguomsingi)

kuelea t12 = dht12.readTemperature (); // Soma joto kama Fahrenheit (isFahrenheit = kweli) kuelea f12 = dht12.readTemperature (kweli); Kusoma kwa sensorer pia kunaweza kuwa hadi sekunde 2 'zamani' (ni sensorer polepole sana) kuelea h12 = dht12.readHumidity (); // Fanya fahirisi ya joto katika Fahrenheit (chaguo-msingi) kuelea hif12 = dht12.computeHeatIndex (f12, h12); // Fanya hesabu ya joto katika Celsius (isFahreheit = uwongo) kuelea hic12 = dht12.computeHeatIndex (t12, h12, uwongo); // Fanya alama ya umande katika Fahrenheit (chaguo-msingi) kuelea dpf12 = dht12.dewPoint (f12, h12); // Sehemu ya umande wa hesabu katika Celsius (isFahreheit = uwongo) kuelea dpc12 = dht12.dewPoint (t12, h12, uwongo);

Hatua ya 9: Mchoro wa Uunganisho

Kwa mifano, kuna mchoro wa unganisho, ni muhimu kutumia kontena sahihi la pullup.

Shukrani kwa Bobadas, dplasa na adafruit, kushiriki nambari huko github (ambapo ninachukua nambari na maoni).

Hatua ya 10: Arduino: OneWire

Arduino: OneWire
Arduino: OneWire

Hatua ya 11: Arduino: I2c

Arduino: I2c
Arduino: I2c

Hatua ya 12: Esp8266 (D1Mini) OneWire

Esp8266 (D1Mini) OneWire
Esp8266 (D1Mini) OneWire

Hatua ya 13: Esp8266 (D1Mini) I2c

Esp8266 (D1Mini) I2c
Esp8266 (D1Mini) I2c

Hatua ya 14: Asante

Uwanja wa michezo wa Arduino (https://playground.arduino.cc/Main/DHT12SensorLibrary)

Mfululizo wa mradi wa i2c (Ukusanyaji):

  • Sensor ya unyevu wa joto
  • Analog ya kupanua
  • Kupanua kwa dijiti
  • Uonyesho wa LCD

Ilipendekeza: