தரவு பதிவு செய்வதற்கான SD அட்டை தொகுதி இடைமுகம்

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த இடுகையில், தரவு பதிவுக்காக SD கார்டு தொகுதியை arduino உடன் இடைமுகப்படுத்தப் போகிறோம். எஸ்டி கார்டு தொகுதியின் கண்ணோட்டத்தைப் பார்ப்போம், அதன் முள் உள்ளமைவுகள் மற்றும் பலகை கூறுகளைப் புரிந்துகொள்வோம். இறுதியாக எஸ்.டி கார்டில் வெப்பநிலை மற்றும் ஈரப்பதம் தரவை பதிவு செய்ய ஒரு சுற்று அமைப்போம்.



பாதுகாப்பான டிஜிட்டல் அட்டை

எஸ்டி கார்டு அல்லது பாதுகாப்பான டிஜிட்டல் கார்டு நவீன மின்னணுவியலுக்கு வரப்பிரசாதமாகும், ஏனெனில் இது குறைந்த அளவு அதிக திறன் சேமிப்பை வழங்குகிறது. முந்தைய திட்டங்களில் ஒன்றில் (எம்பி 3 பிளேயர்) மீடியா சேமிப்பிற்காக எஸ்டி கார்டைப் பயன்படுத்தியுள்ளோம். இங்கே நாம் அதை தரவு பதிவுக்கு பயன்படுத்தப் போகிறோம்.

ஒரு சம்பவத்தின் கடந்த கால நிகழ்வுகளை பதிவு செய்வதற்கான அடிப்படை படி தரவு பதிவு. எடுத்துக்காட்டாக: உலகளாவிய வெப்பநிலையின் உயர்வை விளக்கும் விஞ்ஞானிகள் மற்றும் ஆராய்ச்சியாளர்கள்.



கடந்த சில தசாப்தங்களின் தரவுகளைப் பார்த்து உயரும் வெப்பநிலை முறையைப் புரிந்துகொண்ட பின்னர் அவர்கள் இந்த முடிவுக்கு வந்தனர். தற்போதைய சம்பவம் குறித்த தரவைப் பதிவுசெய்வது எதிர்கால நிகழ்வைப் பற்றியும் வெளிப்படுத்தக்கூடும்.

சென்சார் தரவைப் படிப்பதற்கான சிறந்த மைக்ரோகண்ட்ரோலராக ஆர்டுயினோ இருப்பதால், சென்சார்கள் மற்றும் உள்ளீட்டு வெளியீட்டு சாதனங்களைப் படிக்க பல்வேறு தகவல்தொடர்பு நெறிமுறைகளை ஆதரிப்பதால், எஸ்டி கார்டு தொகுதி ஆர்டுயினோவிற்கு இடையேயான இணைப்பு கேக் துண்டுகளை உருவாக்கியது.

Arduino க்கு அதன் சொந்த நிரல் சேமிப்பிட இடத்தைத் தவிர வேறு எந்த சேமிப்பும் இல்லை என்பதால், இந்த கட்டுரையில் விவரிக்கப்பட்ட தொகுதியைப் பயன்படுத்தி வெளிப்புற சேமிப்பிடத்தைச் சேர்க்கலாம்.

இப்போது SD கார்டு தொகுதியைப் பார்ப்போம்.

எஸ்டி கார்டு தொகுதியின் படம்:

எஸ்டி கார்டு தொகுதியின் படம்:

தொகுதி மற்றும் முள் உள்ளமைவின் பிளிப்சைட்:

தொகுதி மற்றும் முள் உள்ளமைவின் பிளிப்சைட்:

ஆறு ஊசிகளும் உள்ளன, இது SPI (சீரியல் புற இடைமுகம்) தொடர்பு நெறிமுறையை ஆதரிக்கிறது. Arduino UNO க்கு SPI தொடர்பு ஊசிகளும் 13, 12, 11 மற்றும் 10 ஆகும். Arduino மெகாவுக்கு SPI ஊசிகளும் 50, 51, 52 மற்றும் 53 ஆகும்.

முன்மொழியப்பட்ட திட்டம் Arduino UNO உடன் விளக்கப்பட்டுள்ளது, உங்களிடம் வேறு ஏதேனும் Arduino மாதிரி இருந்தால், SPI ஊசிகளுக்கு இணையத்தைப் பார்க்கவும்.

தொகுதி ஒரு அட்டை வைத்திருப்பவரைக் கொண்டுள்ளது, இது எஸ்டி கார்டை வைத்திருக்கும். எஸ்டி கார்டுகளுக்கு மின்னழுத்தத்தை மட்டுப்படுத்த 3.3 வி ரெகுலேட்டர் வழங்கப்படுகிறது, ஏனெனில் இது 3.3 வி இல் செயல்பட வடிவமைக்கப்பட்டுள்ளது, 5 வி அல்ல.

