فهرست مطالب:

کارت خوان SD بی سیم [ESP8266]: 10 مرحله (همراه با تصاویر)
کارت خوان SD بی سیم [ESP8266]: 10 مرحله (همراه با تصاویر)

تصویری: کارت خوان SD بی سیم [ESP8266]: 10 مرحله (همراه با تصاویر)

تصویری: کارت خوان SD بی سیم [ESP8266]: 10 مرحله (همراه با تصاویر)
تصویری: 💐 آموزش رفع تمپری کارتخوان نیولند me31 تا ورژن P07 2024, جولای
Anonim
Image
Image

USB قرار بود جهانی باشد ، و هدف اصلی این بود که بتوان با دستگاه های دیگر قابلیت تعویض داغ و فوق العاده آسان را برقرار کرد ، اما با گذشت سالها این ایده به چالش کشیده شد. انواع مختلفی از این درگاه های USB وجود دارد که گاهی اوقات بسیار ناامید کننده است و نحوه عملکرد آنها کاملاً با نام آنها [USB - Universal Serial Bus] در تضاد است زیرا هر گیرنده USB باید با هر دستگاه USB سازگار باشد! نمی توانید USB یا صفحه کلید خود را درون شارژر وصل کنید و انتظار کارکردن آن را داشته باشید.

اما مفهوم آن خیلی خوب به نظر می رسد! به همین دلیل برای ایجاد این مفهوم "پورت جهانی" من با یک پروژه ساده "کارت خوان بی سیم" شروع کردم

این همه خواسته های من را برآورده کرد ، تنها کاری که باید انجام دهم این است که فقط آن را به هر گیرنده USB وصل کنم ، مهم نیست کدام یک است!

به محض اتصال به آن ، یک نقطه دسترسی ایجاد می کند که در آن ما می توانیم متصل شویم و سپس به نقطه دسترسی متصل شویم و فقط هر برنامه مشتری FTP را در هر دستگاه سازگار باز کنیم. با استفاده از این تنظیمات ، می توانیم فایل ها را به صورت بی سیم در کارت SD کپی و ذخیره کنیم!

تدارکات

اینها لیستی از محصولاتی هستند که می توانند به شما در انجام این پروژه با سهولت کمک کنند

(پیوند وابسته)

  • Esp12E:
  • کارت SD:
  • آداپتور Micro SD:
  • HeaderPins:
  • پین هدر زاویه دار:
  • سیمها:
  • FTDI:
  • آردوینو نانو + سیم برنامه نویس:
  • USB مردانه:
  • PCB:
  • تفنگ لحیم کاری:
  • سرب لحیم کاری:

مرحله 1: کارت SD (دیجیتال امن)

کارت SD (دیجیتال امن)
کارت SD (دیجیتال امن)

SD مخفف Secure Digital است ، شبیه Pendrive شما است اما دارای رد پای کوچکتر و قیمت بسیار ارزان تر است.

هنگامی که مجبوریم از این با هر یک از میکروکنترلرها استفاده کنیم ، 2 گزینه وجود دارد ، یکی SDIO و SPI است. تقریباً همه کارت های SD دارای ویژگی های استاندارد بسیاری هستند و مشخصات فیزیکی و الکتریکی یکسانی دارند. تفاوت های واقعی بین SPI و SDIO عمدتا در سطح نرم افزار است. در این لینک می توانید در مورد آن بیشتر بخوانید.

در حال حاضر ، فقط باید بگوییم اجرای SDIO سریعتر اما سخت تر است و پیاده سازی SPI کندتر اما آسان تر است. از آنجا که اکثر میکروکنترلرها به طور پیش فرض از SPI پشتیبانی می کنند ، ما فقط به آن پایبند هستیم.

پین کارت SD برای SPI

Pin -1 - CS (انتخاب تراشه) 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 را تمیز کنید. سپس از پین هدر زاویه دار استفاده کنید و پین ها را مستقیماً به مخاطبین آداپتور لحیم کنید. پس از اتمام لحیم کاری ، تماس بین پین هدر را بررسی کنید تا اتصال کوتاه بررسی شود. جدا کننده سیاه را یکی یکی جدا کنید ، بنابراین وقتی آن را دوباره قرار می دهیم ، با 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.3V استفاده می کنیم و ورودی منبع USB را به تنظیم کننده 3.3V متصل می کنیم ، یعنی GND USB را به پین 1 تنظیم کننده و پین 3 تنظیم کننده را به +5V تنظیم کننده متصل می کنیم. در نهایت ، پین 3 (پایه خروجی) و پایه تنظیم کننده را به کارت SD لحیم کنید.

با این کار قدرت کارت SD تنظیم می شود. برای اتصال بیشتر می توانید نمودار مدار را بررسی کنید.

