Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Ushbu qo'llanmada biz DHT11 sensorini Arduino yordamida sinab ko'ramiz.
DHT11 harorat va namlikni o'lchash uchun ishlatilishi mumkin.
Kerakli komponentlar:
- Arduino Nano
- DHT11 harorat va namlik sensori
- USB Mini
- Jumper kabellari
Kerakli kutubxona:
DHT kutubxonasi
1 -qadam: DHT11 -ni Arduino -ga ulang
DHT11 -ni Arduino -ga o'tish kabellari yordamida ulang.
Rasmga qarang yoki quyidagi ko'rsatmalarga amal qiling.
DHT11 Arduino uchun
+ => + 5V
tashqariga => D12
- => GND
Keyin mini USB yordamida arduino -ni kompyuterga ulang
2 -qadam: DHT kutubxonasini qo'shing
DHT kutubxonasini bu yerdan yuklab olish mumkin:
DHT11 kutubxonasi.
Kutubxona qo'shish uchun yuqoridagi rasmga qarang yoki quyidagi ko'rsatmalarga amal qiling:
Eskizni oching ==> Kutubxonani o'z ichiga ==> zip kutubxonasini qo'shing
Yuklab olingan kutubxona faylini toping.
Agar u muvaffaqiyatli bo'lsa, Arduino -ni yoping va qaytadan oching.
3 -qadam: Arduino kartasini tanlang
Goto Tools -ga o'ting va arduino kartasini yuqoridagi rasmga moslang.
"Arduino Nano" taxtasi
"ATmega328P (eski yuklovchi)" protsessori
To'liqroq maqola uchun, men ilgari yaratgan "Arduino Nano v.3 -dan qanday foydalanish" ni o'qishingiz mumkin.
4 -qadam: Dastur
DHT11 sensori qiymatini o'qish uchun ushbu kodni qo'shing
// DHT harorati va namligi sensori // Sensor kutubxonasi misoli // Adafruit Industries uchun Toni DiCola tomonidan yozilgan // MIT litsenziyasi ostida chiqarilgan.
// quyidagi Arduino kutubxonalarini talab qiladi:
// - DHT sensorlar kutubxonasi: https://github.com/adafruit/DHT-sensor-library // - Adafruit yagona sensori Lib:
#qo'shing
#qo'shing #qo'shing
#define DHTPIN 2 // DHT sensoriga ulangan raqamli pin
// Tukli HUZZAH ESP8266 eslatmasi: 3, 4, 5, 12, 13 yoki 14 -pinlardan foydalaning - // 15 -pin ishlay oladi, lekin dasturni yuklash paytida DHT uzilishi kerak.
// Amaldagi sensor turini izohlamang:
//#DHTTYPE DHT11 ni aniqlang // DHT 11#DHTTYPE DHT22 ni aniqlang // DHT 22 (AM2302) //#DHTTYPE DHT21 ni aniqlang // DHT 21 (AM2301)
// Sensor simlari va ulardan foydalanish haqida batafsil ma'lumot olish uchun qo'llanmani ko'ring:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t kechikish MS;
bo'sh o'rnatish () {
Serial.begin (9600); // Qurilmani ishga tushiring. dht.begin (); Serial.println (F ("DHTxx yagona sensori misoli")); // Harorat sensori tafsilotlarini chop etish. sensor_t sensori; dht.temperature (). getSensor (& sensor); Serial.println (F ("------------------------------------")); Serial.println (F ("Harorat sensori")); Serial.print (F ("Sensor turi:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (sensor.versiya); Serial.print (F ("Noyob identifikator:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maksimal qiymat:")); Serial.print (sensor.max_value); Serial.println (F ("° C")); Serial.print (F ("Minimal qiymat:")); Serial.print (sensor.min_value); Serial.println (F ("° C")); Serial.print (F ("Ruxsat:")); Ketma -ket chop etish (sensor. Rezolyutsiya); Serial.println (F ("° C")); Serial.println (F ("------------------------------------")); // Namlik sensori tafsilotlarini chop eting. dht.humidity (). getSensor (& sensor); Serial.println (F ("Namlik sensori")); Serial.print (F ("Sensor turi:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (sensor.versiya); Serial.print (F ("Noyob identifikator:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maksimal qiymat:")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Minimal qiymat:")); Serial.print (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Ruxsat:")); Ketma -ket chop etish (sensor. Rezolyutsiya); Serial.println (F ("%")); Serial.println (F ("------------------------------------")); // Sensor tafsilotlari asosida sensorlar o'qishlari orasidagi kechikishni o'rnating. kechikish MS = sensor.min_delay / 1000; }
void loop () {
// O'lchovlar orasidagi kechikish. kechikish (kechikish MS); // Harorat hodisasini oling va uning qiymatini chop eting. sensors_event_t hodisasi; dht.temperature (). getEvent (& hodisa); if (isnan (hodisa.temperatur)) {Serial.println (F ("Haroratni o'qishda xato!")); } boshqa {Serial.print (F ("Harorat:")); Ketma -ket chop etish (voqea. Harorat); Serial.println (F ("° C")); } // Namlik hodisasini oling va uning qiymatini chop eting. dht.humidity (). getEvent (& event); if (isnan (voqea.relatativ_ namlik)) {Serial.println (F ("Namlikni o'qishda xato!")); } boshqa {Serial.print (F ("Namlik:")); Ketma -ket chop etish (hodisa.qisoratli namlik); Serial.println (F ("%")); }}
Yoki men taqdim etgan Sketch ostidagi faylni yuklab oling.
Keyin yuklashni bosing va tugashini kuting.
5 -qadam: Natija
Harorat va namlikni o'lchash natijalarini ko'rish uchun Serial Monitor -ni bosing, natijalar u erda ko'rsatiladi.
Agar muvaffaqiyatli bo'lsa, natijalar 1 -rasmga o'xshaydi
agar sensor o'rnatilmagan bo'lsa, u 2 -rasmga o'xshaydi
o'qiganingiz uchun tashakkur, agar savollar bo'lsa, sharhlar ustuniga yozing