డేటా లాగింగ్ కోసం SD కార్డ్ మాడ్యూల్ ఇంటర్‌ఫేసింగ్

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ పోస్ట్‌లో మేము డేటా లాగింగ్ కోసం SD కార్డ్ మాడ్యూల్‌ను arduino తో ఇంటర్‌ఫేస్ చేయబోతున్నాం. మేము SD కార్డ్ మాడ్యూల్ యొక్క అవలోకనాన్ని చూస్తాము మరియు దాని పిన్ కాన్ఫిగరేషన్లను మరియు బోర్డు భాగాలను అర్థం చేసుకుంటాము. చివరగా మేము ఉష్ణోగ్రత మరియు తేమ డేటాను SD కార్డుకు లాగిన్ చేయడానికి ఒక సర్క్యూట్‌ను నిర్మిస్తాము.



సురక్షిత డిజిటల్ కార్డ్

ఆధునిక ఎలక్ట్రానిక్స్‌కు SD కార్డ్ లేదా సెక్యూర్ డిజిటల్ కార్డ్ ఒక వరం, ఎందుకంటే ఇది తక్కువ పరిమాణంలో అధిక సామర్థ్య నిల్వను అందిస్తుంది. మునుపటి ప్రాజెక్ట్ (Mp3 ప్లేయర్) లో మీడియా నిల్వ కోసం మేము SD కార్డ్‌ను ఉపయోగించాము. ఇక్కడ మేము దీన్ని డేటా లాగింగ్ కోసం ఉపయోగించబోతున్నాము.

డేటా లాగింగ్ అనేది ఒక సంఘటన యొక్క గత సంఘటనను రికార్డ్ చేయడానికి ప్రాథమిక దశ. ఉదాహరణకు: ప్రపంచ ఉష్ణోగ్రత పెరుగుదలను శాస్త్రవేత్తలు మరియు పరిశోధకులు అర్థం చేసుకోగలుగుతారు.



గత కొన్ని దశాబ్దాల డేటాను చూడటం ద్వారా పెరుగుతున్న ఉష్ణోగ్రత సరళిని అర్థం చేసుకున్న తరువాత వారు ఈ నిర్ణయానికి వచ్చారు. ప్రస్తుత సంఘటన గురించి డేటాను రికార్డ్ చేయడం భవిష్యత్ సంఘటన గురించి కూడా వెల్లడించవచ్చు.

ఆర్డునో సెన్సార్ డేటాను చదవడానికి గొప్ప మైక్రోకంట్రోలర్‌గా ఉన్నందున మరియు సెన్సార్లు మరియు ఇన్పుట్ అవుట్పుట్ పెరిఫెరల్స్ చదవడానికి వివిధ కమ్యూనికేషన్ ప్రోటోకాల్‌లకు మద్దతు ఇస్తుంది కాబట్టి, SD కార్డ్ మాడ్యూల్ ఆర్డునో మధ్య కనెక్షన్ కేక్ ముక్కను తయారు చేసింది.

Arduino కి దాని స్వంత ప్రోగ్రామ్ నిల్వ స్థలం తప్ప వేరే నిల్వ లేదు కాబట్టి, ఈ వ్యాసంలో వివరించిన మాడ్యూల్ ఉపయోగించి మేము బాహ్య నిల్వను జోడించవచ్చు.

ఇప్పుడు SD కార్డ్ మాడ్యూల్ చూద్దాం.

SD కార్డ్ మాడ్యూల్ యొక్క చిత్రం:

SD కార్డ్ మాడ్యూల్ యొక్క చిత్రం:

మాడ్యూల్ మరియు పిన్ కాన్ఫిగరేషన్ యొక్క ఫ్లిప్‌సైడ్:

మాడ్యూల్ మరియు పిన్ కాన్ఫిగరేషన్ యొక్క ఫ్లిప్‌సైడ్:

ఆరు పిన్స్ ఉన్నాయి మరియు ఇది SPI (సీరియల్ పెరిఫెరల్ ఇంటర్ఫేస్) కమ్యూనికేషన్ ప్రోటోకాల్‌కు మద్దతు ఇస్తుంది. Arduino UNO కొరకు SPI కమ్యూనికేషన్ పిన్స్ 13, 12, 11 మరియు 10 ఉన్నాయి. Arduino మెగా కోసం SPI పిన్స్ 50, 51, 52 మరియు 53.

ప్రతిపాదిత ప్రాజెక్ట్ Arduino UNO తో వివరించబడింది, మీకు Arduino యొక్క ఇతర మోడల్ ఉంటే దయచేసి SPI పిన్‌ల కోసం ఇంటర్నెట్‌ను చూడండి.

మాడ్యూల్ కార్డ్ హోల్డర్‌ను కలిగి ఉంటుంది, ఇది SD కార్డ్‌ను కలిగి ఉంటుంది. వోల్టేజ్‌ను SD కార్డులకు పరిమితం చేయడానికి 3.3V రెగ్యులేటర్ అందించబడుతుంది, ఎందుకంటే ఇది 5V కాకుండా 3.3V వద్ద పనిచేసేలా రూపొందించబడింది.

