Агуулгын хүснэгт:
- Алхам 1: I2c хэрхэн ажилладаг
- Алхам 2: Номын сан
- Алхам 3: Behaivor
- Алхам 4: I2c хэрэглээ
- Алхам 5: Нэг утас ашиглах
- Алхам 6: Нууцаар унших
- Алхам 7: Энгийн унших
- Алхам 8: Бүрэн унших
- Алхам 9: Холболтын диаграм
- Алхам 10: Arduino: OneWire
- Алхам 11: Arduino: I2c
- Алхам 12: Esp8266 (D1Mini) OneWire
- Алхам 13: Esp8266 (D1Mini) I2c
- Алхам 14: Баярлалаа
Видео: DHT12 (i2c хямд чийгшил ба температур мэдрэгч), хурдан ашиглах: 14 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Та https://www.mischianti.org/2019/01/01/dht12-library-en/ сайтаас шинэчлэлт болон бусад мэдээллийг олж болно.
Би 2 утастай (i2c протокол) ашиглах боломжтой мэдрэгч дуртай боловч хямд өртөгтэйд дуртай.
Энэ бол i2c эсвэл нэг утсан холболттой ажилладаг DHT12 цуврал маш хямд өртөг/чийгшил мэдрэгчтэй (1 доллараас бага) Arduino болон esp8266 номын сан юм.
Хэрэв та esp01 ашиглахыг хүсч байвал (хэрэв та цуваа ашигладаг бол танд ердөө 2 зүү байдаг) чийгшил, температурыг уншиж i2c LCD дэлгэц дээр харуулна.
Хиймэл оюун ухаан нь заримдаа шалгалт тохируулга хийх шаардлагатай мэт санагддаг, гэхдээ надад ийм мод байдаг бөгөөд DHT22 -тэй төстэй утгыг олж авдаг. Хэрэв танд энэ асуудал тохируулагдсан бол github дээр асуудлыг нээгээд би хэрэгжилтийг нэмж оруулаарай.
Алхам 1: I2c хэрхэн ажилладаг
I2C нь SDA (өгөгдлийн шугам) ба SCL (цагийн шугам) гэсэн хоёр утастай ажилладаг.
Эдгээр шугамууд хоёулаа нээлттэй ус зайлуулах хоолойтой боловч резистороор татагдсан байдаг.
Ихэвчлэн нэг мастер, нэг буюу хэд хэдэн боол байдаг боловч хэд хэдэн эзэн байж болно, гэхдээ бид энэ тухай дараа ярих болно.
Мастер ба боол хоёулаа өгөгдөл дамжуулах эсвэл хүлээн авах боломжтой тул төхөөрөмж нь эдгээр дөрвөн төлөвийн аль нэгэнд байж болно: мастер дамжуулах, эзэн хүлээн авах, боол дамжуулах, боол хүлээн авах.
Алхам 2: Номын сан
Та миний номын санг эндээс олж болно.
Татаж авах
Баруун дээд буланд байгаа DOWNLOADS товчлуур дээр дарж шахагдаагүй хавтасны нэрийг DHT12 гэж нэрлэнэ үү.
DHT фолдерт DHT12.cpp болон DHT12.h байгаа эсэхийг шалгаарай.
DHT номын сангийн хавтсыг өөрийн / libraries / хавтсыг байрлуул.
Хэрэв таны анхны номын сан бол танд номын сангийн дэд хавтас үүсгэх шаардлагатай болж магадгүй юм.
IDE -г дахин эхлүүлнэ үү.
Алхам 3: Behaivor
Энэ номын сан нь DHT номын сангийн стандарт мэдрэгчүүдийн зан төлөвийг дуурайхыг хичээдэг (мөн маш олон кодыг хуулж авдаг), мөн би i2c olso -ийг удирдахын тулд кодыг ижил аргаар нэмдэг.
Энэ арга нь DHT номын сангийн мэдрэгчтэй ижил бөгөөд зарим нь шүүдэр цэгийн функцийг нэмж өгдөг.
Алхам 4: I2c хэрэглээ
I2c (анхдагч хаяг ба анхдагч SDA SCL зүү) ашиглахын тулд бүтээгч нь:
DHT12 dht12;
SDA SCL зүүгийн анхдагч утгыг авна уу.
(ESP-01-д шаардлагатай esp8266-ийн зориулалтын гүйцэтгэгчээр дахин тодорхойлох боломжтой). эсвэл
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> хаяг
хаягийг өөрчлөх.
Алхам 5: Нэг утас ашиглах
Нэг утас ашиглахын тулд:
DHT12 dht12 (uint8_t addressOrPin, үнэн)
addressOrPin -> зүү
логик утга нь oneWire эсвэл i2c горимыг сонгох явдал юм.
Алхам 6: Нууцаар унших
Та үүнийг "далд", "энгийн унших" эсвэл "бүрэн унших" ашиглан ашиглаж болно: Далд, зөвхөн эхний уншлага нь мэдрэгчийн жинхэнэ уншилтыг хийдэг бол нөгөө нь 2 секундын дотор уншдаг. интервал нь анхны уншихад хадгалагдсан утга юм.
// Хэрэв та хүчний параметрийг дамжуулаагүй бол мэдрэгчийн уншилт нь 2 секундын хугацаатай байна
// Цельсийн температурыг уншина уу (анхдагч) float t12 = dht12.readTemperature (); // Температурыг Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true) гэж уншина уу; // Мэдрэгчийн уншилт нь 2 секундын настай байж болно (энэ нь маш удаан мэдрэгчтэй) float h12 = dht12.readHumidity (); // Fahrenheit дахь дулааны индексийг тооцоолох (анхдагч) float hif12 = dht12.computeHeatIndex (f12, h12); // Цельсийн дулааны индексийг тооцоолох (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейт дэх шүүдэр цэгийг тооцоолох (анхдагч) хөвөгч dpf12 = dht12.dewPoint (f12, h12); // Цельсийн шүүдэр цэгийг тооцоолох (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Алхам 7: Энгийн унших
Унших статус авахын тулд энгийн унших.
// Хэрэв та хүчний параметрийг дамжуулаагүй бол мэдрэгчийн уншилт нь 2 секундын хугацаатай байна
bool chk = dht12.read (); // үнэн унших нь зүгээр, буруу унших асуудал
// Температурыг Цельсийн байдлаар уншина уу (анхдагчаар)
float t12 = dht12.readTemperature (); // Температурыг Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true) гэж уншина уу; // Мэдрэгчийн уншилт нь 2 секундын настай байж болно (энэ нь маш удаан мэдрэгчтэй) float h12 = dht12.readHumidity (); // Fahrenheit дахь дулааны индексийг тооцоолох (анхдагч) float hif12 = dht12.computeHeatIndex (f12, h12); // Цельсийн дулааны индексийг тооцоолох (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейт дэх шүүдэр цэгийг тооцоолох (анхдагч) хөвөгч dpf12 = dht12.dewPoint (f12, h12); // Цельсийн шүүдэр цэгийг тооцоолох (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Алхам 8: Бүрэн унших
Тодорхой статус авахын тулд бүрэн уншина уу.
// Хэрэв та хүчний параметрийг дамжуулаагүй бол мэдрэгчийн уншилт нь 2 секундын хугацаатай байна
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nУншуулагчийг унш:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); завсарлага; тохиолдол DHT12:: ERROR_CHECKSUM: Serial.println (F ("Хяналтын дүнгийн алдаа")); завсарлага; тохиолдол DHT12:: ERROR_TIMEOUT: Serial.println (F ("Цагийн зогсолтын алдаа")); завсарлага; тохиолдол DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Бага дохио дээр хугацаа хэтэрсэн алдаа, өндөр татах эсэргүүцлийг тавьж үзээрэй")); завсарлага; кейс DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Бага дохио дээр хугацаа хэтэрсэн алдаа, бага татах эсэргүүцлийг тавьж үзээрэй")); завсарлага; тохиолдолд DHT12:: ERROR_CONNECT: Serial.println (F ("Холболтын алдаа")); завсарлага; тохиолдолд DHT12:: ERROR_ACK_L: Serial.println (F ("AckL алдаа")); завсарлага; тохиолдолд DHT12:: ERROR_ACK_H: Serial.println (F ("AckH алдаа")); завсарлага; тохиолдол DHT12:: ERROR_UNKNOWN: Serial.println (F ("Үл мэдэгдэх алдаа DETECTED")); завсарлага; тохиолдол DHT12:: NONE: Serial.println (F ("Үр дүн байхгүй")); завсарлага; анхдагч: Serial.println (F ("Үл мэдэгдэх алдаа")); завсарлага; }
// Температурыг Цельсийн байдлаар уншина уу (анхдагчаар)
float t12 = dht12.readTemperature (); // Температурыг Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true) гэж уншина уу; // Мэдрэгчийн уншилт нь 2 секундын настай байж болно (энэ нь маш удаан мэдрэгчтэй) float h12 = dht12.readHumidity (); // Fahrenheit дахь дулааны индексийг тооцоолох (анхдагч) float hif12 = dht12.computeHeatIndex (f12, h12); // Цельсийн дулааны индексийг тооцоолох (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейт дэх шүүдэр цэгийг тооцоолох (анхдагч) хөвөгч dpf12 = dht12.dewPoint (f12, h12); // Цельсийн шүүдэр цэгийг тооцоолох (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Алхам 9: Холболтын диаграм
Жишээлбэл, холболтын диаграмм байгаа бөгөөд татах татах эсэргүүцлийг зөв ашиглах нь чухал юм.
Github дахь кодыг хуваалцах Bobadas, dplasa болон adafruit -ийн ачаар (би зарим код, санааг авдаг).
Алхам 10: Arduino: OneWire
Алхам 11: Arduino: I2c
Алхам 12: Esp8266 (D1Mini) OneWire
Алхам 13: Esp8266 (D1Mini) I2c
Алхам 14: Баярлалаа
Arduino тоглоомын талбай (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c төслийн цуврал (Цуглуулга):
- Температурын чийгшил мэдрэгч
- Аналог өргөтгөгч
- Дижитал өргөтгөгч
- LCD дэлгэц
Зөвлөмж болгож буй:
DHT12 I2C чийгшил ба температур мэдрэгчийг Arduino ашиглан хэрхэн ашиглах вэ: 7 алхам
DHT12 I2C -ийн чийгшил ба температур мэдрэгчийг Arduino -той хэрхэн ашиглах вэ: Энэхүү гарын авлагад бид DHT12 I2C -ийн чийгшил ба температур мэдрэгчийг Arduino -той хэрхэн ашиглаж, OLED дэлгэц дээр утгыг харуулах болно
LoRa ашиглан хүлэмжийг автоматжуулах! (1 -р хэсэг) -- Мэдрэгч (температур, чийгшил, хөрсний чийгшил): 5 алхам
LoRa ашиглан хүлэмжийг автоматжуулах! (1 -р хэсэг) || Мэдрэгч (температур, чийгшил, хөрсний чийгшил): Энэ төсөлд би хүлэмжийг хэрхэн автоматжуулсан болохыг харуулах болно. Энэ нь би хүлэмжийг хэрхэн яаж барьснаа, цахилгаан болон автоматжуулалтын электроникийг хэрхэн холбосныг харуулах болно гэсэн үг юм. Түүнчлэн би L ашигладаг Arduino самбарыг хэрхэн програмчлахыг танд үзүүлэх болно
Raspberry Pi - HIH6130 I2C чийгшил ба температур мэдрэгч Python заавар: 4 алхам
Raspberry Pi - HIH6130 I2C чийгшил ба температур мэдрэгч Python заавар: HIH6130 бол дижитал гаралттай чийгшил, температур мэдрэгч юм. Эдгээр мэдрэгч нь ± 4% RH нарийвчлалын түвшинг хангадаг. Салбартаа тэргүүлэгч урт хугацааны тогтвортой байдал, жинхэнэ температурын нөхөн төлбөртэй дижитал I2C, салбартаа тэргүүлэгч найдвартай байдал, эрчим хүчний хэмнэлттэй
Raspberry Pi - HIH6130 I2C чийгшил ба температур мэдрэгч Java заавар: 4 алхам
Raspberry Pi - HIH6130 I2C чийгшил ба температур мэдрэгч Java заавар: HIH6130 бол дижитал гаралттай чийгшил, температур мэдрэгч юм. Эдгээр мэдрэгч нь ± 4% RH нарийвчлалын түвшинг хангадаг. Салбартаа тэргүүлэгч урт хугацааны тогтвортой байдал, жинхэнэ температурын нөхөн төлбөртэй дижитал I2C, салбартаа тэргүүлэгч найдвартай байдал, эрчим хүчний хэмнэлттэй
Хурдан, хурдан, хямд, сайхан харагддаг LED өрөөний гэрэлтүүлэг (хүн бүрт зориулсан): 5 алхам (зурагтай)
Хурдан, хурдан, хямд, сайхан харагддаг LED өрөөний гэрэлтүүлэг (хүн бүрт зориулсан): Бүгдийг тавтай морилно уу :-) Энэ бол миний анхны зааварчилгаа тул сэтгэгдлээ хүлээн авна уу :-) Миний танд үзүүлэх гэж байгаа зүйл бол хурдан LED гэрэлтүүлгийг хэрхэн яаж хийх вэ. TINY buget.Танд хэрэгтэй зүйл бол: CableLEDsResistors (5VOhms for 12V) StapelsGehmer ironCutters and other basi