جدول المحتويات:

قارئ بطاقة SD لاسلكي [ESP8266]: 10 خطوات (بالصور)
قارئ بطاقة SD لاسلكي [ESP8266]: 10 خطوات (بالصور)

فيديو: قارئ بطاقة SD لاسلكي [ESP8266]: 10 خطوات (بالصور)

فيديو: قارئ بطاقة SD لاسلكي [ESP8266]: 10 خطوات (بالصور)
فيديو: REVIEW: RAVPower FileHub, Wireless SD/HDD Reader & Router?! 2024, يوليو
Anonim
Image
Image

كان من المفترض أن يكون USB عالميًا ، وكان الهدف الرئيسي هو جعل واجهة قابلة للتبديل السريع وسهلة للغاية للتفاعل مع الأجهزة الأخرى ولكن على مر السنين أصبحت الفكرة سائدة. هناك العديد من المتغيرات المختلفة لمنافذ USB هذه والتي تكون محبطة للغاية في بعض الأحيان والطريقة التي تعمل بها تتعارض تمامًا مع اسمها [USB - Universal Serial Bus] لأن كل مستقبل USB يجب أن يكون متوافقًا مع أي جهاز USB! لا يمكنك توصيل عصا USB أو لوحة المفاتيح داخل الشاحن وتتوقع أن تعمل.

لكن المفهوم يبدو جيدًا جدًا! لهذا السبب بدأت بمبدأ "Universal-Port" بمشروع بسيط "Wireless Card Reader"

لقد حقق هذا جميع رغباتي ، كل ما علي فعله هو توصيله داخل أي مستقبل USB ، لا يهم أي واحد!

بمجرد توصيله ، فإنه ينشئ نقطة وصول حيث يمكننا الاتصال ثم الاتصال بنقطة الوصول وفتح أي تطبيق عميل FTP في أي جهاز متوافق. من خلال هذا الإعداد ، يمكننا نسخ الملفات وكذلك حفظها على بطاقة SD لاسلكيًا!

اللوازم

هذه هي قائمة المنتجات التي يمكن أن تساعدك على القيام بهذا المشروع بسهولة

(رابط تابع)

  • Esp12E:
  • بطاقة SD:
  • محول Micro SD:
  • HeaderPins:
  • دبابيس رأس بزاوية:
  • الأسلاك:
  • FTDI:
  • سلك مبرمج Arduino nano +:
  • ذكر USB:
  • ثنائي الفينيل متعدد الكلور:
  • بندقية اللحام:
  • الرصاص لحام:

الخطوة 1: بطاقة SD (رقمية آمنة)

بطاقة SD (رقمية آمنة)
بطاقة SD (رقمية آمنة)

SD تعني Secure Digital ، وهي مشابهة لـ Pendrive ولكن بحجم أصغر وسعر أرخص بكثير.

عندما يتعين علينا استخدام هذا مع أي من وحدات التحكم الدقيقة ، فهناك خياران ، أحدهما هو SDIO و SPI. تشترك جميع بطاقات SD تقريبًا في العديد من الميزات القياسية ولها نفس المواصفات المادية والكهربائية. الاختلافات الفعلية بين SPI و SDIO هي بشكل أساسي على مستوى البرنامج. يمكنك قراءة المزيد عنها في هذا الرابط.

في الوقت الحالي ، دعنا نقول فقط أن SDIO أسرع ولكن يصعب تنفيذها وأن SPI أبطأ ولكن أسهل في التنفيذ. نظرًا لأن معظم المتحكمات الدقيقة تدعم SPI افتراضيًا ، فسنلتزم بها.

pinout بطاقة SD لـ 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. ثم استخدم دبابيس الرأس المائلة وقم بلحام الدبابيس مباشرة بملامسات المحول. بمجرد الانتهاء من اللحام ، تحقق من جهات الاتصال بين دبابيس الرأس للتحقق من وجود أي دائرة كهربائية قصيرة. قم بإزالة الفاصل الأسود واحدًا تلو الآخر ، لذلك عندما نعيده ، فإنه يتدفق مع ثنائي الفينيل متعدد الكلور.

قم بقص PCB بطريقة تتناسب تمامًا مع محول بطاقة SD ولديها بعض المساحة الإضافية ، لإضافة منفذ USB للذكور.

يمكنك أيضًا القيام بنفس العملية باستخدام بطاقة SD بدلاً من المحول ، ولكن من المخاطرة جدًا إذا قمت بإتلافها.

الخطوة 3: توصيل USB

اتصال USB
اتصال USB
اتصال USB
اتصال USB
اتصال USB
اتصال USB

نحتاج إلى تشغيل بطاقة SD ، لذلك ، سنستخدم منفذ استقبال USB نفسه. لذلك سنستخدم منفذ USB من الذكور. يحتوي هذا عادةً على 4 دبابيس ، حيث يتم استخدام دبابيس متوسطة لنقل البيانات واستخدام دبابيس متطرفة للطاقة والأرض. نظرًا لأننا نحتاج فقط إلى الطاقة ، فسوف أقطع دبابيس البيانات وأحتفظ فقط بـ GND و VCC.