مرحله 4: همه چیز را با ESP-12E ترکیب کنید

ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E
ترکیب همه چیز با ESP-12E

اکنون برای خواندن و نوشتن داده ها از کارت SD از ماژول wifi Esp12E استفاده می کنیم ، حتی اگر کندتر از esp32 باشد. اما واقعاً مهم نیست که کدام را انتخاب می کنید ، من در مراحل بعدی دلیل آن را می گویم.

ابتدا EN (پین فعال) را به VCC esp12E لحیم کنید ، این IC را روشن می کند. اگر این دستگاه به سیگنال HIGH وصل نباشد ، IC روشن نمی شود. سپس esp12E را در پشت برد PCB قرار دهید و پین های SPI esp12E را به پین های SPI روی کارت SD لحیم کنید. برای جزئیات ، اتصال نمودار مدار را بررسی می کند.

مرحله 5: HTTP VS FTP

قبل از برنامه نویسی ، من در مورد نحوه بارگیری و بارگذاری تحقیق کردم ، آن زمان بود که با کلمه FTP برخورد کردم. اساساً FTP مخفف پروتکل انتقال فایل است ، این پروتکل برای انتقال فایل بین سرورها و سرویس گیرنده استفاده می شود و کاملاً متفاوت از HTTP معمولی است که در آن سرویس گیرنده و سرور درخواست و پاسخ ارسال می کنند و حجم بسیار کمی دارند.

FTP در انتقال فایلها سریعتر از HTTP است زیرا به طور خاص برای آن ساخته شده است. بنابراین ، من می خواستم این را در این پروژه پیاده کنم. جایی که یک سرور FTP روی esp-12E اجرا می شود و ما می توانیم داده ها را از طریق این FTP به کارت SD فشار دهیم و واکشی کنیم.

مرحله 6: پیدا کردن کتابخانه FTP

پیدا کردن کتابخانه FTP
پیدا کردن کتابخانه FTP
پیدا کردن کتابخانه FTP
پیدا کردن کتابخانه FTP

من هیچ کتابخانه FTP که بسیار فعال توسعه یافته یا مخصوص esp8266 ساخته شده است را پیدا نکردم. اما با کمی بررسی به دیوید پایوا برخورد کردم که نسخه آردوینو سرور FTP را به esp8266 اما با پشتیبانی SPIFFS و نه کارت SD منتقل کرد.

اما با کمی تلاش بیشتر ، شخصی را پیدا کردم که برای تبدیل SPIFFS به کارت SD روی کتابخانه David Paiva کار می کرد. اما وقتی سعی کردم از این استفاده کنم ، با 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] را به VCC ماژول FDTI وصل کنید.

سپس کد را از Github با استفاده از Arduino IDE بارگذاری کنید.

پس از بارگذاری برنامه می توانید سیم هایی را که برای برنامه نویسی 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 بارگذاری کنید.

می توانید ویدیو را ببینید تا بدانید چگونه کار می کند!

مرحله دهم: اندیشه های نهایی

افکار نهایی
افکار نهایی
افکار نهایی
افکار نهایی

اما قبل از اینکه به این نتیجه برسیم که داشتن یک دستگاه بسیار مفید ، بیایید قدمی به عقب برداریم.

حتی اگر آنچه را که من می خواهم انجام دهد ، بسیار کند است! فقط برای 4 فایل (هر 100 کیلو بایت) تقریباً 30 ثانیه طول می کشد ، و اگر با یک فایل بزرگتر مانند 10 مگابایت امتحان کنید ، 3-4 دقیقه طول می کشد تا تکمیل شود. راه هایی برای بهینه سازی این امر وجود دارد ، و از صفحه ای که به آن اشاره کردم توانست سرعت خواندن تقریبا 450 کیلوبایت را بدست آورد. (با Esp32 و SD_MMC سرعت انتقال کتابخانه ممکن است حدود 1 مگابایت بر ثانیه باشد)

دلیل اینکه پروژه را در اینجا متوقف کردم و سعی نکردم بهینه سازی آن را انجام دهم به 2 دلیل بود. دلیل اول ، من واقعاً آرزو می کنم که در کنار سرور FTP هنوز بتوانم از خط داده USB برای انتقال داده استفاده کنم ، اما در esp8266 یا esp32 پشتیبانی نمی شود. و دلیل دوم این است که من نتوانستم سرعت کافی برای انتقال فایل ها از طریق FTP را بدست آورم. اینها نیز همان دلیلی است که چرا من زحمت استفاده از esp32 را به جای esp12E ندادم.

اما من فکر می کنم برخی از این مشکلات قابل حل هستند اگر بتوانیم از بردهای esp32 S2 که از سرعت کامل USB در حال حرکت پشتیبانی می کند ، استفاده کنیم. شاید بتوانم این کار را برای XD قابل آموزش دیگر انجام دهم.

توصیه شده: