תוכן עניינים:

קורא כרטיסי SD אלחוטי [ESP8266]: 10 שלבים (עם תמונות)
קורא כרטיסי SD אלחוטי [ESP8266]: 10 שלבים (עם תמונות)

וִידֵאוֹ: קורא כרטיסי SD אלחוטי [ESP8266]: 10 שלבים (עם תמונות)

וִידֵאוֹ: קורא כרטיסי SD אלחוטי [ESP8266]: 10 שלבים (עם תמונות)
וִידֵאוֹ: ביקורת : קורא כרטיסי SD וmicroSD ב USB3.0 2024, יולי
Anonim
Image
Image

ה- USB היה אמור להיות אוניברסלי, והמטרה העיקרית הייתה ליצור ממשק חם להחלפה, קל במיוחד למכשירים אחרים, אך עם השנים הרעיון השתולל. יש כל כך הרבה גרסאות שונות של יציאות ה- USB האלה, וזה כל כך מתסכל לפעמים והדרך שבה עבודות אלה סותרות את שמם [USB - אוטובוס סידורי אוניברסלי] מכיוון שכל מקלט USB צריך להיות תואם לכל התקן USB! אתה לא יכול לחבר את כרטיס ה- USB שלך או את המקלדת בתוך המטען ולצפות שהוא יעבוד.

אבל הרעיון נשמע טוב מדי! לכן ליזום את הרעיון הזה של "Universal-Port" התחלתי בפרויקט פשוט "קורא כרטיסים אלחוטי"

זה מילא את כל המשאלות שלי, כל מה שאני צריך לעשות הוא פשוט לחבר אותו לכל מקלט USB, זה לא משנה איזה!

ברגע שאתה מחבר אותו לחשמל, הוא יוצר נקודת גישה שבה נוכל להתחבר ואז להתחבר לנקודת הגישה ופשוט לפתוח כל יישום לקוח FTP בכל מכשיר תואם. בעזרת התקנה זו, אנו יכולים להעתיק ולשמור קבצים בכרטיס ה- SD באופן אלחוטי!

אספקה

אלה רשימת המוצרים שיכולים לעזור לך לבצע את הפרויקט בקלות

(קישור שותף)

  • Esp12E:
  • כרטיס SD:
  • מתאם מיקרו SD:
  • HeaderPins:
  • סיכות לכותרת זוויתית:
  • חוטים:
  • FTDI:
  • חוט מתכנת Arduino nano +:
  • USB זכר:
  • PCB:
  • אקדח הלחמה:
  • עופרת הלחמה:

שלב 1: כרטיס SD (Secure Digital)

כרטיס SD (דיגיטלי מאובטח)
כרטיס SD (דיגיטלי מאובטח)

SD מייצג Secure Digital, הוא דומה ל- Pendrive שלך אך עם טביעת רגל קטנה יותר ומחיר זול בהרבה.

כאשר עלינו להשתמש בזה עם כל אחד מבקרי המיקרו יש 2 אפשרויות, אחת היא SDIO ו- SPI. כמעט כל כרטיסי ה- SD חולקים מאפיינים סטנדרטיים רבים ובעלי אותם מפרט פיזי וחשמלי. ההבדלים בפועל בין SPI ל- SDIO הם בעיקר ברמת התוכנה. אתה יכול לקרוא עוד על זה בקישור הזה.

לעת עתה, נניח ש- SDIO מהיר יותר אך קשה יותר ליישום ו- SPI איטי יותר אך קל יותר ליישום. מכיוון שרוב המיקרו -בקרים תומכים ב- SPI כברירת מחדל, אנחנו פשוט נדבק על זה.

Pinout כרטיס 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. לאחר מכן השתמש בסיכות כותרת זוויות והלחם את הסיכות ישירות למגעי המתאם. לאחר סיום ההלחמה, בדוק את המגעים בין סיכות הכותרת בכדי לבדוק אם קיים קצר. הסר את המפריד השחור אחד אחד, כך שכאשר נחזיר אותו לאחור, הוא יישטף עם הלוח המודפס.

חותכים את הלוח המודרני באופן שיתאים בצורה מושלמת למתאם כרטיס ה- SD ויש לו שטח נוסף להוספת יציאת ה- USB הגברית.

אתה יכול גם לבצע את אותו תהליך עם כרטיס ה- SD במקום המתאם, אך זה מסוכן למדי אם אתה פוגע בו.

שלב 3: חיבור USB

חיבור USB
חיבור USB
חיבור USB
חיבור USB
חיבור USB
חיבור USB

עלינו להפעיל את כרטיס ה- SD, לשם כך נשתמש ביציאת קבלת ה- USB עצמה. אז נשתמש ביציאת USB גברית. בדרך כלל יש לזה 4 סיכות, כאשר 2 סיכות אמצעיות משמשות להעברת נתונים ושני סיכות קיצוניות משמשות לכוח ואדמה. מכיוון שאנחנו רק צריכים כוח, אני יחתוך סיכות נתונים ופשוט אשמור על ה- GND וה- VCC.

