آموزش ساخت دیتالاگر با آردوینو ثبت دما رطوبت و نور روی کارت SD

آموزش ساخت دیتالاگر با آردوینو ثبت دما رطوبت و نور روی کارت SD ، در دنیای امروز، جمعآوری و تحلیل دادههای محیطی نقش بسزایی در بهبود کیفیت زندگی و تصمیمگیریهای هوشمند دارد. از نظارت بر شرایط گلخانهها تا پایش کیفیت هوا در محیطهای شهری، دیتالاگرها ابزارهایی حیاتی محسوب میشوند. با استفاده از آردوینو، میتوان با هزینهای مناسب و دانش فنی متوسط، یک دیتالاگر سفارشی ساخت که دادههای محیطی را بهصورت دورهای ثبت و ذخیره کند.
تجهیزات مورد نیاز
- برد آردوینو UNO یا مشابه
- سنسور دما و رطوبت DHT11 یا DHT22
- سنسور نور BH1750 یا LDR
- ماژول کارت SD
- ماژول ساعت واقعی DS3231 (اختیاری برای ثبت زمان دقیق)
- برد بورد و سیمهای جامپر
- کارت حافظه microSD (فرمت شده به FAT32)
اتصال سختافزار
- اتصال سنسور DHT11/DHT22:
- پایه VCC به 5V آردوینو
- پایه GND به GND آردوینو
- پایه Data به پین دیجیتال 2 آردوینو
- اتصال سنسور نور BH1750:
- پایه VCC به 3.3V آردوینو
- پایه GND به GND آردوینو
- پایه SDA به پین A4 آردوینو
- پایه SCL به پین A5 آردوینو
- اتصال ماژول کارت SD:
- پایه VCC به 5V آردوینو
- پایه GND به GND آردوینو
- پایه MISO به پین 12 آردوینو
- پایه MOSI به پین 11 آردوینو
- پایه SCK به پین 13 آردوینو
- پایه CS به پین 10 آردوینو
- اتصال ماژول DS3231 (اختیاری):
- پایه VCC به 5V آردوینو
- پایه GND به GND آردوینو
- پایه SDA به پین A4 آردوینو
- پایه SCL به پین A5 آردوینو
برنامهنویسی آردوینو
برای راهاندازی این پروژه، نیاز به نصب کتابخانههای زیر در Arduino IDE دارید
- DHT sensor library برای سنسور دما و رطوبت
- BH1750 library برای سنسور نور
- RTClib برای ماژول ساعت واقعی
- SD برای ماژول کارت SD
پس از نصب کتابخانهها، میتوانید از کد زیر برای خواندن دادهها و ذخیرهسازی آنها استفاده کنید:
#include <DHT.h>
#include <Wire.h>
#include <BH1750.h>
#include <RTClib.h>
#include <SD.h>
#include <SPI.h>
#define DHTPIN 2
#define DHTTYPE DHT11
#define CSPIN 10
DHT dht(DHTPIN, DHTTYPE);
BH1750 lightMeter;
RTC_DS3231 rtc;
File dataFile;
void setup() {
Serial.begin(9600);
dht.begin();
Wire.begin();
lightMeter.begin();
if (!rtc.begin()) {
Serial.println("RTC not found!");
while (1);
}
if (!SD.begin(CSPIN)) {
Serial.println("SD card initialization failed!");
while (1);
}
Serial.println("System ready. Logging data...");
}
void loop() {
// خواندن مقادیر از سنسورها
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
float lightLevel = lightMeter.readLightLevel();
DateTime now = rtc.now();
// بررسی خطاهای سنسور
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" *C, Humidity: ");
Serial.print(humidity);
Serial.print(" %, Light: ");
Serial.print(lightLevel);
Serial.println(" lux");
}
// ذخیره دادهها در کارت SD
dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.print(now.year());
dataFile.print('/');
if (now.month() < 10) dataFile.print('0');
dataFile.print(now.month());
dataFile.print('/');
if (now.day() < 10) dataFile.print('0');
dataFile.print(now.day());
dataFile.print(' ');
if (now.hour() < 10) dataFile.print('0');
dataFile.print(now.hour());
dataFile.print(':');
if (now.minute() < 10) dataFile.print('0');
dataFile.print(now.minute());
dataFile.print(':');
if (now.second() < 10) dataFile.print('0');
dataFile.print(now.second());
dataFile.print(", ");
dataFile.print(temperature);
dataFile.print(", ");
dataFile.print(humidity);
dataFile.print(", ");
dataFile.println(lightLevel);
dataFile.close();
Serial.println("Data logged to SD card.");
} else {
Serial.println("Error opening datalog.txt");
}
delay(60000); // ثبت دادهها هر 60 ثانیه (1 دقیقه)
}
نکات مهم
- فرمت کارت SD: اطمینان حاصل کنید که کارت SD به فرمت FAT32 فرمت شده باشد.
- تست سنسورها: قبل از اجرای کامل پروژه، هر سنسور را بهصورت جداگانه تست کنید تا از عملکرد صحیح آنها مطمئن شوید.
- مدیریت انرژی: برای استفاده طولانیمدت، میتوانید از باتری یا منبع تغذیه پایدار استفاده کنید و مصرف انرژی را بهینهسازی کنید.
نتیجهگیری
ساخت دیتالاگر محیطی با آردوینو، فرصتی عالی برای یادگیری و کاربردی کردن دانش الکترونیک و برنامهنویسی است. با این پروژه، میتوانید دادههای محیطی را بهصورت دقیق و منظم ثبت کرده و از آنها برای تحلیلهای مختلف استفاده کنید.
سوالات متداول (FAQ)
1. آیا میتوان از سنسورهای دیگر مانند BME280 استفاده کرد؟
بله، سنسور BME280 قابلیت اندازهگیری دما، رطوبت و فشار را دارد و میتواند جایگزین مناسبی باشد.
2. چگونه میتوان دادههای ذخیرهشده را تحلیل کرد؟
دادهها در فایل متنی ذخیره میشوند و میتوانید آنها را با نرمافزارهایی مانند Excel یا Python تحلیل کنید.
3. آیا امکان ارسال دادهها بهصورت بیسیم وجود دارد؟
بله، با افزودن ماژولهایی مانند WiFi یا Bluetooth میتوانید دادهها را بهصورت بیسیم ارسال کنید.
اگر این مقاله آموزش ساخت دیتالاگر با آردوینو ثبت دما رطوبت و نور روی کارت SD برای شما مفید بود، آن را با دوستان خود به اشتراک بگذارید و برای مشاهده آموزشهای بیشتر به سایت ما سر بزنید.
دیدگاههای محترمانه: لطفاً نظرات خود را با رعایت احترام به دیگران و به صورت محترمانه ارسال کنید. از بهکار بردن زبان توهینآمیز، تهدیدآمیز یا نژادپرستانه خودداری کنید.
حفظ حریم خصوصی: از درج اطلاعات شخصی خود یا دیگران مانند شماره تماس، آدرس و هرگونه اطلاعات حساس خودداری کنید.
محتوای تبلیغاتی: ارسال دیدگاههای تبلیغاتی، لینکهای خارجی یا هر نوع محتوای تجاری که مرتبط با موضوع نباشد، ممنوع است.
موافقت با قوانین: با ارسال دیدگاه خود، شما تأیید میکنید که قوانین فوق را خوانده و با آنها موافقید. تیم ما حق دارد نظرات غیرمجاز را حذف کند.
پیشنهاد پروژه این هفته
پروژه تشخیص گاز با ماژول SIM800L
مشاهده پروژهپروژه ساعت کنترل زمان بندی رله با اردوینو
مشاهده پروژهپروژه قفل دیجیتال با ماژول RFID RC522
مشاهده پروژه