İçindekiler:

Kablosuz SD Kart Okuyucu [ESP8266]: 10 Adım (Resimlerle)
Kablosuz SD Kart Okuyucu [ESP8266]: 10 Adım (Resimlerle)

Video: Kablosuz SD Kart Okuyucu [ESP8266]: 10 Adım (Resimlerle)

Video: Kablosuz SD Kart Okuyucu [ESP8266]: 10 Adım (Resimlerle)
Video: Paranız Ziyan Olmasın ! Hangi Sd Kartı Almalı ? Doğru Hafıza Kartı Seçimi 2024, Temmuz
Anonim
Image
Image

USB'nin evrensel olması gerekiyordu ve asıl amaç, çalışırken değiştirilebilir, diğer cihazlarla arayüz oluşturması süper kolay hale getirmekti, ancak yıllar geçtikçe bu fikir çığırından çıktı. Bu USB bağlantı noktalarının o kadar çok farklı çeşidi vardır ki bu bazen çok sinir bozucu olur ve bunların çalışma şekli adlarıyla tamamen çelişir çünkü her USB alıcısı herhangi bir USB cihazıyla uyumlu olmalıdır! USB çubuğunuzu veya klavyenizi şarj cihazına takıp çalışmasını bekleyemezsiniz.

Ama konsept kulağa çok iyi geliyor! Bu yüzden bu "Evrensel Bağlantı Noktası" konseptini başlatmak için basit bir "Kablosuz Kart okuyucu" projesiyle başladım.

Bu tüm isteklerimi yerine getirdi, tek yapmam gereken onu herhangi bir USB alıcısına takmak, hangisi olduğu önemli değil!

Taktığınız anda, bağlanabileceğimiz ve ardından erişim noktasına bağlanabileceğimiz ve herhangi bir uyumlu cihazda herhangi bir FTP istemci uygulamasını açabileceğimiz bir erişim noktası oluşturur. Bu kurulumla, dosyaları kablosuz olarak SD karta kopyalamanın yanı sıra kaydedebiliriz!

Gereçler

Bunlar, bu projeyi kolaylıkla yapmanıza yardımcı olabilecek ürünlerin listesidir.

(Ortaklık Bağlantısı)

  • Esp12E:
  • SD kart:
  • Mikro SD Adaptör:
  • BaşlıkPinleri:
  • Açılı Başlık Pinleri:
  • Teller:
  • FTDI:
  • Arduino nano + programcı teli:
  • Erkek USB:
  • PCB:
  • Lehim Tabancası:
  • Lehimleme Kurşunu:

Adım 1: SD(Güvenli Dijital) Kartı

SD (Güvenli Dijital) Kart
SD (Güvenli Dijital) Kart

SD, Secure Digital'in kısaltmasıdır, Pendrive'ınıza benzer ancak daha az yer kaplar ve çok daha ucuzdur.

Bunu herhangi bir mikrodenetleyici ile kullanmamız gerektiğinde 2 seçenek var, biri SDIO ve SPI. Hemen hemen tüm SD kartlar birçok standart özelliği paylaşır ve aynı fiziksel ve elektriksel özelliklere sahiptir. SPI ve SDIO arasındaki gerçek farklar esas olarak yazılım düzeyindedir. Bununla ilgili daha fazla bilgiyi bu Linkte okuyabilirsiniz.

Şimdilik, SDIO'nun daha hızlı ama uygulanması daha zor ve SPI'nin daha yavaş ama uygulanması daha kolay olduğunu söyleyelim. Mikrodenetleyicilerin çoğu varsayılan olarak SPI'yi desteklediğinden, ona bağlı kalacağız.

SPI için SD kart pin çıkışı

Pin-1 - CS (Çip seçimi)Pin-2 - DI (MOSI)Pin-3 - GNDPin-4 - VCCPin-5 - SCLKPin-6 - GNDPin-7 - DO (MISO)Pin-8 - NCPin-9 - NC

2. Adım: SD Kart Adaptörünün Değiştirilmesi

SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu
SD Kart Adaptörü Modifikasyonu

Arduino ve esp8266'yı destekleyen herhangi bir SD kart modülünü kullanabilirsiniz, ancak bu proje için microSD kart adaptörünü kullanacağız ve modül yerine bunu kullanabileceğimiz şekilde değiştireceğiz.

Önce SD kart adaptörünün temas noktalarını temizleyin. Ardından açılı başlık pimleri kullanın ve pimleri doğrudan adaptör kontaklarına lehimleyin. Lehimleme bittiğinde, herhangi bir kısa devre olup olmadığını kontrol etmek için başlık pimleri arasındaki temasları kontrol edin. Siyah ayırıcıyı birer birer çıkarın, böylece geri yerleştirdiğimizde PCB ile aynı hizada olacaktır.

PCB'yi SD kart adaptörüne tam oturacak ve erkek USB bağlantı noktasını eklemek için fazladan alana sahip olacak şekilde kesin.

Aynı işlemi adaptör yerine SD kart ile de yapabilirsiniz ancak zarar verirseniz oldukça risklidir.

3. Adım: USB Bağlantısı

USB Bağlantısı
USB Bağlantısı
USB Bağlantısı
USB Bağlantısı
USB Bağlantısı
USB Bağlantısı

SD karta güç vermemiz gerekiyor, Bunun için USB alıcı portunun kendisini kullanacağız. Bu yüzden bir erkek USB portu kullanacağız. Bu genellikle 4 pime sahiptir, burada veri aktarımı için 2 orta pim ve güç ve toprak için 2 uç pim kullanılır. Sadece güce ihtiyacımız olduğu için veri pinlerini keseceğim ve sadece GND ve VCC'yi tutacağım.

Daha sonra erkek USB portunu daha önce biraz boşluk bıraktığımız SD kartın önüne yerleştirip yerine lehimleyin. Bu henüz herhangi bir güç sorununu çözmedi! SD kart 3.3v gerektirdiğinden, ancak USB kaynağı standart 5V olduğundan, bunu yalnızca kaynağa takarsanız, muhtemelen SD kartı kızartırsınız (Ancak microSD adaptöründen herhangi bir zarar gelmez).

Bunu çözmek için bir 3.3V regülatör kullanacağız ve USB kaynağının girişini 3.3V regülatöre bağlayacağız, yani USB'nin GND'sini regülatörün 1. pinine ve regülatörün 3. pinini regülatörün +5V'sine bağlayacağız. Son olarak, regülatörün pim 3'ünü (çıkış pimi) ve topraklamasını SD karta lehimleyin.

Bu, SD kartın gücünü ayarlayacaktır. Daha ayrıntılı bir bağlantı için devre şemasını kontrol edebilirsiniz.

Adım 4: ESP-12E ile Her Şeyi Bir Araya Getirmek

ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek
ESP-12E ile Her Şeyi Bir Araya Getirmek

Şimdi SD karttan veri okumak ve yazmak için esp32'den daha yavaş olmasına rağmen Esp12E wifi modülünü kullanacağız. Ama hangisini seçtiğinizin gerçekten bir önemi yok, nedenini sonraki adımlarda anlatacağım.

İlk önce EN'yi (etkinleştirme pimini) esp12E'nin VCC'sine lehimleyin, bu IC'yi açacaktır. Bu, YÜKSEK sinyaline bağlı değilse, IC açılmayacaktır. Ardından esp12E'yi PCB kartının arkasına yerleştirin ve esp12E'nin SPI pinlerini SD kart üzerindeki SPI pinlerine lehimleyin. Detay için bağlantı devre şemasını kontrol eder.

Adım 5: HTTP'ye Karşı FTP

Programlamadan önce indirme ve yüklemelerin nasıl çalıştığı hakkında biraz araştırma yaptım, o zaman FTP kelimesine rastladım. Temelde FTP, dosya aktarım protokolü anlamına gelir, bu protokol sunucular ve istemci arasında dosya aktarmak için kullanılır ve istemci ve sunucunun çok küçük boyutlu istek/yanıt gönderip aldığı normal HTTP'den tamamen farklıdır.

FTP, dosya aktarımında HTTP'den daha hızlıdır çünkü bunun için özel olarak yapılmıştır. O yüzden bu projede bunu uygulamak istedim. Bir FTP sunucusunun esp-12E üzerinde çalıştığı ve bu FTP üzerinden SD karta veri gönderip getirebileceğimiz yerde.

Adım 6: FTP Kitaplığını Bulma

FTP Kitaplığını Anlamak
FTP Kitaplığını Anlamak
FTP Kitaplığını Anlamak
FTP Kitaplığını Anlamak

Çok aktif olarak geliştirilmiş veya özellikle esp8266 için yapılmış herhangi bir FTP kitaplığı bulamadım. Ancak biraz kazı yaparak, FTP sunucusunun Arduino sürümünü esp8266'ya taşıyan, ancak SD kartı değil SPIFFS desteğiyle David Paiva ile karşılaştım.

Ancak biraz daha çaba sarf ederek, SPIFFS'yi SD karta dönüştürmek için David Paiva kitaplığı üzerinde bazı çalışmalar yapan birini buldum. Ancak bunu kullanmaya çalıştığımda 2 sorunla karşılaştım. İlk olarak, bunu öğrendiğim sayfa Koreceydi, bu yüzden onunla bir şey yapmadan önce tam anlamıyla oturup neler olup bittiğini anlamak için her şeyi çevirmek zorunda kaldım. İkinci sorun ise, onun yaptığı değişiklikleri desteklemek için mevcut SD kütüphanesini değiştirmem gerekti ama bu bana çok hantal geldi.

Bu yüzden, biri David Paiva'dan diğeri Kore web sitesinden bu kütüphaneyi karşılaştırdım, Sonra bazı küçük değişiklikler yaptım ve her şeyi tek bir proje haline getirdim, böylece herhangi bir kütüphane kurmaya gerek yok. Kodu Github hesabımdan inceleyebilirsiniz.

Adım 7: ESP-12E'nin Programlanması

ESP-12E'nin Programlanması
ESP-12E'nin Programlanması
ESP-12E'nin Programlanması
ESP-12E'nin Programlanması
ESP-12E'nin Programlanması
ESP-12E'nin Programlanması

ESP-12E dahili bir programlayıcı ile gelmiyor, bu yüzden FDTI modülü gibi harici bir programlayıcı kullanmamız gerekiyor. Bu yüzden birkaç kablolu ve dişi başlık pinli bir adaptör yaptım, bununla esp12E'yi geçici olarak lehimleyebilir ve FTDI modülünü kullanarak programlayabiliriz.

GND[esp12E]'yi GND'ye, Rx[esp12E]'yi Tx'e, Tx[esp12E]'yi Rx'e, GPIO15[esp12E]'yi GND'ye, GPIO0 [esp12E]'yi GND'ye, VCC[esp12E]'yi FDTI modülünün VCC'sine bağlayın.

Ardından Arduino IDE kullanarak Github'dan kodu yükleyin.

Program yüklendikten sonra, esp12E'yi programlamak için bağlı olan kabloları sökebilirsiniz.

Adım 8: Projeyi Bitirmek

Projeyi Bitirmek!
Projeyi Bitirmek!
Projeyi Bitirmek!
Projeyi Bitirmek!
Projeyi Bitirmek!
Projeyi Bitirmek!

Adaptörün içine herhangi bir microSD[32 GB maks.] kartı takın ve tüm cihazı herhangi bir USB uyumlu cihaza takın. Ancak göz önünde bulundurulması gereken birkaç şey var, yalnızca daha güvenli olmak için USB bağlantı noktası çıkış akımının 1amp'den büyük olduğundan emin olun. Çünkü Esp12E modülü dosya aktarırken daha fazla akım tüketir.

9. Adım: Cihazı Kullanma

Cihazı Kullanma
Cihazı Kullanma
Cihazı Kullanma
Cihazı Kullanma
Cihazı Kullanma
Cihazı Kullanma

Cihaza güç verilir verilmez cihaz, SD Okuyucu adı verilen bir erişim noktası oluşturur. Koddaki şifreyi kullanarak bu erişim noktasına bağlanın. Ardından, 12E'ye bağlanmak için hangi cihazı kullandığınıza bağlı olarak, PC indirme WinSCP veya Filzella kullanıyorsanız ve bir Android cihaz indirme AndFTP kullanıyorsanız ilgili FTP istemci yazılımını indirin.

Kurulum tamamlandıktan sonra, AndFTP'yi açın ve FTP istemcisini kurmak için kimlik bilgilerini doldurun. Benim durumumda, kullanıcı adını ve şifreyi kodda varsayılan "esp8266" olarak bıraktım. Bu nedenle, bunu kullanıcı bilgileri için ve ana bilgisayar için 192.168.12.7'yi kullanın. Son olarak, FTP sunucusuna bağlanın.

Bu yapıldıktan sonra, SD karttan herhangi bir dosyayı indirebilir ve telefonunuzdan SD karta dosya yükleyebilirsiniz.

Nasıl çalıştığını öğrenmek için videoyu izleyebilirsiniz!

Adım 10: Son Düşünceler

Son düşünceler
Son düşünceler
Son düşünceler
Son düşünceler

Ancak sahip olunması gereken çok kullanışlı bir cihaz olduğu sonucuna varmadan önce, bir adım geriye gidelim.

İstediğimi yapmasına rağmen, tamamen yavaş! Yalnızca 4 dosya (her biri ~ 100Kb) için yaklaşık 30 saniye sürer ve 10MB gibi daha büyük bir dosyayla denerseniz tamamlanması 3-4 dakika sürer. Bunu optimize etmenin yolları var ve bahsettiğim sayfadan kabaca 450 kbs okuma hızı elde edebildi. (Esp32 ve SD_MMC kitaplığı ile aktarım hızı 1MB/sn civarında olabilir)

Projeyi burada durdurmamın ve optimize etmeye çalışmamamın nedeni 2 nedendi. İlk neden, FTP sunucusuyla birlikte veri aktarmak için USB veri hattını kullanmaya devam edebilmeyi gerçekten isterdim, ancak esp8266 veya esp32'de desteklenmiyor. İkinci sebep ise dosyaları FTP üzerinden aktaracak kadar hız alamamamdı. Bunlar ayrıca, esp12E yerine esp32'yi kullanmakla uğraşmamamın nedeni ile aynı.

Ancak, hareket halindeyken USB'de tam hızı destekleyen esp32 S2 kartlarını kullanabilirsek, bu sorunların bir kısmının çözülebileceğini düşünüyorum. Belki bunu başka bir öğretilebilir XD için yapabilirim.

Önerilen: