
به نام خدا
ساخت ثبت کننده ی داده (دیتا لاگر) با آردوینو و حافطه ی SD و سنسور DHT11

سنسور DHT11 نسبت رطوبت و دمای محیط را اندازه گیری میکند و این مقادیر را هر یک ثانیه روی کارت SD ذخیره میکند. در نهایت این مقادیر در یک فایل با فرمت TXT روی کارت SD ذخیره می شوند.
قطعات مورد نیاز ساخت ثبت کننده ی داده (دیتا لاگر) با آردوینو و حافطه ی SD و سنسور DHT11:
- بورد آردوینو
- سنسور DHT11
- کارت SD
- سوکت کارت SD
- مقاومت ۱۰ کیلو اهم
- مقاومت ۴٫۷ کیلو اهم
- سه مقاومت ۳٫۳ کیلو اهم
- سه مقاومت ۲٫۲ کیلو اهم
- برد بورد
- سیم برد بورد
شماتیک مدار ثبت کننده ی داده (دیتا لاگر) با آردوینو و حافطه ی SD و سنسور DHT11:
شماتیک مدار در بالا نمایش داده شده است، به دو حالت می توان مدار را بست ، مدار اول شامل سه مقسم ولتاژ برای تبدیل ۵ ولت به ۳ ولت است که این مقسم ولتاژ ها به پایه های: SS ، MOSI و SCK متصل هستند
( زمین های مدار به یکدیگر متصل شده اند)
مدار دوم برای استفاده از ماژول کارت SD می باشد ، ولتاژ تغذیه این ماژول ۵ ولت است (که از برد آردوینو گرفته می شود.) این ماژول از رگولاتور ولتاژ AMS1117 و مبدل ولتاژ ۷۴LVC125A برای تبدیل سیگنال ۵ ولت به ۳٫۳ ولت برای پایه های استفاده می کند. (راه اندازی مدار با ماژول SD کارت ساده تر است)

ماژول کارت SD شش پایه به نام های دارد:GND ، VCC ، MISO ، MOSI ، SCK ، CS
کدهای آردوینو:
کد های زیر برای خواندن دما و رطوبت از سنسور DHT11 می باشد ، بعد از آن دیتای دما و رطوبت در کارت SD با نام DHT11Log.txt ذخیره می شود و در نهایت بوسیله پورت سریال به کامپیوتر فرستاده می شود.
برای دیدن نتیجه کار، این مدار را برای مدتی روشن و سپس خاموش کرده ایم. کارت SD را از مدار جدا و به کامپیوتر متصل کرده ایم. پس از باز کردن کارت SD فایل زیر مشاهده میشود.
سریال مانیتور Arduino IDE اطلاعات زیر را نمایش می دهد:

دانلود کد های پروژه ساخت ثبت کننده ی داده (دیتا لاگر) با آردوینو و حافطه ی SD و سنسور DHT11:
دانلود فایل
#include <SPI.h> // Include SPI library (needed for the SD card)
#include <SD.h> // Include SD library
#include <DHT.h> // Include DHT sensor library
File dataFile;
#define DHTPIN 4 // DHT11 data pin is connected to Arduino pin 4
#define DHTTYPE DHT11 // DHT11 sensor is used
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial)
; // wait for serial port to connect. Needed for native USB port only
Serial.print("Initializing SD card...");
if (!SD.begin()) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
delay(2000);
}
uint16_t line = 1;
void loop() {
delay(1000);
// Read humidity
byte RH = dht.readHumidity();
//Read temperature in degree Celsius
byte Temp = dht.readTemperature();
dataFile = SD.open("DHT11Log.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (dataFile) {
Serial.print(line);
Serial.print(": Temperature = ");
Serial.print(Temp);
Serial.print("°C, Humidity = ");
Serial.print(RH);
Serial.println("%");
// Write data to SD card file (DHT11Log.txt)
dataFile.print(line++);
dataFile.print(": Temperature = ");
dataFile.print(Temp);
dataFile.print("°C, Humidity = ");
dataFile.print(RH);
dataFile.println("%");
dataFile.close();
}
// if the file didn't open, print an error:
else
Serial.println("error opening DHT11Log.txt");
}
دیدگاهها (0)