ডেটা লগিংয়ের জন্য ইন্টারফেসিং এসডি কার্ড মডিউল

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই পোস্টে আমরা ডেটা লগিংয়ের জন্য আরডুইনো সহ এসডি কার্ড মডিউলটি ইন্টারফেস করতে চলেছি। আমরা এসডি কার্ড মডিউলটির ওভারভিউ দেখতে পাব এবং এর পিনের কনফিগারেশনগুলি এবং বোর্ডের উপাদানগুলিতে বুঝতে পারি। পরিশেষে আমরা এসডি কার্ডে তাপমাত্রা এবং আর্দ্রতার ডেটা লগ করার জন্য একটি সার্কিট তৈরি করব।



সুরক্ষিত ডিজিটাল কার্ড

আধুনিক ইলেকট্রনিক্সের জন্য এসডি কার্ড বা সিকিউর ডিজিটাল কার্ড হ'ল এটি ন্যূনতম আকারে উচ্চ ক্ষমতা সঞ্চয়স্থান সরবরাহ করে। আমরা পূর্ববর্তী একটি প্রকল্পে (এমপি 3 প্লেয়ার) মিডিয়া স্টোরেজের জন্য এসডি কার্ড ব্যবহার করেছি। এখানে আমরা এটি ডেটা লগিংয়ের জন্য ব্যবহার করতে যাচ্ছি।

ডেটা লগিং কোনও ঘটনার অতীত ঘটনা রেকর্ড করার মৌলিক পদক্ষেপ। উদাহরণস্বরূপ: বৈজ্ঞানিক এবং গবেষকরা বৈশ্বিক তাপমাত্রা বৃদ্ধির ব্যাখ্যা করতে সক্ষম।



বিগত কয়েক দশকের ডেটা দেখে তারা ক্রমবর্ধমান তাপমাত্রার ধরণটি বোঝার পরে এই সিদ্ধান্তে পৌঁছেছে। বর্তমান ঘটনা সম্পর্কে তথ্য রেকর্ডিং ভবিষ্যতের ঘটনা সম্পর্কেও প্রকাশ করতে পারে।

যেহেতু আরডুইনো সেন্সর ডেটা পড়ার জন্য দুর্দান্ত মাইক্রোকন্ট্রোলার এবং সেন্সর এবং ইনপুট আউটপুট পেরিফেরিয়ালগুলি পড়তে বিভিন্ন যোগাযোগ প্রোটোকল সমর্থন করে, এসডি কার্ড মডিউল আরডুইনোর মধ্যে সংযোগটি কেকের টুকরো তৈরি করে।

যেহেতু আরডুইনোর নিজস্ব প্রোগ্রাম স্টোরেজ স্পেস ছাড়া অন্য কোনও স্টোরেজ নেই, তাই আমরা এই নিবন্ধে বর্ণিত মডিউলটি ব্যবহার করে একটি বাহ্যিক স্টোরেজ যুক্ত করতে পারি।

এখন এসডি কার্ড মডিউলটি একবার দেখে নেওয়া যাক।

এসডি কার্ড মডিউলটির চিত্র:

এসডি কার্ড মডিউলটির চিত্র:

মডিউলটির ফ্লিপসাইড এবং পিন কনফিগারেশন:

মডিউলটির ফ্লিপসাইড এবং পিন কনফিগারেশন:

ছয়টি পিন রয়েছে এবং এটি এসপিআই (সিরিয়াল পেরিফেরাল ইন্টারফেস) যোগাযোগ প্রোটোকল সমর্থন করে। আরডুইনো ইউএনওর জন্য এসপিআই যোগাযোগ পিনগুলি 13, 12, 11 এবং 10 রয়েছে। আরডুইনো মেগার জন্য এসপিআই পিনগুলি 50, 51, 52 এবং 53 হয়।

প্রস্তাবিত প্রকল্পটি আরডুইনো ইউএনও সহ চিত্রিত হয়েছে যদি আপনার কাছে আরডুইনোর অন্য কোনও মডেল থাকে তবে দয়া করে এসপিআই পিনগুলির জন্য ইন্টারনেট দেখুন।

মডিউলটিতে একটি কার্ড ধারক থাকে যা এসডি কার্ডটি স্থানে ধারণ করে। 3.3V নিয়ন্ত্রকটি এসডি কার্ডগুলিতে ভোল্টেজ সীমাবদ্ধ করতে সরবরাহ করা হয়েছে কারণ এটি 5V নয় বরং 3.3V এ কাজ করতে ডিজাইন করা হয়েছে।

