ماژول دما رطوبت Digital Temperature AM2302 با کابل سنسور DHT22
ماژول دما رطوبت Digital Temperature AM2302 با کابل سنسور DHT22
سنسور DHT22 یک سنسور دما و رطوبت دیجیتالی است که توسط شرکت Adafruit تولید شده است. این سنسور دارای دقت بالا و قابلیت اندازهگیری دما در بازهی -40 تا 80 درجه سانتیگراد و رطوبت در بازهی 0 تا 100 درصد است. سنسور DHT22 با استفاده از پروتکل دیجیتالی یکسیمهی (Single-wire digital protocol) تبادل اطلاعات با میکروکنترلرها و بردهای الکترونیکی را انجام میدهد. این سنسور با اتصال به میکروکنترلرهایی مانند Arduino، Raspberry Pi و ESP8266 میتواند برای کاربردهای مختلفی مانند کنترل خانههای هوشمند، سامانههای گلخانهای، دستگاههای پزشکی به کار رود.
مشخصات فنی ماژول دما رطوبت Digital Temperature AM2302
- ولتاژ کاری 3.3 الی 5.5 ولت DC
- ارسال داده ها تنها از طریق یک سیم
- قابلیت اندازه گیری دما 40- الی 80+ °C با دقت 0.5 درصد
- قابلیت اندازه گیری رطوبت 0 الی 100 درصد با دقت 2 الی 5 درصد
بررسی پایه های سنسور DHT22
سنسور DHT22 دارای 4 پایه است که هر کدام از آنها یک عملکرد خاص دارد. پایه های این سنسور عبارتند از:
- VCC: این پایه به منبع تغذیه وصل میشود و برای تغذیه سنسور از ولتاژ ۳.۳ ولت یا ۵ ولت استفاده میشود.
- Data: این پایه برای ارتباط با میکروکنترلر و ارسال دادههای دما و رطوبت از طریق پروتکل دیجیتالی یکسیمه استفاده میشود.
- NC: این پایه تعبیه شده در سنسور DHT22 وظیفهای ندارد و از آن استفاده نمیشود.
- GND: این پایه به منبع منفی وصل میشود و به عنوان زمین سنسور عمل میکند.
توجه داشته باشید که به دلیل حساسیت بالای سنسور DHT22 به نویز و اختلالات الکترومغناطیسی، اتصال پایه های VCC و Data به منبع تغذیه و میکروکنترلر به صورت صحیح و با در نظر گرفتن حداکثر فاصله از منابع الکترومغناطیسی پیشنهاد میشود.
به همراه ماژول DHT22 چه اقلامی باید خریداری شود؟
برای استفاده از ماژول DHT22 برای اندازهگیری دما و رطوبت، علاوه بر خود ماژول DHT22، باید چند کالا دیگر نیز خریداری کنید. این کالاها عبارتند از:
- برد میکروکنترلر: برای ارتباط با ماژول DHT22 و خواندن دادههای اندازهگیری شده، نیاز به یک برد میکروکنترلر مانند Arduino یا Raspberry Pi دارید.
- ماژولهای تغذیه: برای تغذیه ماژول DHT22، میتوانید از یکی از ماژولهای تغذیه با ولتاژ خروجی ثابت ۳.۳ ولت یا ۵ ولت استفاده کنید.
- مقاومتها: برای اتصال ماژول DHT22 به برد میکروکنترلر، به یک مقاومت ۱۰ کیلو اهم و یک مقاومت ۴۷ اهم نیز نیاز دارید.
- کابلهای اتصال: برای اتصال ماژول DHT22 به برد میکروکنترلر، نیاز به دو عدد کابل جهت اتصال پایه های VCC، Data، و GND به برد میکروکنترلر دارید.
- نمایشگر LCD , OLED
راه اندازی سنسور DHT22 با آردوینو
جهت راه اندازی سنسور با آردوینو، ابتدا کتابخانه DHT را وارد کرده، پایه ای که به سنسور DHT22 متصل است را تعریف کرده و یک شی از کلاس DHT را مقداردهی اولیه میکنیم. در تابع setup()، ارتباط سریال و سنسور DHT را مقداردهی اولیه میکنیم. در تابع loop()، دما و رطوبت را به ترتیب با استفاده از توابع readTemperature() و readHumidity() از سنسور خوانده و سپس بررسی میکنیم که آیا در خواندن سنسور هیچ خطایی رخ داده یا خیر و اگر هیچ خطایی رخ نداده، دما و رطوبت را در مانیتور سریال چاپ میکنیم. در انتها، ۲ ثانیه تاخیر قبل از خواندن دوباره اضافه میکنیم.
#include <DHT.h> // Import DHT library
#define DHTPIN 2 // Define pin connected to DHT22
#define DHTTYPE DHT22 // Define DHT22 sensor type
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT object
void setup() {
Serial.begin(9600); // Initialize serial communication
dht.begin(); // Initialize DHT sensor
}
void loop() {
float humidity = dht.readHumidity(); // Read humidity value
float temperature = dht.readTemperature(); // Read temperature value in Celsius
// Check if any errors occurred while reading the sensor
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read data from DHT22 sensor.");
return;
}
// Print temperature and humidity values to serial monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("%\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(2000); // Wait for 2 seconds before taking another reading
}
راه اندازی ماژول DHT22 با میکروپایتون و ESP32
جهت راه اندازی سنسور ، ابتدا ماژول dht و کلاس Pin را از ماژول machine وارد میکنیم. سپس پینی که به سنسور DHT22 متصل شده است را تعریف کرده و یک شی از کلاس DHT22 را مقداردهی اولیه میکنیم. در حلقه while، یک اندازهگیری از سنسور با استفاده از تابع measure() انجام میدهیم، سپس دما و رطوبت را به ترتیب با استفاده از توابع temperature() و humidity() از سنسور خوانده و سپس بررسی میکنیم که آیا در خواندن سنسور هیچ خطایی رخ داده یا خیر و اگر هیچ خطایی رخ نداده، دما و رطوبت را در کنسول چاپ میکنیم. در انتها، ۲ ثانیه تاخیر قبل از خواندن دوباره اضافه میکنیم.
import dht
from machine import Pin
import time
dht_pin = Pin(2, Pin.IN) # Define pin connected to DHT22 sensor
dht_sensor = dht.DHT22(dht_pin) # Initialize DHT22 sensor
while True:
dht_sensor.measure() # Take a measurement from the sensor
temp_c = dht_sensor.temperature() # Read temperature value in Celsius
humidity = dht_sensor.humidity() # Read humidity value
# Check if any errors occurred while reading the sensor
if isinstance(temp_c, float) and isinstance(humidity, float):
print("Temperature: {:.1f}°C, Humidity: {:.1f}%".format(temp_c, humidity))
else:
print("Failed to read data from DHT22 sensor.")
time.sleep(2) # Wait for 2 seconds before taking another reading
راه اندازی ماژول DHT22 با میکروپایتون و RP2040
در این کد، ابتدا ماژول dht و کلاس Pin را از ماژول machine وارد میکنیم. سپس پینی که به سنسور DHT22 متصل شده است را تعریف کرده و یک شی از کلاس DHT22 را مقداردهی اولیه میکنیم. در حلقه while، یک اندازهگیری از سنسور با استفاده از تابع measure() انجام میدهیم، سپس دما و رطوبت را به ترتیب با استفاده از توابع temperature() و humidity() از سنسور خوانده و سپس بررسی میکنیم که آیا در خواندن سنسور هیچ خطایی رخ داده یا خیر و اگر هیچ خطایی رخ نداده، دما و رطوبت را در کنسول چاپ میکنیم. در انتها، ۲ ثانیه تاخیر قبل از خواندن دوباره اضافه میکنیم. روش راه اندازی میکروپایتون برای ESP32 , RP2040 یکسان است.
import dht
from machine import Pin
import time
dht_pin = Pin(2, Pin.IN) # Define pin connected to DHT22 sensor
dht_sensor = dht.DHT22(dht_pin) # Initialize DHT22 sensor
while True:
dht_sensor.measure() # Take a measurement from the sensor
temp_c = dht_sensor.temperature() # Read temperature value in Celsius
humidity = dht_sensor.humidity() # Read humidity value
# Check if any errors occurred while reading the sensor
if isinstance(temp_c, float) and isinstance(humidity, float):
print("Temperature: {:.1f}°C, Humidity: {:.1f}%".format(temp_c, humidity))
else:
print("Failed to read data from DHT22 sensor.")
time.sleep(2) # Wait for 2 seconds before taking another reading
کاربردهای ماژول دما رطوبت Digital Temperature AM2302
- نمایشگرهای دمای خودروها
- کنترلر دما درهودهای آشپزخانه
- تجهیزات ثبت کننده پارامترهای محیطی
- کنترل کننده های دما و رطوبت در گلخانه
- سیستم های مانیتورینگ آنلاین وضعیت دما و رطوبت
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- دماسنج - Thermometer
- ابعاد فیبر
- 28 * 12 * 10 میلی متر
- تعداد فیبر
- 1 عدد
- سطح تجربه مورد نیاز
- پیشرفته
- ولتاژ مورد نياز
- 3.3 تا 5.5 ولت DC
- جنس مواد اولیه
- FR4
- طول کابل
- 20 سانتی متر
- فیبر مدار چاپی
- فایبر گلاس دورو متالیزه
- دمای کاری
- 40- تا 80+ درجه سانتی گراد
- ظرفیت
- سنجش دما و رطوبت
- چاپ مس
- دارای چاپ مشکی
- تعداد پایه ها
- 3 پایه
- سازنده
- AOSONG
- کشور سازنده
- چین
- وزن
- 7 گرم
- نوع کانکتور
- پین هدر
- دقت اندازه گیری
- 2 الی 5 درصد برای رطوبت، 0.5± درجه سانتی گراد برای دما
- محدوده اندازه گیری
- 0 الی 100 درصد برای رطوبت، 40- الی 80+ درجه سانتی گراد
- کد تجاری
- AM2302
- پردازنده
- DHT22
- سایر توضیحات
- دارای کابل فلت 3 شاخه جداگانه
- نوع سنسور
- دما رطوبت
این برد یک ترموستات دمایی است. برای درخواست مورد نظرتان قابل استفاده است. ولتاژ AC همان برق 220 است.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.