ఇది బోర్డులో LVC125A ఇంటిగ్రేటెడ్ సర్క్యూట్ కలిగి ఉంది, ఇది లాజిక్ లెవల్ షిఫ్టర్. లాజిక్ లెవల్ షిఫ్టర్ యొక్క పని ఏమిటంటే ఆర్డ్యునో నుండి 5 వి సిగ్నల్స్ ను 3.3 వి లాజిక్ సిగ్నల్స్ కు తగ్గించడం.

ఇప్పుడు అది SD కార్డ్ మాడ్యూల్‌ను ముగించింది.

SD కార్డ్ మాడ్యూల్ ఉపయోగించి మనం ఏదైనా రాజు డేటాను నిల్వ చేయవచ్చు, ఇక్కడ మనం టెక్స్ట్ డేటాను నిల్వ చేయబోతున్నాం. మేము ఉష్ణోగ్రత మరియు తేమ డేటాను SD కార్డుకు నిల్వ చేస్తాము. సెన్సార్ డేటాతో పాటు సమయాన్ని లాగిన్ చేయడానికి మేము రియల్ టైమ్ క్లాక్ మాడ్యూల్‌ను కూడా ఉపయోగిస్తున్నాము. ఇది ప్రతి 30 సెకన్లకు డేటాను రికార్డ్ చేస్తుంది.

బొమ్మ నమునా:

డేటా లాగింగ్ కోసం SD కార్డ్ మాడ్యూల్ ఇంటర్‌ఫేసింగ్

ఆర్టీసీ మాడ్యూల్ సమయాన్ని ట్రాక్ చేస్తుంది మరియు తేదీ మరియు సమయాన్ని SD కార్డుకు లాగిన్ చేస్తుంది.

SD కార్డ్ విఫలమైతే లేదా ప్రారంభించడంలో విఫలమైతే లేదా SD కార్డ్ లేనట్లయితే లోపం LED వేగంగా మెరిసిపోతుంది. మిగిలిన సమయం LED ఆపివేయబడుతుంది.

RTC కి సమయం ఎలా సెట్ చేయాలి:

The దిగువ లైబ్రరీని డౌన్‌లోడ్ చేయండి.
Hardware పూర్తయిన హార్డ్‌వేర్ సెటప్‌తో, ఆర్డునోను పిసికి కనెక్ట్ చేయండి.
Ar ఓపెన్ ఆర్డునో IDE
> ఫైల్> ఉదాహరణలు> DS1307RTC> సెట్‌టైమ్‌కు వెళ్లండి.
The కోడ్‌ను అప్‌లోడ్ చేయండి మరియు కంప్యూటర్ సమయంతో RTC సమకాలీకరించబడుతుంది.
• ఇప్పుడు క్రింద ఇచ్చిన కోడ్‌ను అప్‌లోడ్ చేయండి.

కోడ్‌ను అప్‌లోడ్ చేయడానికి ముందు క్రింది ఆర్డునో లైబ్రరీని డౌన్‌లోడ్ చేయండి.

DS1307RTC: github.com/PaulStoffregen/DS1307RTC

DHT11 తాత్కాలిక & తేమ: 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()
}
}

// ----- ఆర్.గిరిష్ అభివృద్ధి చేసిన కార్యక్రమం ----- //

కొంత సమయం వరకు డేటాను లాగిన్ చేయడానికి సర్క్యూట్ అనుమతించిన తర్వాత, మీరు మీ కంప్యూటర్‌కు కనెక్ట్ చేసిన SD కార్డ్‌ను తీసివేయవచ్చు, TEXT.txt ఫైల్ ఉంటుంది, ఇది క్రింద చూపిన విధంగా అన్ని ఉష్ణోగ్రత మరియు తేమ డేటా సమయం మరియు తేదీతో పాటు రికార్డ్ చేయబడుతుంది.

గమనిక: డేటాను ఎలా ఇంటర్ఫేస్ చేసి రికార్డ్ చేయాలో పై ఆలోచన ఒక ఉదాహరణ. ఈ ప్రాజెక్ట్ యొక్క వినియోగం మీ ination హపై ఆధారపడి ఉంటుంది, మీరు ఏ రకమైన సెన్సార్ డేటాను రికార్డ్ చేయవచ్చు.

రచయిత యొక్క నమూనా:

Arduino తో ఇంటర్‌ఫేస్డ్ SD కార్డ్ మాడ్యూల్ కోసం ప్రోటోటైప్




మునుపటి: కాంటాక్ట్‌లెస్ సెన్సార్లు - ఇన్‌ఫ్రారెడ్, టెంపరేచర్ / తేమ, కెపాసిటివ్, లైట్ తర్వాత: సర్క్యూట్లో ఐఆర్ ఫోటోడియోడ్ సెన్సార్‌ను ఎలా కనెక్ట్ చేయాలి