Како повезати модул МицроСД картице са ЕСП32 користећи Ардуино ИДЕ

Kako Povezati Modul Microsd Kartice Sa Esp32 Koristeci Arduino Ide



ЕСП32 је напредна микроконтролерска плоча која може да повеже различите периферне уређаје са њом. Као и други сензори, такође можете да повежете модул МицроСД картице са ЕСП32. Можете да користите сензор МицроСД картице за апликације за евидентирање података или да повећате капацитет меморије за вашу микроконтролерску плочу.

Овај чланак ће објаснити кораке за повезивање МицроСД картице са ЕСП32 плочом користећи Ардуино ИДЕ.

Преглед садржаја:







1. Модул МицроСД картице



2. Како повезати ЕСП32 са модулом МицроСД картице



3. Хардвер





4. Код

5. Излаз



6. Извођење различитих функција на МицроСД картици помоћу ЕСП32

Закључак

1. Модул МицроСД картице

Модул МицроСД картице је ЕСП32 сензор који може да повеже СД картицу са плочом микроконтролера. Ради преко СПИ комуникационог протокола. Омогућава ЕСП32 или било којој другој плочи микроконтролера као што је Ардуино да приступи подацима сачуваним на СД картици преко СПИ протокола.

Радни напон за модул СД картице је 3,3В, тако да га није могуће директно повезати на ЕСП32 или било коју другу плочу микроконтролера. За то треба да користимо модул СД картице или сензор који ради преко 5В.

1.1. Пиноут

МицроСД картица има укупно шест пинова. Два од њих су пинови за напајање: ВЦЦ и ГНД. Док се за очитавање користе четири пина за СПИ комуникациони протокол. Следе детаљи за свих ових шест пинова:

Повер Пинс:

  • ВЦЦ: Повезује се на ЕСП32 5В пин.
  • ГНД: Повезује се на пин за уземљење ЕСП32 (ГНД).

СПИ пинови:

  • МИСО: (Мастер Ин Славе Оут) Повезује се на пин ЕСП32 МОСИ (Мастер Оут Славе Ин).
  • ДИМ: Повезује се на пин ЕСП32 МИСО (Мастер Ин Славе Оут).
  • СЦК: Повезује се на пин ЕСП32 СЦК (серијски сат).
  • СС: (Славе Селецт) Повезује се на пин који је наведен у Ардуино коду као СС (Славе Селецт) пин.

2. Како повезати ЕСП32 са модулом МицроСД картице

Да бисте повезали ЕСП32 са модулом МицроСД картице, мораћете да подесите пинове за напајање за сензор СД картице. Затим поставите СПИ пинове. Овде имате два избора, можете или да поставите подразумеване СПИ пинове или да дефинишете сопствене прилагођене СПИ пинове.

Када користите подразумеване СПИ пинове, додаћемо СД х и СД_ММЦ.х библиотеке. Ове библиотеке подразумевано користе ВСПИ СПИ пинове (23, 19, 18, 5) за СПИ комуникацију. Међутим, можете поставити и друге пинове за СПИ комуникацију.

ЕСП32 садржи два СПИ интерфејса ХСПИ и ВСПИ са детаљима њихових пинова како следи:

СПИ СМОКЕ МИСО ЦЛК ЦС
ВСПИ Д23 Д19 Д18 Д5
ХСПИ Д13 Д12 Д14 Д15

Повезан: Референца за ЕСП32 Пиноут – Комплетан водич

2.2. Припремите СД картицу

Затим, пре него што наставите са читањем и писањем података на МицроСД картицу, прво морате да је подесите тако што ћете форматирати све претходне податке на њој.

Отворите своју СД картицу користећи било који читач картица и формату то.

Изаберите ФАТ32 за систем датотека са картицама и кликните Почетак .

Након форматирања картице, изаберите У реду .

Сада је ваша СД картица спремна за повезивање са ЕСП32 помоћу модула СД картице.

2.3. Шематски приказ

Да бисте повезали сензор МицроСД картице са ЕСП32, пратите следећу конфигурацију:

Следи табела за конфигурацију пинова прикључне жице:

МицроСД картица ЕСП32
ГНД ГНД
ВЦЦ ДОЋИ
ЦС Д5
СМОКЕ Д23
СЦК Д18
МИСО Д19

3. Хардвер

За хардвер вам је потребно само неколико жица за краткоспојнике и матичну плочу заједно са ЕСП32 и модулом СД картице.

4. Код

Сада ћемо написати код који ће креирати текстуалну датотеку унутар МицроСД картице и након тога уписује неки текстуални низ на то. Када завршимо, прочитаћемо садржај текстуалне датотеке на Ардуино ИДЕ серијском монитору.

Покрените Ардуино ИДЕ и компајлирајте дати код. Након тога га снимите на своју ЕСП32 плочу:

#инцлуде <СПИ.х>

#инцлуде <СД.х>

Филе миФиле ;
конст инт ЦС = 5 ;

// Записати дату поруку у датотеку на наведеној путањи
празнина ВритеФиле ( конст цхар * пут , конст цхар * порука ) {
// Отворите датотеку. Подржава отварање једне по једне датотеке
// затворите другу датотеку пре отварања нове датотеке
миФиле = СД. отворен ( пут , ФИЛЕ_ВРИТЕ ) ;

ако ( миФиле ) {
Сериал. принтф ( „Пишем за %с“ , пут ) ;
миФиле. принтлн ( порука ) ;
миФиле. Близу ( ) ; // Затворите датотеку
Сериал. принтлн ( „завршено“. ) ;
} друго {
Сериал. принтлн ( 'грешка при отварању датотеке' ) ;
Сериал. принтлн ( пут ) ;
}
}

// Штампање садржаја датотеке на наведеној путањи
празнина РеадФиле ( конст цхар * пут ) {
// Отворен филе
миФиле = СД. отворен ( пут ) ;
ако ( миФиле ) {
Сериал. принтф ( „Читање датотеке са %с ' , пут ) ;
// Читање комплетне датотеке до последњег
док ( миФиле. доступан ( ) ) {
Сериал. писати ( миФиле. читати ( ) ) ;
}
миФиле. Близу ( ) ; // Затворите датотеку
} друго {
// Ако датотека није успела да се отвори, одштампајте грешку:
Сериал. принтлн ( 'грешка при отварању тест.ткт' ) ;
}
}

празнина подесити ( ) {
Сериал. започети ( 9600 ) ;
кашњење ( 500 ) ;
док ( ! Сериал ) { ; }

Сериал. принтлн ( „Иницијализација СД картице...“ ) ;
ако ( ! СД. започети ( ЦС ) ) {
Сериал. принтлн ( „Иницијализација није успела!“ ) ;
повратак ;
}
Сериал. принтлн ( „Иницијализација обављена.“ ) ;

ВритеФиле ( '/тест.ткт' , „Линукхинт.цом“ ) ;
РеадФиле ( '/тест.ткт' ) ;
}

празнина петља ( ) {

}

4.1. Објашњење кода

Ради бољег разумевања, овај код ћемо поделити на подделове.

Иницијализација и подешавање: Прво, код је започео укључивањем неких важних библиотека повезаних са модулом СД картице. Библиотека СПИ.х је додата за комуникацију са СД картицом и СД.х за руковање операцијама СД картице. Затим дефинише глобалну променљиву миФиле типа фајл за управљање операцијама са датотекама. ЦС константа је постављена на пин 5, који ће се користити као пин за одабир чипа (ЦС) за СД картицу.

Сетуп() Функција: Унутар функције подешавања покреће се серијска комуникација. Након тога смо иницијализовали модул СД картице помоћу функције СД.бегин(ЦС). Даље, такође смо дефинисали две различите функције за читање и писање текста у текстуалну датотеку.

Писање на СД картицу: Функција ВритеФиле() отвара датотеку тест.ткт за писање помоћу СД.опен(патх, ФИЛЕ_ВРИТЕ). Након тога, уписује стринг Линукхинт.цом у датотеку користећи миФиле.принтлн(мессаге).

Читање са СД картице: Да бисмо прочитали садржај датотеке, користили смо функцију РеадФиле(). Ако се успешно прочитају, подаци ће бити послати на Ардуино серијски порт и приказани на Ардуино ИДЕ серијском монитору.

5. Излаз

У излазу можете видети да је исти низ који смо дефинисали унутар Ардуино ИДЕ кода приказан на вашем Ардуино ИДЕ серијском монитору.

6. Извођење различитих функција на МицроСД картици помоћу ЕСП32

Можемо да обављамо различите операције као што су креирање, уклањање или додавање директоријума на МицроСД картице директно преко Ардуино ИДЕ кода.

6.1. Креирање директоријума на МицроСД картици

Код у наставку ће креирати нови директоријум унутар МицроСД картице. Дефинише функцију тзв цреатеДир који узима објекат система датотека (фс::ФС) и путању као улаз. Ова функција покушава да креира директоријум са наведеном путањом и штампа поруке које указују на успех или неуспех.

#инцлуде 'ФС.х'

#инцлуде 'СД.х'

#инцлуде 'СПИ.х'

празнина цреатеДир ( фс :: ФС & фс , конст цхар * пут ) {

Сериал. принтф ( „Креирање директоријума: %с ' , пут ) ;

ако ( фс. мкдир ( пут ) ) {

Сериал. принтлн ( „Дир креиран“ ) ;

} друго {

Сериал. принтлн ( 'мкдир није успео' ) ;

}

}

празнина подесити ( ) {



Сериал. започети ( 115200 ) ;

// Покрени СД картицу

ако ( ! СД. започети ( ) ) {

Сериал. принтлн ( „Постављање картице није успело“ ) ;

повратак ;

}

// Креирајте директоријум под називом 'мидир'

цреатеДир ( СД , '/мидир' ) ;

}

празнина петља ( ) {



}

У излазу можете видети да је креиран нови директоријум са /мидир име.

6.2. Навођење именика на МицроСД картици

У доњем коду ћемо навести све директоријуме који се налазе унутар МицроСД картице. Тхе листДир функција рекурзивно наводи садржај директоријума на СД картици. Штампа информације о оба директоријума (са префиксом „ДИР“) и датотекама (са префиксом „ФИЛЕ“), укључујући њихова имена и величине.

#инцлуде 'ФС.х'
#инцлуде 'СД.х'
#инцлуде 'СПИ.х'

празнина листДир ( фс :: ФС & фс , конст цхар * дирнаме , уинт8_т нивоа ) {
Сериал. принтф ( „Каталог листе: %с ' , дирнаме ) ;
Филе роот = фс. отворен ( дирнаме ) ;
ако ( ! корен ) {
Сериал. принтлн ( „Отварање директоријума није успело“ ) ;
повратак ;
}
ако ( ! корен. исДирецтори ( ) ) {
Сериал. принтлн ( 'Није именик' ) ;
повратак ;
}
Фајл фајла = корен. опенНектФиле ( ) ;
док ( фајл ) {
ако ( фајл. исДирецтори ( ) ) {
Сериал. принт ( ' ТИ : ' ) ;
Сериал. принтлн ( фајл. име ( ) ) ;
ако ( нивоа ) {
листДир ( фс , фајл. име ( ) , нивоа - 1 ) ;
}
} друго {
Сериал. принт ( ' ДАТОТЕКА: ' ) ;
Сериал. принт ( фајл. име ( ) ) ;
Сериал. принт ( ' ВЕЛИЧИНА: ' ) ;
Сериал. принтлн ( фајл. величина ( ) ) ;
}
фајл = корен. опенНектФиле ( ) ;
}
}

празнина подесити ( ) {
Сериал. започети ( 115200 ) ;
ако ( ! СД. започети ( ) ) {
Сериал. принтлн ( „Постављање картице није успело“ ) ;
повратак ;
}
листДир ( СД , '/' , 0 ) ;
}

празнина петља ( ) {

}

У излазу можете видети две различите датотеке. Једна је текстуална датотека, а друга је директоријум који смо креирали у претходном коду.

6.3. Уклањање директоријума

Сада ћемо уклонити претходно креиране директоријуме и текстуалне датотеке. За то ћемо користити ремовеДир функција, покушаће да уклони директоријум наведен у путањи. Ако успе, штампа се Дир уклоњен ; иначе се штампа рмдир није успео .

#инцлуде 'ФС.х'
#инцлуде 'СД.х'
#инцлуде 'СПИ.х'

празнина ремовеДир ( фс :: ФС & фс , конст цхар * пут ) {
Сериал. принтф ( „Уклањање директоријума: %с ' , пут ) ;
ако ( фс. је рм ( пут ) ) {
Сериал. принтлн ( 'Дир уклоњен' ) ;
} друго {
Сериал. принтлн ( 'рмдир није успео' ) ;
}
}

празнина подесити ( ) {
Сериал. започети ( 115200 ) ;

ако ( ! СД. започети ( ) ) {
Сериал. принтлн ( „Постављање картице није успело“ ) ;
повратак ;
}


}

празнина петља ( ) {

}

6.4. Набавите тип МицроСД картице

МицроСД картица или С ецуре Д игитал картицу је првобитно дизајнирала асоцијација за СД картице и дизајнирана за употребу у преносивим уређајима као што су паметни телефони и камере. СД картице углавном садрже четири типа породица:

  • СДСЦ (СД стандардног капацитета): Ове картице нуде скроман опсег складишног капацитета од 2 ГБ и користе системе датотека ФАТ-12 и ФАТ-16.
  • СДХЦ (СД великог капацитета): Ове картице се крећу од 2ГБ до 32ГБ и користе систем датотека ФАТ-32.
  • СДКСЦ (СД проширеног капацитета): Ове картице користе екФАТ систем датотека и почињу од 32ГБ до чак 2ТБ.
  • СДИО: СДИО картице служе двострукој сврси комбиновањем складиштења података са ИНПУТ/ОУТПУТ функцијама.

Да бисте проверили тип своје картице, покрените код у наставку:

#инцлуде 'ФС.х'
#инцлуде 'СД.х'
#инцлуде 'СПИ.х'

празнина подесити ( ) {
Сериал. започети ( 115200 ) ;

ако ( ! СД. започети ( ) ) {
Сериал. принтлн ( „Постављање картице није успело“ ) ;
повратак ;
}

уинт8_т Тип картице = СД. Тип картице ( ) ;
ако ( Тип картице == ЦАРД_НОНЕ ) {
Сериал. принтлн ( „Није прикључена СД картица“ ) ;
повратак ;
}

Сериал. принт ( „Тип СД картице:“ ) ;
ако ( Тип картице == ЦАРД_ММЦ ) {
Сериал. принтлн ( 'ММЦ' ) ;
} друго ако ( Тип картице == ЦАРД_СД ) {
Сериал. принтлн ( 'СДСЦ' ) ;
} друго ако ( Тип картице == ЦАРД_СДХЦ ) {
Сериал. принтлн ( 'СДХЦ' ) ;
} друго {
Сериал. принтлн ( 'НЕПОЗНАТ' ) ;
}

уинт64_т цардСизе = СД. цардСизе ( ) / ( 1024 * 1024 ) ;
Сериал. принтф ( „Величина СД картице: %ллуМБ ' , цардСизе ) ;
}

празнина петља ( ) {
}

Пошто имам картицу од 32 ГБ, можете видети да се налази у распону од СДХЦ картице.

6.5. Набавите величину МицроСД картице

Такође можете да добијете величину СД картице тако што ћете учитати доњи код на вашу ЕСП32 плочу.

#инцлуде 'ФС.х'
#инцлуде 'СД.х'
#инцлуде 'СПИ.х'

празнина подесити ( ) {
Сериал. започети ( 115200 ) ;

ако ( ! СД. започети ( ) ) {
Сериал. принтлн ( „Постављање картице није успело“ ) ;
повратак ;
}

уинт8_т Тип картице = СД. Тип картице ( ) ;
ако ( Тип картице == ЦАРД_НОНЕ ) {
Сериал. принтлн ( „Није прикључена СД картица“ ) ;
повратак ;
}

уинт64_т цардСизе = СД. цардСизе ( ) / ( 1024 * 1024 ) ;
Сериал. принтф ( „Величина СД картице: %ллуМБ ' , цардСизе ) ;

// Овде се могу позвати друге функције (листДир, цреатеДир, ремовеДир, итд.).
}

празнина петља ( ) {

}

Из излаза можете видети да имам СД картицу од приближно 30 ГБ.

Закључак

Модул МицроСД картице се користи за читање и писање података са СД картице помоћу ЕСП32 плоче. Модул МицроСД картице комуницира са микроконтролером помоћу СПИ интерфејса. Дакле, можете користити СПИ библиотеку или дефинисати сопствене СПИ пинове унутар кода. Када се повежете, можете читати писање текстуалне датотеке или креирати нове директоријуме на својој СД картици.