ثم وضع منفذ USB أمام بطاقة SD حيث وفرنا بعض المساحة في وقت سابق ، ثم قمنا بتثبيته في مكانه. هذا لم يحل أي مشكلة في الطاقة حتى الآن! نظرًا لأن بطاقة SD تتطلب 3.3 فولت ولكن مصدر USB هو 5 فولت قياسي إذا قمت للتو بتوصيل هذا بالمصدر ، فمن المحتمل أن تقوم بإخراج بطاقة SD (ولكن لن يتم إلحاق أي أضرار بواسطة محول microSD).

لحل هذه المشكلة ، سنستخدم منظمًا 3.3 فولت ونقوم بتوصيل مدخل مصدر USB بالمنظم 3.3 فولت ، أي قم بتوصيل 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 ، سنستخدم وحدة Esp12E wifi ، على الرغم من أنها أبطأ من esp32. لكن لا يهم حقًا أيهما تختار ، سأشرح السبب في الخطوات الأخيرة.

قم أولاً بلحام EN (دبوس التمكين) إلى VCC الخاص بـ esp12E ، سيؤدي ذلك إلى تشغيل IC. إذا لم يكن هذا متصلاً بالإشارة العالية ، فلن يتم تشغيل 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. ولكن مع بعض البحث ، صادفت David Paiva الذي نقل إصدار Arduino من خادم FTP إلى esp8266 ولكن بدعم SPIFFS وليس بطاقة SD.

ولكن مع القليل من الجهد ، وجدت شخصًا قام ببعض الأعمال في مكتبة David Paiva لتحويل نظام SPIFFS إلى بطاقة SD. ولكن عندما حاولت استخدام هذا ، واجهت مشكلتين. أولاً ، كانت الصفحة التي اكتشفت فيها ذلك باللغة الكورية ، لذا كان علي الجلوس وترجمة كل شيء حرفيًا لمعرفة ما كان يحدث قبل أن أفعل أي شيء بها. ثم كانت المشكلة الثانية هي أنني اضطررت إلى تعديل مكتبة SD الحالية لدعم التغييرات التي أجراها ولكن ذلك شعرت بأنه أخرق للغاية.

لذا ، قمت بمقارنة هذه المكتبة ، واحدة من David Paiva والأخرى من موقع الويب الكوري ، ثم قمت بإجراء بعض التغييرات الطفيفة وجعلت كل شيء في مشروع واحد لذلك ليست هناك حاجة لتثبيت أي مكتبة من أي نوع. يمكنك التحقق من الرمز من حساب 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.

الخطوة الثامنة: الانتهاء من المشروع

الانتهاء من المشروع!
الانتهاء من المشروع!
الانتهاء من المشروع!
الانتهاء من المشروع!
الانتهاء من المشروع!
الانتهاء من المشروع!

فقط أدخل أي بطاقة 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: الأفكار النهائية

افكار اخيرة
افكار اخيرة
افكار اخيرة
افكار اخيرة

ولكن قبل القفز إلى استنتاج مفاده أنه جهاز سهل الاستخدام للغاية ، دعنا نتراجع خطوة إلى الوراء.

على الرغم من أنها تفعل ما أريد ، إلا أنها بطيئة تمامًا! يستغرق الأمر حوالي 30 ثانية فقط لأربعة ملفات (كل منها ~ 100 كيلو بايت) ، وإذا حاولت باستخدام ملف أكبر حجمًا مثل 10 ميغا بايت ، فسيستغرق إكماله حوالي 3-4 دقائق. هناك طرق لتحسين ذلك ، ومن الصفحة التي أشرت إليها ، تمكن من الحصول على سرعة قراءة تبلغ 450 كيلو بايت تقريبًا. (مع سرعة نقل مكتبة Esp32 و SD_MMC قد تكون حوالي 1 ميجابايت / ثانية)

السبب في أنني أوقفت المشروع هنا ولم أحاول تحسينه كان لسببين. السبب الأول ، أتمنى حقًا ، جنبًا إلى جنب مع خادم FTP ، لا يزال بإمكاني استخدام خط بيانات USB لنقل البيانات ، لكنه غير مدعوم في esp8266 أو esp32. والسبب الثاني هو أنني لم أستطع الحصول على السرعة الكافية لنقل الملفات عبر FTP. هذه أيضًا هي نفس السبب الذي جعلني لا أزعج نفسي باستخدام esp32 بدلاً من esp12E.

لكنني أعتقد أنه يمكن حل بعض هذه المشكلات إذا كان بإمكاننا استخدام لوحات esp32 S2 التي تدعم السرعة الكاملة أثناء التنقل عبر USB. ربما يمكنني القيام بذلك من أجل XD آخر قابل للتوجيه.

موصى به: