دماسنج و رطوبتسنج دیجیتال با آردوینو و DHT11
آموزش ساخت دماسنج و رطوبتسنج دیجیتال با آردوینو و DHT11
اگر به پروژههای آردوینو علاقه دارید، این پروژه یکی از بهترین گزینهها برای شروع است. در این آموزش با استفاده از برد Arduino Uno، سنسور DHT11 و نمایشگر OLED 0.96 اینچ، دما و رطوبت محیط را بهصورت لحظهای روی نمایشگر مشاهده میکنیم.
قطعات مورد نیاز
اتصالات
سنسور DHT11
- VCC → 5V
- GND → GND
- DATA → پایه D2
نمایشگر OLED
- VCC → 5V
- GND → GND
- SDA → A4
- SCL → A5

کتابخانههای مورد نیاز
قبل از آپلود برنامه، کتابخانههای زیر را از Library Manager آردوینو نصب کنید:
- DHT sensor library by Adafruit
- Adafruit Unified Sensor
- Adafruit GFX Library
- Adafruit SSD1306
عملکرد پروژه
پس از آپلود برنامه روی آردوینو، سنسور DHT11 هر دو ثانیه دما و رطوبت محیط را اندازهگیری میکند و اطلاعات روی نمایشگر OLED نمایش داده میشود.
این پروژه برای یادگیری نحوه کار با سنسورهای دیجیتال، ارتباط I2C و نمایش اطلاعات روی OLED بسیار مناسب است و میتواند پایهای برای ساخت پروژههای پیشرفتهتر مانند ایستگاه هواشناسی، سیستم کنترل دما و گلخانه هوشمند باشد.
دانلود کد پروژه
کد کامل این پروژه را میتوانید از انتهای همین صفحه دانلود کنید. اگر در اجرای پروژه با مشکلی مواجه شدید، سؤال خود را در بخش نظرات مطرح کنید تا در سریعترین زمان ممکن پاسخ داده شود.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Wire.begin();
// اگر OLED شما 0x3D بود، این عدد را به 0x3D تغییر بده
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED initialization failed!");
while (true);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(2);
display.setCursor(15, 20);
display.println("DHT11");
display.display();
delay(2000);
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0, 25);
display.println("ERROR");
display.display();
delay(2000);
return;
}
display.clearDisplay();
// نوار زرد
display.setTextSize(1);
display.setCursor(10, 2);
display.print("quantumelec.ir");
// قسمت آبی
display.setTextSize(2);
display.setCursor(0, 20);
display.print("T:");
display.print(temp, 1);
display.print((char)247);
display.print("C");
display.setCursor(0, 44);
display.print("H:");
display.print(hum, 0);
display.print("%");
display.display();
delay(2000);
}
همچنین تمام قطعات این پرژه در وبسایت ما موجود هست و میتوانید آنها را خریداری کنید.
دیدگاه خود را بنویسید