இது போர்டில் எல்விசி 125 ஏ ஒருங்கிணைந்த சுற்று உள்ளது, இது லாஜிக் லெவல் ஷிஃப்டராகும். லாஜிக் லெவல் ஷிஃப்டரின் செயல்பாடு 5 வி சிக்னல்களை அர்டுயினோவிலிருந்து 3.3 வி லாஜிக் சிக்னல்களாகக் குறைப்பதாகும்.

இப்போது அது எஸ்டி கார்டு தொகுதியை முடிக்கிறது.

எஸ்டி கார்டு தொகுதியைப் பயன்படுத்தி எந்தவொரு தரவையும் நாங்கள் சேமிக்க முடியும், இங்கே நாம் உரை தரவை சேமிக்கப் போகிறோம். எஸ்டி கார்டில் வெப்பநிலை மற்றும் ஈரப்பதம் தரவை சேமிப்போம். சென்சார் தரவுகளுடன் நேரத்தை பதிவு செய்ய நிகழ்நேர கடிகார தொகுதியையும் பயன்படுத்துகிறோம். இது ஒவ்வொரு 30 விநாடிகளிலும் தரவைப் பதிவு செய்கிறது.

திட்ட வரைபடம்:

தரவு பதிவு செய்வதற்கான SD அட்டை தொகுதி இடைமுகம்

ஆர்டிசி தொகுதி நேரம் கண்காணிக்கும் மற்றும் தேதி மற்றும் நேரத்தை எஸ்டி கார்டில் பதிவு செய்யும்.

எஸ்டி கார்டு தோல்வியுற்றால் அல்லது துவக்கத் தவறினால் அல்லது எஸ்டி கார்டு இல்லாவிட்டால், பிழை எல்இடி வேகமாக ஒளிரும். மீதமுள்ள நேரம் எல்.ஈ.டி.

RTC க்கு நேரத்தை அமைப்பது எப்படி:

The கீழே உள்ள நூலகத்தைப் பதிவிறக்கவும்.
Hardware பூர்த்தி செய்யப்பட்ட வன்பொருள் அமைப்பைக் கொண்டு, arduino ஐ PC உடன் இணைக்கவும்.
Ar திறந்த arduino IDE
> கோப்பு> எடுத்துக்காட்டுகள்> DS1307RTC> செட் டைம் என்பதற்குச் செல்லவும்.
The குறியீட்டைப் பதிவேற்றவும், கணினியின் நேரத்துடன் RTC ஒத்திசைக்கப்படும்.
• இப்போது கீழே கொடுக்கப்பட்டுள்ள குறியீட்டைப் பதிவேற்றவும்.

குறியீட்டைப் பதிவேற்றுவதற்கு முன் பின்வரும் arduino நூலகத்தைப் பதிவிறக்கவும்.

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

// ----- ஆர்.கிரீஷ் உருவாக்கிய திட்டம் ----- //

சில நேரம் தரவை உள்நுழைய சுற்றுக்கு அனுமதிக்கப்பட்டதும், உங்கள் கணினியுடன் இணைக்கப்பட்ட எஸ்டி கார்டை நீக்கிவிடலாம், TEXT.txt கோப்பு இருக்கும், இது கீழே காட்டப்பட்டுள்ளபடி அனைத்து வெப்பநிலை மற்றும் ஈரப்பதம் தரவுகள் நேரம் மற்றும் தேதியுடன் பதிவு செய்யப்படும்.

குறிப்பு: தரவை எவ்வாறு இடைமுகப்படுத்துவது மற்றும் பதிவு செய்வது என்பதற்கான ஒரு எடுத்துக்காட்டு மேலே உள்ள யோசனை. இந்த திட்டத்தின் பயன்பாடு உங்கள் கற்பனையைப் பொறுத்தது, நீங்கள் எந்த வகையான சென்சார் தரவையும் பதிவு செய்யலாம்.

ஆசிரியரின் முன்மாதிரி:

Arduino உடன் இடைமுக SD அட்டை தொகுதிக்கான முன்மாதிரி




முந்தைய: தொடர்பு இல்லாத சென்சார்கள் - அகச்சிவப்பு, வெப்பநிலை / ஈரப்பதம், கொள்ளளவு, ஒளி அடுத்து: ஒரு சர்க்யூட்டில் ஐஆர் ஃபோட்டோடியோட் சென்சார் இணைப்பது எப்படி