ڈیٹا لاگنگ کے لئے SD کارڈ ماڈیول کو انٹرفیس کرنا

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پوسٹ میں ہم ڈیٹا لاگنگ کے ل ar آرڈوینو کے ساتھ ایس ڈی کارڈ ماڈیول کو انٹرفیس کرنے جارہے ہیں۔ ہم SD کارڈ ماڈیول کا جائزہ دیکھیں گے اور اس کی پن کی تشکیلات اور بورڈ کے اجزاء کو سمجھیں گے۔ آخر کار ہم درجہ حرارت اور نمی کے ڈیٹا کو SD کارڈ میں لاگ ان کرنے کے لئے ایک سرکٹ بنائیں گے۔



ڈیجیٹل کارڈ کو محفوظ کریں

جدید الیکٹرانکس کے لئے ایس ڈی کارڈ یا سیکیور ڈیجیٹل کارڈ ایک فائدہ مند ہے کیوں کہ یہ کم سے کم سائز میں اعلی صلاحیت والے اسٹوریج فراہم کرتا ہے۔ ہم نے پچھلے پروجیکٹ (MP3 پلیئر) میں میڈیا اسٹوریج کے لئے SD کارڈ استعمال کیا ہے۔ یہاں ہم اسے ڈیٹا لاگنگ کے لئے استعمال کرنے جارہے ہیں۔

کسی واقعے کی ماضی کی موجودگی کو ریکارڈ کرنے کے لئے ڈیٹا لاگنگ بنیادی قدم ہے۔ مثال کے طور پر: سائنسدان اور محققین عالمی درجہ حرارت میں اضافے کی ترجمانی کرنے کے اہل ہیں۔



وہ پچھلی چند دہائیوں کے اعداد و شمار کو دیکھ کر درجہ حرارت کے بڑھتے ہوئے انداز کو سمجھنے کے بعد اس نتیجے پر پہنچے ہیں۔ موجودہ واقعے کے بارے میں اعداد و شمار کو ریکارڈ کرنا مستقبل میں ہونے والی موجودگی کے بارے میں بھی انکشاف کرسکتا ہے۔

چونکہ ارڈوینو سینسر ڈیٹا کو پڑھنے کے لئے ایک بہت بڑا مائکرو قابو پانے والا ہے اور سینسرز اور ان پٹ آؤٹ پیرفیرلز کو پڑھنے کے ل. مختلف مواصلات کے پروٹوکول کی حمایت کرتا ہے ، لہذا ایسڈی کارڈ ماڈیول ارڈینو کے درمیان تعلق نے کیک کا ٹکڑا بنا دیا۔

چونکہ آرڈینو کے پاس اپنے پروگرام اسٹوریج کی جگہ کے علاوہ کوئی اور اسٹوریج نہیں ہے ، لہذا ہم اس مضمون میں بیان کردہ ماڈیول کا استعمال کرکے بیرونی اسٹوریج شامل کرسکتے ہیں۔

اب ایسڈی کارڈ ماڈیول پر ایک نظر ڈالیں۔

ایسڈی کارڈ ماڈیول کی تصویر:

ایسڈی کارڈ ماڈیول کی تصویر:

ماڈیول اور پن کی ترتیب کی فلپ سائیڈ:

ماڈیول اور پن کی ترتیب کی فلپ سائیڈ:

چھ پن ہیں اور یہ ایس پی آئی (سیریل پیریفیریل انٹرفیس) مواصلات پروٹوکول کی حمایت کرتا ہے۔ ارڈینوو یو این او کے لئے ایس پی آئی مواصلاتی پن 13 ، 12 ، 11 ، اور 10 ہیں۔ ارڈینو میگا کے لئے ایس پی آئی پن ، 50 ، 51 ، 52 اور 53 ہیں۔

اگر آپ کے پاس ارڈینو کا کوئی دوسرا ماڈل ہے تو برائے مہربانی ایس پی آئی پنوں کے لئے انٹرنیٹ سے رجوع کریں۔

ماڈیول میں ایک کارڈ ہولڈر ہوتا ہے جس میں ایس ڈی کارڈ کی جگہ ہوتی ہے۔ 3.3V ریگولیٹر ایس ڈی کارڈز تک وولٹیج کو محدود کرنے کے لئے فراہم کیا گیا ہے کیونکہ یہ کام 3.3V پر کرنا ہے نہ کہ 5V پر۔

اس میں بورڈ میں LVC125A انٹیگریٹڈ سرکٹ ہے جو لاجک لیول شفٹر ہے۔ منطق کی سطح شفٹر کا کام 5 وی سگنل کو ارڈوینو سے 3.3V منطق سگنلز تک کم کرنا ہے۔

اب یہ SD کارڈ ماڈیول کو مکمل کرتا ہے۔

ایسڈی کارڈ ماڈیول کا استعمال کرتے ہوئے ہم کسی بھی بادشاہ کوائف کو محفوظ کرسکتے ہیں ، یہاں ہم ٹیکسٹ ڈیٹا اسٹور کرنے جارہے ہیں۔ ہم ایسڈی کارڈ میں درجہ حرارت اور نمی کا ڈیٹا اسٹور کریں گے۔ ہم وقت کے وقت سینسر ڈیٹا کے ساتھ لاگ ان کرنے کے لئے ریئل ٹائم کلاک ماڈیول کو بھی استعمال کر رہے ہیں۔ یہ ہر 30 سیکنڈ میں ڈیٹا ریکارڈ کرتا ہے۔

اسکیمیٹک آریگرام:

ڈیٹا لاگنگ کے لئے SD کارڈ ماڈیول کو انٹرفیس کرنا

آر ٹی سی ماڈیول وقت کا سراغ لگائے گا اور تاریخ اور وقت کو ایسڈی کارڈ پر لاگ ان کرے گا۔

خرابی ایل ای ڈی تیزی سے ٹمٹماتی ہے ، اگر ایسڈی کارڈ ناکام ہوجاتا ہے یا شروع کرنے میں ناکام ہوجاتا ہے یا ایسڈی کارڈ موجود نہیں ہوتا ہے۔ باقی وقت ایل ای ڈی بند رہتا ہے۔

آر ٹی سی پر وقت مقرر کرنے کا طریقہ:

below نیچے لائبریری ڈاؤن لوڈ کریں۔
hardware مکمل ہارڈویئر سیٹ اپ کے ساتھ ، ارڈوینو کو پی سی سے مربوط کریں۔
• آرڈینوو IDE کھولیں
File فائل> مثال کے طور پر> DS1307RTC> سیٹ ٹائم پر جائیں۔
• کوڈ اپ لوڈ کریں اور آر ٹی سی کمپیوٹر کے وقت کے ساتھ ہم آہنگ ہوجائے گا۔
• اب نیچے دیئے گئے کوڈ کو اپ لوڈ کریں۔

براہ کرم کوڈ اپ لوڈ کرنے سے پہلے درج ذیل آرڈینو لائبریری ڈاؤن لوڈ کریں۔

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

ڈی ایچ ٹی 11 ٹمپ اور نمی: arduino-info.wikispaces.com/file/detail/DHT-lib.zip

پروگرام:

//-----Program developed by R.Girish-----//
#include
#include
#include
#include
#include
#include
#define DHTxxPIN A0
const int cs = 10
const int LED = 7
dht DHT
int ack
int f
File myFile
void setup()
{
Serial.begin(9600)
pinMode(LED,OUTPUT)
if (!SD.begin(cs))
{
Serial.println('Card failed, or not present')
while(true)
{
digitalWrite(LED, HIGH)
delay(100)
digitalWrite(LED, LOW)
delay(100)
}
}
Serial.println('Initialization done')
}
void loop()
{
myFile = SD.open('TEST.txt', FILE_WRITE)
if(myFile)
{
Serial.println('----------------------------------------------')
myFile.println('----------------------------------------------')
tmElements_t tm
if(!RTC.read(tm))
{
goto A
}
if (RTC.read(tm))
{
Serial.print('TIME:')
if(tm.Hour>12) //24Hrs to 12 Hrs conversion//
{
if(tm.Hour==13)
{
Serial.print('01')
myFile.print('01')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==14)
{
Serial.print('02')
myFile.print('02')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==15)
{
Serial.print('03')
myFile.print('03')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==16)
{
Serial.print('04')
myFile.print('04')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==17)
{
Serial.print('05')
myFile.print('05')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==18)
{
Serial.print('06')
myFile.print('06')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==19)
{
Serial.print('07')
myFile.print('07')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==20)
{
Serial.print('08')
myFile.print('08')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==21)
{
Serial.print('09')
myFile.print('09')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==22)
{
Serial.print('10')
myFile.print('10')
Serial.print(':')
myFile.print(':')
}
if(tm.Hour==23)
{
Serial.print('11')
myFile.print('11')
Serial.print(':')
myFile.print(':')
}
else
{
Serial.print(tm.Hour)
myFile.print(tm.Hour)
Serial.print(':')
myFile.print(':')
}
Serial.print(tm.Minute)
myFile.print(tm.Minute)
Serial.print(':')
myFile.print(':')
Serial.print(tm.Second)
myFile.print(tm.Second)
if(tm.Hour>=12)
{
Serial.print(' PM')
myFile.print( ' PM')
}
if(tm.Hour<12)
{
Serial.print('AM')
myFile.print( ' AM')
}
Serial.print(' DATE:')
myFile.print(' DATE:')
Serial.print(tm.Day)
myFile.print(tm.Day)
Serial.print('/')
myFile.print('/')
Serial.print(tm.Month)
myFile.print(tm.Month)
Serial.print('/')
myFile.print('/')
Serial.println(tmYearToCalendar(tm.Year))
myFile.println(tmYearToCalendar(tm.Year))
Serial.println('----------------------------------------------')
myFile.println('----------------------------------------------')
} else {
A:
if (RTC.chipPresent())
{
Serial.print('RTC stopped!!!')
myFile.print('RTC stopped!!!')
Serial.println(' Run SetTime code')
myFile.println(' Run SetTime code')
} else {
Serial.print('RTC Read error!')
myFile.print('RTC Read error!')
Serial.println(' Check circuitry!')
myFile.println(' Check circuitry!')
}
}
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
f=DHT.temperature*1.8+32
Serial.print('Temperature(C) = ')
myFile.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
myFile.println(DHT.temperature)
Serial.print('Temperature(F) = ')
myFile.print('Temperature(°F) = ')
Serial.print(f)
myFile.print(f)
Serial.print('n')
myFile.println(' ')
Serial.print('Humidity(%) = ')
myFile.print('Humidity(%) = ')
Serial.println(DHT.humidity)
myFile.println(DHT.humidity)
Serial.print('n')
myFile.println(' ')
}
if(ack==1)
{
Serial.println('NO DATA')
myFile.println('NO DATA')
}
for(int i=0 i<30 i++)
{
delay(1000)
}
}
myFile.close()
}
}

// ----- R.Girish کے ذریعہ تیار کردہ پروگرام ----- //

ایک بار جب سرکٹ کو کچھ وقت کے لئے ڈیٹا کو لاگ ان کرنے کی اجازت مل جاتی ہے ، تو آپ اپنے کمپیوٹر سے منسلک ایس ڈی کارڈ کو ہٹا سکتے ہیں ، وہاں TEXT.txt فائل ہوگی جس میں درجہ حرارت اور نمی کا ڈیٹا وقت اور تاریخ کے ساتھ ساتھ ریکارڈ کیا جاتا ہے ، جیسا کہ ذیل میں دکھایا گیا ہے۔

نوٹ: مندرجہ بالا خیال ایک مثال ہے جس میں ڈیٹا کو انٹرفیس اور ریکارڈ کرنا ہے۔ اس منصوبے کا استعمال آپ کے تخیل پر منحصر ہے ، آپ کسی بھی طرح کا سینسر ڈیٹا ریکارڈ کرسکتے ہیں۔

مصنف کی پروٹو ٹائپ:

ایردوینو کے ساتھ انٹرفیسڈ ایسڈی کارڈ ماڈیول کا پروٹو ٹائپ




پچھلا: کانٹیکٹ لیس سینسرز - اورکت ، مزاج / نمی ، کیپسیٹیو ، لائٹ اگلا: سرکٹ میں آئی آر فوٹوڈیوڈ سینسر کو کس طرح جوڑیں