Mundarija:
- 1 -qadam: I2c qanday ishlaydi
- 2 -qadam: kutubxona
- 3 -qadam: Behaivor
- 4 -qadam: I2c -dan foydalanish
- 5 -qadam: bitta simdan foydalanish
- 6 -qadam: Yashirin o'qish
- 7 -qadam: oddiy o'qish
- 8 -qadam: To'liq o'qish
- 9 -qadam: ulanish diagrammasi
- 10 -qadam: Arduino: OneWire
- 11 -qadam: Arduino: I2c
- 12 -qadam: Esp8266 (D1Mini) OneWire
- 13 -qadam: Esp8266 (D1Mini) I2c
- 14 -qadam: Rahmat
Video: DHT12 (i2c arzon namlik va harorat sensori), tez ishlatish: 14 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Yangilanish va boshqalarni mening saytimda topishingiz mumkin
Menga 2 simli (i2c protokoli) ishlatilishi mumkin bo'lgan sensor yoqadi, lekin men arzonini yaxshi ko'raman.
Bu i2c yoki bitta simli ulanish bilan ishlaydigan DHT12 seriyali juda past narxli (1 $ dan kam) Arduino va esp8266 kutubxonasi.
Agar siz namlik va haroratni o'qish va uni i2c LCD displeyda ko'rsatish uchun esp01 dan foydalanmoqchi bo'lsangiz (agar siz ketma -ket ishlatsangiz, faqat 2 pinli).
AI o'qidi, ba'zida kalibrlash kerak ko'rinadi, lekin menda bu daraxt bor va DHT22 ga juda o'xshash qiymatga ega bo'laman. Agar sizda bu muammoni kalibrlash bo'lsa, github -da muammoni oching va men dasturni qo'shaman.
1 -qadam: I2c qanday ishlaydi
I2C ikkita sim bilan ishlaydi: SDA (ma'lumotlar liniyasi) va SCL (soat chizig'i).
Bu ikkala chiziq ham ochiq-oydin, lekin rezistorlar yordamida tortilgan.
Odatda chiziqda bitta xo'jayin va bitta yoki bir nechta qul bo'ladi, garchi bir nechta xo'jayin bo'lishi mumkin, lekin biz bu haqda keyinroq gaplashamiz.
Xo'jayinlar ham, qullar ham ma'lumotlarni uzatishi yoki qabul qilishi mumkin, shuning uchun qurilma ushbu to'rt holatning birida bo'lishi mumkin: asosiy uzatish, master qabul qilish, qul uzatish, qul qabul qilish.
2 -qadam: kutubxona
Bu erda mening kutubxonamni topishingiz mumkin.
Yuklab olish uchun
O'ng yuqori burchakdagi YUKLASH tugmasini bosing, siqilmagan papkaning nomini o'zgartiring DHT12.
DHT papkasida DHT12.cpp va DHT12.h borligini tekshiring.
DHT kutubxona papkasini / libraries / papkasini joylashtiring.
Agar siz birinchi kutubxonangiz bo'lsa, kutubxonalar pastki papkasini yaratishingiz kerak bo'lishi mumkin.
IDE -ni qayta ishga tushiring.
3 -qadam: Behaivor
Bu kutubxona standart DHT kutubxona datchiklarining xatti -harakatlarini taqlid qilishga harakat qiladi (va ko'p kodni nusxa ko'chiradi) va men shu tarzda i2c olso -ni boshqarish uchun kod qo'shaman.
Usul DHT kutubxonasi sensori bilan bir xil, ba'zilari shudring nuqtasi funktsiyasini qo'shadi.
4 -qadam: I2c -dan foydalanish
I2c (standart manzil va standart SDA SCL pin) bilan foydalanish uchun konstruktor:
DHT12 dht12;
va SDA SCL pin uchun standart qiymatni oling.
(ESP-01 uchun zarur bo'lgan esp8266 uchun belgilangan konstruktor bilan qayta aniqlash mumkin). yoki
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> manzil
manzilni o'zgartirish uchun.
5 -qadam: bitta simdan foydalanish
Bitta simni ishlatish uchun:
DHT12 dht12 (uint8_t addressOrPin, rost)
addressOrPin -> pin
boolean qiymati - OneWire yoki i2c rejimini tanlash.
6 -qadam: Yashirin o'qish
Siz uni "yopiq", "oddiy o'qish" yoki "to'liq o'qish" bilan ishlatishingiz mumkin: Yopiq, faqat sensorning haqiqiy o'qilishini bajaradigan birinchi o'qish, ikkinchisi 2 soniya ichida o'qiladi. interval - bu birinchi o'qishning saqlangan qiymati.
// Sensor o'qilishi, agar kuch parametrini o'tkazmasangiz, 2 soniya vaqtni oladi
// Haroratni Selsiy bo'yicha o'qing (standart) float t12 = dht12.readTemperature (); // Haroratni Farengeyt sifatida o'qing (isFahrenheit = rost) float f12 = dht12.readTemperature (rost); // Sensor o'qishlari ham 2 soniyagacha bo'lishi mumkin (uning sensori juda sekin) h12 = dht12.readHumidity (); // Farengeytdagi issiqlik indeksini hisoblang (sukut bo'yicha) hif12 = dht12.computeHeatIndex (f12, h12); // Issiqlik indeksini Selsiy bo'yicha hisoblash (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Farengeytdagi shudring nuqtasini hisoblash (standart) float dpf12 = dht12.dewPoint (f12, h12); // Selsiydagi shudring nuqtasini hisoblash (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
7 -qadam: oddiy o'qish
O'qish maqomini olish uchun oddiy o'qish.
// Sensor o'qilishi, agar kuch parametrini o'tkazmasangiz, 2 soniya vaqtni oladi
bool chk = dht12.read (); // haqiqiy o'qish yaxshi, noto'g'ri o'qish muammosi
// Haroratni Selsiy bo'yicha o'qing (standart)
float t12 = dht12.readTemperature (); // Haroratni Farengeyt (isFahrenheit = rost) float f12 = dht12.readTemperature (rost) sifatida o'qing; // Sensor o'qishlari ham 2 soniyagacha bo'lishi mumkin (uning sensori juda sekin) h12 = dht12.readHumidity (); // Farengeytda issiqlik indeksini hisoblang (sukut bo'yicha) hif12 = dht12.computeHeatIndex (f12, h12); // Issiqlik indeksini Selsiy bo'yicha hisoblash (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Farengeytdagi shudring nuqtasini hisoblash (standart) float dpf12 = dht12.dewPoint (f12, h12); // Selsiydagi shudring nuqtasini hisoblash (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
8 -qadam: To'liq o'qish
Belgilangan maqomni olish uchun to'liq o'qing.
// Sensor o'qilishi, agar kuch parametrini o'tkazmasangiz, 2 soniya vaqtni oladi
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nO'qish sensori:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); tanaffus; DHT12:: ERROR_CHECKSUM: Serial.println (F ("Checksum error")); tanaffus; DHT12:: ERROR_TIMEOUT: Serial.println (F ("Vaqt tugashi xatosi")); tanaffus; DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Past signalda kutish xatosi, yuqori tortishish qarshiligini qo'yishga harakat qiling")); tanaffus; DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Past signalda kutish xatosi, past tortishish qarshiligini qo'yishga harakat qiling")); tanaffus; DHT12:: ERROR_CONNECT: Serial.println (F ("Ulanish xatosi")); tanaffus; DHT12:: ERROR_ACK_L: Serial.println (F ("AckL xatosi")); tanaffus; DHT12:: ERROR_ACK_H: Serial.println (F ("AckH xatosi")); tanaffus; DHT12:: ERROR_UNKNOWN: Serial.println (F ("Noma'lum xatolik aniqlandi")); tanaffus; DHT12:: NONE: Serial.println (F ("Natija yo'q")); tanaffus; standart: Serial.println (F ("Noma'lum xato")); tanaffus; }
// Haroratni Selsiy bo'yicha o'qing (standart)
float t12 = dht12.readTemperature (); // Haroratni Farengeyt (isFahrenheit = rost) float f12 = dht12.readTemperature (rost) sifatida o'qing; // Sensor o'qishlari ham 2 soniyagacha bo'lishi mumkin (uning sensori juda sekin) h12 = dht12.readHumidity (); // Farengeytda issiqlik indeksini hisoblang (sukut bo'yicha) hif12 = dht12.computeHeatIndex (f12, h12); // Tselsiy bo'yicha issiqlik indeksini hisoblash (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Farengeytdagi shudring nuqtasini hisoblash (standart) float dpf12 = dht12.dewPoint (f12, h12); // Selsiydagi shudring nuqtasini hisoblash (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
9 -qadam: ulanish diagrammasi
Misollar bilan, ulanish diagrammasi mavjud, to'g'ri tortish qarshiligini ishlatish muhim.
Github -da kodni almashish uchun Bobadas, dplasa va adafruit -ga rahmat (bu erda men ba'zi kod va g'oyalarni olaman).
10 -qadam: Arduino: OneWire
11 -qadam: Arduino: I2c
12 -qadam: Esp8266 (D1Mini) OneWire
13 -qadam: Esp8266 (D1Mini) I2c
14 -qadam: Rahmat
Arduino o'yin maydonchasi (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c loyihalar seriyasi (To'plam):
- Harorat namlik sensori
- Analog kengaytiruvchi
- Raqamli kengaytirgich
- LCD displey
Tavsiya:
Arduino bilan DHT12 I2C namlik va harorat sensori qanday ishlatiladi: 7 qadam
Arduino bilan DHT12 I2C namlik va harorat sensori qanday ishlatiladi: Ushbu qo'llanmada biz DHT12 I2C namlik va harorat sensori bilan Arduino -dan qanday foydalanishni va OLED -displeyda qiymatlarni ko'rsatishni o'rganamiz
Raspberry Pi - HIH6130 I2C namlik va harorat sensori Python darsligi: 4 qadam
Raspberry Pi - HIH6130 I2C namlik va harorat sensori Python qo'llanmasi: HIH6130 - bu raqamli chiqishga ega namlik va harorat sensori. Bu sensorlar ± 4% RH aniqlik darajasini ta'minlaydi. Sanoatning etakchi uzoq muddatli barqarorligi, haqiqiy harorat kompensatsiyalangan raqamli I2C, sanoatning etakchi ishonchliligi, energiya samaradorligi
Raspberry Pi - HIH6130 I2C namlik va harorat sensori Java darsligi: 4 qadam
Raspberry Pi - HIH6130 I2C namlik va harorat sensori Java darsligi: HIH6130 - bu raqamli chiqishga ega namlik va harorat sensori. Bu sensorlar ± 4% RH aniqlik darajasini ta'minlaydi. Sanoatning etakchi uzoq muddatli barqarorligi, haqiqiy harorat kompensatsiyalangan raqamli I2C, sanoatning etakchi ishonchliligi, energiya samaradorligi
Simsiz namlik monitor (ESP8266 + namlik sensori): 5 qadam
Simsiz namlik o'lchagichi (ESP8266 + namlik sensori): Men maydanozni qozonda sotib olaman va kunning ko'p qismida tuproq quruq edi. Men maydanozli qozondagi tuproqning namligini sezish bo'yicha, loyihani amalga oshirishga qaror qildim, qachon kerak bo'lsa, tuproqni suv bilan to'kib tashlang, menimcha, bu sensor (sig'imli namlik sensori v1.2) yaxshi
Tez, tez, arzon, yaxshi ko'rinadigan LED xonali yorug'lik (hamma uchun): 5 qadam (rasmlar bilan)
Tez, tez, arzon, yaxshi ko'rinadigan LED xonali yorug'lik (hamma uchun): Hammaga xush kelibsiz :-) Bu mening birinchi ko'rsatmam, shuning uchun sharhlar qabul qilinadi :-) Men sizga ko'rsatmoqchi bo'lgan narsam-tez LED yoritgichini qanday qilish kerak. TINY buget. Sizga kerak bo'lgan narsa: CableLEDsRezistorlar (12V uchun 510 Ohm) Stapellar Lehimlash dazmollari Kesgichlar va boshqa tagliklar