বোর্ডে এটিতে LVC125A ইন্টিগ্রেটেড সার্কিট রয়েছে যা লজিক লেভেল শিফটার। লজিক লেভেল শিফ্টারের কাজ হ'ল 5 ভি সিগন্যালগুলি আরডুইনো থেকে 3.3V লজিক সংকেতগুলিতে হ্রাস করা।

এখন এটি এসডি কার্ড মডিউলটি সমাপ্ত করে।

এসডি কার্ড মডিউলটি ব্যবহার করে আমরা যেকোনও ডেটা রাজা সংরক্ষণ করতে পারি, এখানে আমরা পাঠ্য ডেটা সংরক্ষণ করতে চলেছি। আমরা এসডি কার্ডে তাপমাত্রা এবং আর্দ্রতার ডেটা সংরক্ষণ করব। সেন্সর ডেটা সহ সময় লগ করতে আমরা রিয়েল টাইম ক্লক মডিউলটিও ব্যবহার করছি। এটি প্রতি 30 সেকেন্ডে ডেটা রেকর্ড করে।

পরিকল্পিত ডায়াগ্রাম:

ডেটা লগিংয়ের জন্য ইন্টারফেসিং এসডি কার্ড মডিউল

আরটিসি মডিউল সময় ট্র্যাক রাখে এবং এসডি কার্ডে তারিখ এবং সময় লগ করে।

ত্রুটি এলইডি দ্রুত জ্বলজ্বল করে, যদি এসডি কার্ড ব্যর্থ হয় বা আরম্ভ করতে ব্যর্থ হয় বা এসডি কার্ড উপস্থিত না থাকে। বাকি সময় এলইডি বন্ধ থাকে।

আরটিসি-তে সময় নির্ধারণের পদ্ধতি:

Below নীচের লাইব্রেরি ডাউনলোড করুন।
Completed সম্পূর্ণ হার্ডওয়্যার সেটআপের সাথে, আরডুইনোটিকে পিসিতে সংযুক্ত করুন।
• আরডুইনো আইডিই খুলুন
File ফাইল> উদাহরণসমূহ> DS1307RTC> সেটটাইমে যান।
• কোডটি আপলোড করুন এবং আরটিসি কম্পিউটারের সময়ের সাথে সিঙ্ক্রোনাইজ হবে।
Below এখন নীচে দেওয়া কোডটি আপলোড করুন।

কোড আপলোড করার আগে দয়া করে নিম্নলিখিত আরডুইনো গ্রন্থাগারটি ডাউনলোড করুন।

DS1307RTC: github.com/PauulStoffregen/DS1307RTC

ডিএইচটি 11 টেম্পারেচার এবং আর্দ্রতা: আরডুইনো-ইনফো / উইকিসস্পেসস / ফাইল / ডিটেইল / ডিএইচটি- লাইব.জিপ

কার্যক্রম:

//-----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()
}
}

// ----- আর.গিরিশ দ্বারা তৈরি প্রোগ্রাম ----- //

একবার সার্কিটকে কিছু সময়ের জন্য ডেটা লগ করার অনুমতি দেওয়া হয়ে গেলে আপনি আপনার কম্পিউটারের সাথে সংযুক্ত এসডি কার্ডটি সরিয়ে ফেলতে পারেন, সেখানে TEXT.txt ফাইল থাকবে যা নীচে দেখানো আছে এমনভাবে সমস্ত তাপমাত্রা এবং আর্দ্রতার ডেটা সময় এবং তারিখের সাথে রেকর্ড করা থাকে।

দ্রষ্টব্য: উপরের ধারণাটি ইন্টারফেস এবং ডেটা রেকর্ড করার জন্য একটি উদাহরণ example এই প্রকল্পের ব্যবহার আপনার কল্পনা নির্ভর করে, আপনি যে কোনও ধরণের সেন্সর ডেটা রেকর্ড করতে পারেন।

লেখকের প্রোটোটাইপ:

আরডুইনো সহ ইন্টারফেসড এসডি কার্ড মডিউলটির প্রোটোটাইপ




পূর্ববর্তী: কন্টাক্টলেস সেন্সর - ইনফ্রারেড, টেম্পারেচার / আর্দ্রতা, ক্যাপাসিটিভ, হালকা পরবর্তী: একটি সার্কিটে আইআর ফটোডোড সেন্সরটি কীভাবে সংযুক্ত করবেন