Повезивање модула СД картице за евидентирање података

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо повезати модул СД картице са ардуином за евидентирање података. Видећемо преглед модула СД картице и разумећемо његове конфигурације пинова и компоненте на плочи. На крају ћемо конструисати коло за евидентирање података о температури и влажности на СД картицу.



Сигурна дигитална картица

СД картица или Сецуре Дигитал картица благодат су за модерну електронику јер пружају капацитет великог капацитета на минималној величини. СД картицу смо користили за складиштење медија у једном од претходних пројеката (Мп3 плејер). Овде ћемо га користити за евидентирање података.

Евидентирање података је основни корак за бележење прошлих појава инцидента. На пример: научници и истраживачи способни да протумаче пораст глобалне температуре.



До овог закључка дошли су након што су разумели образац пораста температуре гледајући податке из последњих неколико деценија. Снимање података о тренутном инциденту могло би да открије и будућу појаву.

Будући да је ардуино одличан микроконтролер за читање података сензора и подржава различите комуникационе протоколе за читање сензора и улазне излазне периферне опреме, веза између модула СД картице ардуино је направила комад торте.

Будући да ардуино нема никакво складиште осим сопственог простора за складиштење програма, можемо додати спољно складиште помоћу описаног модула у овом чланку.

Сада ћемо погледати модул СД картице.

Слика модула СД картице:

Слика модула СД картице:

Преокрет модула и конфигурација пина:

Преокрет модула и конфигурација пина:

Постоји шест пинова и подржава СПИ (серијски периферни интерфејс) комуникациони протокол. За Ардуино УНО СПИ пинови за комуникацију су 13, 12, 11 и 10. За Ардуино мега СПИ пинови су 50, 51, 52 и 53.

Предложени пројекат илустрован је Ардуино УНО ако имате било који други модел Ардуина, потражите СПИ пинове на Интернету.

Модул се састоји од држача картице који држи СД картицу на месту. 3.3В регулатор је предвиђен за ограничавање напона на СД картице, јер је дизајниран да ради на 3.3В, а не на 5В.

На плочи има интегрисани круг ЛВЦ125А који је логички мењач нивоа. Функција логичког пребацивача нивоа је да смањи 5В сигнале са ардуина на 3.3В логичке сигнале.

То је закључило модул СД картице.

Користећи модул СД картице можемо чувати било који краљ података, овде ћемо чувати текстуалне податке. Подаци о температури и влажности чуваћемо на СД картици. Такође користимо модул сата реалног времена за бележење времена заједно са подацима сензора. Подаци бележе на сваких 30 секунди.

Шематски приказ:

Повезивање модула СД картице за евидентирање података

РТЦ модул ће пратити време и евидентирати датум и време на СД картици.

ЛЕД за грешку трепће брзо ако СД картица не успе или се не покрене или СД картица није присутна. Остатак времена ЛЕД не светли.

КАКО ПОСТАВИТИ ВРИЈЕМЕ ЗА РТЦ:

• Преузмите библиотеку у наставку.
• Са завршеним хардверским подешавањем, повежите ардуино са рачунаром.
• Отворите ардуино ИДЕ
• Идите на Датотека> Примери> ДС1307РТЦ> СетТиме.
• Отпремите код и РТЦ ће се синхронизовати са временом рачунара.
• Отпремите доле дати код.

Молимо преузмите следећу ардуино библиотеку пре отпремања кода.

ДС1307РТЦ: гитхуб.цом/ПаулСтоффреген/ДС1307РТЦ

ДХТ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()
}
}

// ----- Програм развио Р.Гирисх ----- //

Једном када је колу дозвољено да евидентира податке неко време, можете уклонити СД картицу која се повезује са рачунаром, биће датотека ТЕКСТ.ткт у коју се записују сви подаци о температури и влажности, заједно са временом и датумом, као што је приказано у наставку.

НАПОМЕНА: Горња идеја је пример начина повезивања и снимања података. Употреба овог пројекта зависи од ваше маште, можете снимати податке сензора било које врсте.

Ауторски прототип:

Прототип за међусобно повезан модул СД картице са Ардуином




Претходно: Бесконтактни сензори - инфрацрвени, температурни / влажни, капацитивни, светлосни Следеће: Како повезати ИР сензор за фотодиоду у круг