לאחר מכן הנחנו את יציאת ה- USB הזכרית מול כרטיס ה- SD שם יצרנו קצת מקום קודם, ולאחר מכן הלחנו אותו במקום. זה עדיין לא פתר שום בעיה בחשמל! מכיוון שכרטיס ה- SD דורש 3.3 וולט אך אספקת ה- USB היא 5V סטנדרטית אם רק תחבר את זה לחשמל, סביר להניח שתטגן את כרטיס ה- SD (אך לא ייגרם נזק למתאם ה- microSD).

כדי לפתור זאת נשתמש בווסת 3.3V ונחבר את הכניסה של אספקת ה- USB לווסת 3.3V כלומר, חבר את ה- GND של ה- USB לפין 1 של הרגולטור ונחבר את סיכה 3 של הרגולטור ל -5 V של הרגולטור. לבסוף, הלחם את הסיכה 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. אבל עם קצת חפירות נתקלתי בדיוויד פייבה שהעביר גרסת Arduino של שרת ה- FTP ל- 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] ל- VCC של מודול FDTI.

לאחר מכן העלה את הקוד מ- Github באמצעות Arduino IDE.

לאחר העלאת התוכנית תוכל להסיר את החוטים שהיו מחוברים לתכנת ה- esp12E.

שלב 8: סיום הפרויקט

מסיים את הפרויקט!
מסיים את הפרויקט!
מסיים את הפרויקט!
מסיים את הפרויקט!
מסיים את הפרויקט!
מסיים את הפרויקט!

פשוט הכנס כל כרטיס microSD [מקסימום 32 גיגה -בתים] בתוך המתאם וחבר את המכשיר כולו לכל התקן תואם USB, זה אמור להפעיל את העניינים! אבל יש כמה דברים שכדאי לקחת בחשבון, ודא שזרם הפלט של יציאת ה- USB גדול מ 1 אמפר, רק כדי להיות בצד בטוח יותר. מכיוון שמודול Esp12E צורך יותר זרם בעת העברת קבצים.

שלב 9: שימוש במכשיר

שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר

ברגע שהמכשיר מופעל, המכשיר יוצר נקודת גישה בשם SD Reader. התחבר לנקודת גישה זו באמצעות הסיסמה המופיעה בקוד. לאחר מכן תלוי באיזה מכשיר אתה משתמש כדי להתחבר ל- 12E הורד את תוכנת לקוח FTP המתאימה אם אתה משתמש במחשב הורד WinSCP או Filzella ואם אתה משתמש במכשיר אנדרואיד הורד AndFTP.

לאחר ביצוע ההתקנה, פתח את AndFTP ומלא את האישורים כדי להגדיר את לקוח ה- FTP. במקרה שלי השארתי את שם המשתמש והסיסמה כברירת מחדל "esp8266" בקוד. אז השתמש בזה למידע המשתמש ולשם המארח, השתמש ב- 192.168.12.7. לבסוף, התחבר לשרת FTP.

לאחר שתסיים, תוכל להוריד כל קבצים מכרטיס ה- SD וכן להעלות קבצים מהטלפון שלך לכרטיס ה- SD.

אתה יכול לראות את הסרטון כדי לדעת איך זה עובד!

שלב 10: מחשבות אחרונות

מחשבות אחרונות
מחשבות אחרונות
מחשבות אחרונות
מחשבות אחרונות

אבל לפני שקופצים למסקנה שמדובר במכשיר מאוד נוח, בואו ניקח צעד אחורה.

למרות שהוא עושה מה שאני רוצה, הוא איטי לחלוטין! עבור 4 קבצים בלבד (כל ~ 100Kb) זה לוקח בערך 30 שניות, ואם תנסה עם קובץ גדול יותר כמו 10MB ייקח בערך 3-4 דקות להשלים. ישנן דרכים לייעל את זה, ומהדף שאליו הפניתי הוא הצליח להשיג בערך 450 ק ג מהירות קריאה. (עם מהירות ההעברה של ספריית Esp32 ו- SD_MMC עשויה להיות בסביבות 1MB/שנייה)

הסיבה שעצרתי את הפרויקט כאן ולא ניסיתי לייעל אותו הייתה בגלל 2 סיבות. סיבה ראשונה, הלוואי באמת, יחד עם שרת ה- FTP עדיין אוכל להשתמש בקו הנתונים של USB להעברת נתונים, אך הוא אינו נתמך ב- esp8266 או esp32. והסיבה השנייה היא שלא הצלחתי להשיג מספיק מהירות להעביר את הקבצים באמצעות FTP. אלה גם אותן סיבות מדוע לא טרחתי להשתמש ב- esp32 במקום ב- esp12E.

אבל אני חושב שחלק מהבעיות האלה ניתנות לפתרון אם נוכל להשתמש בלוחות esp32 S2 התומכים במהירות מלאה ב- USB. אולי אוכל לעשות זאת לעוד XD להוראה.

מוּמלָץ: