Բովանդակություն:

Անլար SD քարտի ընթերցող [ESP8266] ՝ 10 քայլ (նկարներով)
Անլար SD քարտի ընթերցող [ESP8266] ՝ 10 քայլ (նկարներով)

Video: Անլար SD քարտի ընթերցող [ESP8266] ՝ 10 քայլ (նկարներով)

Video: Անլար SD քարտի ընթերցող [ESP8266] ՝ 10 քայլ (նկարներով)
Video: Xbox 360 (Լազերային գլխի փոխարինում) 2024, Նոյեմբեր
Anonim
Image
Image

Ենթադրվում էր, որ USB- ը համընդհանուր էր, և հիմնական նպատակը տաք փոխանակելի դարձնելն էր, որը չափազանց հեշտ էր ինտերֆեյսի մեջ դնել այլ սարքերի հետ, բայց տարիների ընթացքում այդ գաղափարը անհանգիստ դարձավ: Այս USB պորտերի շատ տարբեր տարբերակներ կան, որոնք երբեմն այնքան հիասթափեցնող են, և այն, թե ինչպես են դրանք աշխատում, լիովին հակասում են նրանց անունին [USB - Universal Serial Bus], քանի որ յուրաքանչյուր USB ընդունիչ պետք է համատեղելի լինի ցանկացած USB սարքի հետ: Դուք չեք կարող միացնել ձեր USB կրիչը կամ ստեղնաշարը լիցքավորիչի ներսում և ակնկալել, որ այն կաշխատի:

Բայց հայեցակարգը չափազանց լավ է հնչում: Ահա թե ինչու այս «Ունիվերսալ-նավահանգիստ» հասկացությունը նախաձեռնելու համար ես սկսեցի «Անլար քարտի ընթերցող» պարզ նախագծով

Սա կատարեց իմ բոլոր ցանկությունները: Մնում է միայն այն միացնել ցանկացած USB ընդունիչի մեջ, կարևոր չէ, թե որն է:

Այն միացնելուն պես այն ստեղծում է մուտքի կետ, որտեղ մենք կարող ենք միանալ, ապա միանալ մուտքի կետին և պարզապես բացել ցանկացած FTP հաճախորդի ծրագիր ցանկացած համատեղելի սարքում: Այս կարգավորմամբ մենք կարող ենք անլար պատճենել, ինչպես նաև ֆայլեր պահել SD քարտում:

Պարագաներ

Սրանք այն ապրանքների ցանկն են, որոնք կարող են օգնել ձեզ հեշտությամբ կատարել այս նախագիծը

(Գործընկերային հղում)

  • Esp12E ՝
  • SD քարտ ՝
  • Միկրո SD ադապտեր ՝
  • HeaderPins ՝
  • Անկյուն վերնագրի քորոցներ ՝
  • Հաղորդալարեր ՝
  • FTDI ՝
  • Arduino nano + ծրագրավորող մետաղալար ՝
  • Արական USB ՝
  • PCB:
  • Oldոդման ատրճանակ ՝
  • Sոդման կապար ՝

Քայլ 1: SD (անվտանգ թվային) քարտ

SD (անվտանգ թվային) քարտ
SD (անվտանգ թվային) քարտ

SD- ը նշանակում է Secure Digital, այն նման է ձեր Pendrive- ին, բայց ավելի փոքր հետքերով և շատ ավելի էժան գնով:

Երբ մենք պետք է սա օգտագործենք միկրոկոնտրոլերներից որևէ մեկի հետ, կա 2 տարբերակ, մեկը ՝ SDIO և SPI: Գրեթե բոլոր SD քարտերը կիսում են բազմաթիվ ստանդարտ հնարավորություններ և ունեն նույն ֆիզիկական և էլեկտրական բնութագրերը: SPI- ի և SDIO- ի միջև իրական տարբերությունները հիմնականում ծրագրային ապահովման մակարդակի վրա են: Այս մասին ավելին կարող եք կարդալ այս Հղումով:

Առայժմ, պարզապես ասենք, որ SDIO- ն ավելի արագ, բայց ավելի դժվար է իրականացնել, իսկ SPI- ն ավելի դանդաղ է, բայց ավելի հեշտ է իրականացնել: Քանի որ միկրոկոնտրոլերների մեծ մասը լռելյայն աջակցում է SPI- ն, մենք պարզապես կառչենք դրան:

SD քարտի pinout SPI- ի համար

Pin -1 - CS (Chip select) Pin -2 - DI (MOSI) Pin -3 - GNDPin -4 - VCCPin -5 - SCLKPin -6 - GNDPin -7 - DO (MISO) Pin -8 - NCPin -9 - NC

Քայլ 2: SD քարտի ադապտեր փոփոխություն

SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն
SD քարտի ադապտեր փոփոխություն

Դուք կարող եք օգտագործել SD քարտի ցանկացած մոդուլ, որն աջակցում է Arduino- ին և esp8266- ին, սակայն այս նախագծի համար մենք կօգտագործենք microSD քարտի ադապտեր և կփոխենք այնպես, որ մենք կարողանանք այն օգտագործել մոդուլի փոխարեն:

Նախ, մաքրեք SD քարտի ադապտերների կոնտակտները: Այնուհետև օգտագործեք անկյունագծով վերնագրերի կապում և կապեք դրանք անմիջապես ադապտերների կոնտակտներին: Theոդման աշխատանքներն ավարտելուց հետո ստուգեք վերնագրի կապերի միջև եղած շփումները `կարճ միացման առկայությունը ստուգելու համար: Հեռացրեք սև տարանջատիչը մեկ առ մեկ, այնպես որ, երբ այն հետ տեղադրենք, այն կհարթվի PCB- ի հետ:

Կտրեք PCB- ն այնպես, որ այն հիանալի տեղավորվի SD քարտի ադապտերի հետ և լրացուցիչ տարածք ունենա ՝ արական USB պորտը ավելացնելու համար:

Դուք կարող եք նույն գործընթացը կատարել SD քարտի հետ ՝ ադապտերի փոխարեն, բայց դա բավականին ռիսկային է, եթե այն վնասեք:

Քայլ 3: USB միացում

USB միացում
USB միացում
USB միացում
USB միացում
USB միացում
USB միացում

Մենք պետք է սնուցենք SD քարտը: Դրա համար մենք կօգտագործենք USB ընդունման պորտը: Այսպիսով, մենք կօգտագործենք արական USB պորտ: Սովորաբար սա ունի 4 կապ, որտեղ տվյալների փոխանցման համար օգտագործվում է 2 միջին կապ, իսկ հզորության և գրունտի համար `2 ծայրահեղ կապում: Քանի որ մեզ պարզապես ուժ է պետք, ես կկտրեմ տվյալների կապերը և կպահեմ GND- ը և VCC- ն:

Այնուհետև տեղադրեք արական USB պորտը SD քարտի դիմաց, որտեղ մենք ավելի վաղ տարածք էինք զբաղեցրել, այնուհետև ամրացրեք այն տեղում: Սա դեռ չի լուծել էներգիայի որևէ խնդիր: Քանի որ SD քարտը պահանջում է 3.3 վ, բայց USB մատակարարումը ստանդարտ 5 Վ է, եթե այն ուղղակի միացնում եք մատակարարմանը, հավանաբար կջրեք SD քարտը (Բայց microSD ադապտերից ոչ մի վնաս չի լինի):

Որպեսզի դա լուծվի, մենք կօգտագործենք 3.3 Վ կարգավորիչ և USB- ի մուտքը կկապենք 3.3 Վ կարգավորիչին, այսինքն `USB- ի GND- ը կկարգավորենք կարգավորիչի 1 -ին կապին և կարգավորիչի 3 -րդ կապը կկարգավորենք կարգավորիչի +5 Վ -ին: Ի վերջո, կարգավորիչի կարգավորիչ 3 -ը (ելքային քորոցը) և հիմքը կպցրեք SD քարտին:

Սա կարգավորում է SD քարտի հզորությունը: Ավելի մանրամասն կապի համար կարող եք ստուգել սխեմայի սխեման:

Քայլ 4: Ամեն ինչ միացրեք ESP-12E- ի հետ

Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին
Ամեն ինչ դնել ESP-12E- ի հետ միասին

Այժմ SD քարտից տվյալները կարդալու և գրելու համար մենք կօգտագործենք Esp12E wifi մոդուլը, չնայած այն ավելի դանդաղ է, քան esp32- ը: Բայց իսկապես կարևոր չէ, թե որ մեկն եք ընտրում, ես պատճառները կասեմ վերջին քայլերում:

Նախ կպցրեք EN (միացնել կապը) esp12E- ի VCC- ին, սա կմիացնի IC- ն: Եթե դա միացված չէ HIGH ազդանշանին, IC- ն չի միանա: Այնուհետև տեղադրեք esp12E- ն PCB տախտակի հետևի մասում և կպցրեք esp12E- ի SPI կապումներն SD քարտի SPI կապանքներին: Մանրամասների համար կապը ստուգում է սխեմայի սխեման:

Քայլ 5: HTTP VS FTP

Նախքան ծրագրավորումը, ես որոշ հետազոտություններ կատարեցի, թե ինչպես են աշխատում ներլցումները և վերբեռնումները, այդ ժամանակ ես պատահաբար հանդիպեցի FTP բառին: Հիմնականում FTP- ը նշանակում է ֆայլերի փոխանցման արձանագրություն, այս արձանագրությունը օգտագործվում է սերվերների և հաճախորդի միջև ֆայլեր փոխանցելու համար և ամբողջովին տարբերվում է սովորական HTTP- ից, որտեղ հաճախորդը և սերվերը ուղարկում և ստանում են շատ փոքր չափի պահանջներ/պատասխաններ:

FTP- ն ավելի արագ է, քան HTTP- ը ֆայլեր փոխանցելիս, քանի որ այն հատուկ ստեղծված է դրա համար: Այսպիսով, ես ուզում էի սա իրականացնել այս նախագծում: Որտեղ FTP սերվեր աշխատում է esp-12E- ի վրա, և մենք կարող ենք տվյալ FTP- ի միջոցով տվյալներ մղել և բերել SD քարտ:

Քայլ 6: Պարզեք FTP գրադարանը

Պարզեք FTP գրադարանը
Պարզեք FTP գրադարանը
Պարզեք FTP գրադարանը
Պարզեք FTP գրադարանը

Ես չկարողացա գտնել FTP գրադարան, որը շատ ակտիվ մշակված կամ հատուկ պատրաստված է esp8266- ի համար: Բայց ինչ -որ փորփրելով հանդիպեցի Դեյվիդ Պայվային, ով FTP սերվերի Arduino տարբերակը տեղափոխեց esp8266, բայց SPIFFS աջակցությամբ և ոչ թե SD քարտով:

Բայց քիչ ջանքեր գործադրելով ՝ ես գտա մեկին, ով որոշակի աշխատանքներ կատարեց Դեյվիդ Պայվայի գրադարանում ՝ SPIFFS- ը SD քարտի փոխարկելու համար: Բայց երբ ես փորձեցի օգտագործել սա, ես բախվեցի 2 խնդրի. Նախ, այն էջը, որտեղ ես պարզեցի, որ դա կորեերեն էր, այնպես որ ես ստիպված էի բառացիորեն նստել և թարգմանել ամեն ինչ, որպեսզի իմանամ, թե ինչ է կատարվում, նախքան դրա հետ որևէ բան անելը: Հետո երկրորդ խնդիրն այն էր, որ ես ստիպված էի փոփոխել գոյություն ունեցող SD գրադարանը ՝ աջակցելու նրա կատարած փոփոխություններին, բայց դա ինձ շատ անշնորհք էր թվում:

Այսպիսով, ես համեմատեցի թե՛ այս գրադարանը, մեկը ՝ Դեյվիդ Պայվայի, և՛ մյուսը կորեական կայքէջի հետ, այնուհետև որոշ փոքր փոփոխություններ կատարեցի և ամբողջը դարձրեցի մեկ նախագծի, այնպես որ կարիք չկա որևէ տեսակի գրադարան տեղադրել: Դուք կարող եք ստուգել ծածկագիրը իմ Github հաշվից:

Քայլ 7. ESP-12E- ի ծրագրավորում

ESP-12E- ի ծրագրավորում
ESP-12E- ի ծրագրավորում
ESP-12E- ի ծրագրավորում
ESP-12E- ի ծրագրավորում
ESP-12E- ի ծրագրավորում
ESP-12E- ի ծրագրավորում

ESP-12E- ն չի ներկառուցված ծրագրավորողով, այնպես որ մենք պետք է օգտագործենք արտաքին ծրագրավորող, ինչպես FDTI մոդուլը: Այսպիսով, ես պատրաստեցի ադապտեր մի քանի լարերով և վերնագրերի կանացի կապանքներով: Դրանով մենք կարող ենք ժամանակավորապես զոդել esp12E- ն և ծրագրավորել այն ՝ օգտագործելով FTDI մոդուլը:

Միացրեք GND- ը [esp12E] GND- ին, Rx [esp12E] Tx- ին, Tx [esp12E] Rx- ին, GPIO15 [esp12E] GND- ին, GPIO0 [esp12E] GND- ին, VCC [esp12E] - ը FDTI մոդուլի VCC- ին:

Այնուհետև վերբեռնեք կոդը Github- ից ՝ օգտագործելով Arduino IDE- ն:

Theրագիրը վերբեռնելուց հետո կարող եք զոդել այն լարերը, որոնք միացված էին esp12E ծրագրին:

Քայլ 8: Նախագծի ավարտում:

Ավարտելով նախագիծը
Ավարտելով նախագիծը
Ավարտելով նախագիծը
Ավարտելով նախագիծը
Ավարտելով նախագիծը
Ավարտելով նախագիծը

Պարզապես տեղադրեք ադապտերի ներսում ցանկացած microSD [32 ԳԲ առավելագույն] քարտ և միացրեք ամբողջ սարքը USB- ի հետ համատեղելի ցանկացած սարքի, ինչը պետք է ուժ հաղորդի: Բայց պետք է հաշվի առնել մի քանի բան, համոզվեք, որ USB պորտի ելքային հոսանքը 1 ամպից մեծ է, պարզապես ավելի ապահով կողմում լինելու համար: Քանի որ Esp12E մոդուլը ավելի շատ հոսանք է սպառում ֆայլեր փոխանցելիս:

Քայլ 9: Սարքի օգտագործումը

Օգտագործելով Սարքը
Օգտագործելով Սարքը
Օգտագործելով Սարքը
Օգտագործելով Սարքը
Օգտագործելով Սարքը
Օգտագործելով Սարքը

Սարքը սնվելուն պես սարքը ստեղծում է մուտքի կետ, որը կոչվում է SD Reader: Միացեք այս մուտքի կետին ՝ օգտագործելով ծածկագրի վրա եղած գաղտնաբառը: Այնուհետև կախված նրանից, թե որ սարքն եք օգտագործում 12E- ին միանալու համար, ներբեռնեք համապատասխան FTP հաճախորդի ծրագրակազմը, եթե օգտագործում եք համակարգիչ, ներբեռնեք WinSCP կամ Filzella, և եթե օգտագործում եք Android սարք, ներբեռնեք AndFTP:

Տեղադրումն ավարտվելուց հետո բացեք AndFTP- ը և լրացրեք հավատարմագրերը ՝ FTP հաճախորդը կարգավորելու համար: Իմ դեպքում օգտագործողի անունը և գաղտնաբառը ծածկագրում թողել եմ կանխադրված «esp8266»: Այսպիսով, օգտագործեք այն օգտագործողի տեղեկատվության և հյուրընկալողի համար 192.168.12.7. Վերջապես, միացեք FTP սերվերին:

Երբ դա արվի, կարող եք ներբեռնել ցանկացած ֆայլ SD քարտից, ինչպես նաև կարող եք ձեր հեռախոսից ֆայլեր վերբեռնել SD քարտ:

Դուք կարող եք տեսնել տեսանյութը `իմանալու համար, թե ինչպես է այն աշխատում:

Քայլ 10: Վերջնական մտքեր

Վերջնական մտքեր
Վերջնական մտքեր
Վերջնական մտքեր
Վերջնական մտքեր

Բայց նախքան եզրակացության գալը, որ դա շատ հարմար սարք է, եկեք մի քայլ հետ գնանք:

Թեև դա անում է այն, ինչ ես ուզում եմ, բայց դա դանդաղ է: Ընդամենը 4 ֆայլի համար (յուրաքանչյուրը K 100Kb) տևում է մոտ 30 վայրկյան, և եթե փորձեք ավելի մեծ ֆայլով, ինչպիսին է 10 ՄԲ-ն, այն կտևի մոտ 3-4 րոպե: Սա օպտիմալացնելու եղանակներ կան, և այն էջից, որտեղ ես անդրադարձել էի, նա կարողացավ ստանալ մոտ 450kbs ընթերցման արագություն: (Esp32 և SD_MMC գրադարանների փոխանցման արագությունը կարող է լինել մոտ 1 ՄԲ/վրկ)

Պատճառը, թե ինչու ես դադարեցրի նախագիծը այստեղ և չփորձեցի այն օպտիմալացնել, 2 պատճառով էր: Առաջին պատճառը, ես իսկապես կցանկանայի, որ FTP սերվերի հետ միասին ես դեռ կարողանայի օգտագործել USB տվյալների գիծը ՝ տվյալների փոխանցման համար, բայց դա չի աջակցվում esp8266 կամ esp32- ում: Եվ երկրորդ պատճառն այն է, որ ես չկարողացա բավարար արագություն ստանալ ֆայլերը FTP- ով փոխանցելու համար: Սրանք նաև այն նույն պատճառն են, թե ինչու ես չեմ անհանգստացել esp12E- ի փոխարեն օգտագործել esp32- ը:

Բայց ես կարծում եմ, որ այս խնդիրներից մի քանիսը կարող են լուծվել, եթե մենք կարողանանք օգտագործել esp32 S2 տախտակները, որոնք ապահովում են ամբողջ արագությունը USB- ում: Գուցե ես կարող եմ դա անել մեկ այլ ուսանելի XD- ի համար:

Խորհուրդ ենք տալիս: