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

לוח תוצאות לקריקט באמצעות NodeMCU: 9 שלבים (עם תמונות)
לוח תוצאות לקריקט באמצעות NodeMCU: 9 שלבים (עם תמונות)

וִידֵאוֹ: לוח תוצאות לקריקט באמצעות NodeMCU: 9 שלבים (עם תמונות)

וִידֵאוֹ: לוח תוצאות לקריקט באמצעות NodeMCU: 9 שלבים (עם תמונות)
וִידֵאוֹ: ind vs ned world Cup highlights 2023 / ind vs ned world cup scorecard 2023 / scoreboard 2024, יולי
Anonim
Image
Image
התוכנית
התוכנית

שלום! לאחרונה התוודעתי לעולם ה- IoT (Internet of Things) כאשר נתקלתי במכשיר הפופולרי ביותר בתחום זה, ESP8266. הופתעתי ממספר האפשרויות הסופי שנפתחו על ידי המכשיר הזעיר והזול הזה. מכיוון שאני כרגע חדש בתחום, החלטתי להכין באמצעותו פרויקט וללמוד בדרך. אז התחלתי לחפש באינטרנט פרויקטים ורעיונות.

נתקלתי בפרויקט מדהים בשם Arduino Cricket Score Ticker מאת W. A. Smith. בפרויקט זה, Arduino יחד עם Ethernet Shield וכרטיס SD משמשים להצגת ציוני קריקט חיים של Cricbuzz. הפרויקט הזה גרם לי לחשוב.

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

לא חובב קריקט? אין בעיה! הקוד מכיל את מנתח ה- XML שבאמצעותו ניתן לקבל נתונים מכל קובץ XML. פשוט השתמש בפונקציות הנכונות כדי לקבל את הנתונים.

שלב 1: התוכנית

התוכנית
התוכנית

התוכנית היא להשתמש בלוח הפיתוח של NodeMCU (עם מודול ESP-12E) כדי לגשת לאינטרנט ולבקש את קוד ה- XML של Cricbuzz המכיל את כל המידע על ההתאמות המתמשכות/הקרובות. קוד זה נשמר בכרטיס ה- SD כקובץ.xml. לאחר מכן הקובץ נקרא מכרטיס ה- SD כדי לנתח את הנתונים הנדרשים מקוד ה- XML. אשתמש בקוד של W. A. Smith כדי לנתח את המידע. הודות למאמציו. בדוק את הפרויקט שלו אם אתה רוצה לעשות אותו באמצעות Arduino ו- Ethernet Shield.

הרעיון שלי הוא לעשות את זה קטן ככל האפשר, לבנות PCB מותאם אישית ומארז עבורו. לעת עתה, בואו נעשה אב טיפוס. אך ראשית, בואו להכיר את הרכיבים המשמשים בפרויקט זה.

בואו נתחיל

שלב 2: תצוגת OLED

תצוגת OLED
תצוגת OLED
תצוגת OLED
תצוגת OLED

החלטתי ללכת עם צג OLED בגלל גודלו הקטן והם זמינים במחיר זול. אני משתמש בתצוגה בגודל 0.96 שתספיק להצגת פרטי ההתאמה. ניתן להשתמש בכל גודל של הצג.

הצג בו אני משתמש הוא מונוכרום עם מנהל התקן SSD1306 וממשק I2C (2 חוטים). קיימות גם גרסאות SPI של התצוגה. הפעלת אותם היא משימה קלה. הורד את ספריות SSD1306 ו- GFX הדרושות להפעלת התצוגות. תודה ל- Adafruit על כתיבת הספריות הללו.

חיבורים פשוטים מאוד.

  • GND ל- GND
  • VCC עד 3.3V
  • SCL ל- D1
  • SDA עד D2.

שלב 3: כרטיס SD ומתאם

כרטיס SD ומתאם
כרטיס SD ומתאם

כרטיס SD מאחסן את קובץ ה- XML מ- Cricbuzz עד לניתוח כל המידע. לאחר הצגת המידע הדרוש, הקובץ נמחק. שימוש בכרטיס SD לאחסון קובץ XML של 10 - 20 קילו -בייט הוא מעט מוגזם אך הוא הופך את הניתוח הרבה יותר קל וקל להבנה.

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

כרטיס SD משתמש בממשק SPI לתקשורת. ניתן לחבר סיכת CS או שבב בחירה לכל סיכות GPIO. בחרתי ב- GPIO15 (D8). פשוט בצע את השינויים הדרושים בקוד אם השתמשת בסיכה שאינה GPIO15

  • SCK עד D5
  • MISO עד D6
  • MOSI עד D7
  • CS עד D8
  • VCC עד 3.3V
  • GND ל- GND

פרמט את כרטיס ה- SD שלך

הספרייה שבה נשתמש תומכת במערכות קבצים FAT16 או FAT32. הקפד לעצב את כרטיס ה- SD בפורמט הנכון.

שלב 4: הכנת לוח המקשים

הכנת לוח המקשים
הכנת לוח המקשים
הכנת לוח המקשים
הכנת לוח המקשים
הכנת לוח המקשים
הכנת לוח המקשים

אני רוצה לשמור על הפרויקט כמה שיותר קטן. אז החלטתי להכין לוח נפרד ללוח המקשים ולהעלות אותו מעל הלוח הראשי מאוחר יותר. זה יחסוך קצת מקום.

ניתן לרכוש מטריצת מפתחות מוכנה אך היו לי כפתורי לחיצה מונחים. כמו כן, רציתי להפוך אותו לקטן ככל האפשר. סידור אופייני לחיבור שורות ועמודות יצטרך סך של 6 סיכות GPIO עבור מטריצה 3 x 3. זה די הרבה בהתחשב בכך שגם תצוגת OLED וכרטיס SD יחוברו.

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

אם ברצונך לרכוש מטריצה בדוק את החיבורים הפנימיים המוצגים בתרשים. ניתן להשתמש במטריצה בכל מימד. הקפד להשתמש בנגד 2.2kΩ בין השורות ונגד 680Ω בין העמודות.

חיבור כפתורי לחיצה

סיכות 1 ו -2 מחוברות פנימית. אותו דבר עם סיכות 3 & 4. כאשר לוחצים על הכפתור, כל הסיכות מחוברות יחד. עיין בתמונה כדי לקבל מושג על חיבור המתגים על לוח לוח.

חיברתי כותרת גברית בת 3 פינים כך שניתן יהיה לחבר אותה ללוח הראשי מאוחר יותר.

שלב 5: חיבור הכל

לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד

אתה יכול לתכנן להציב את הרכיבים היכן שתרצה. אין הגבלות על זה. אני אראה לך איך עשיתי את זה כדי להפוך אותו לקומפקטי מכיוון שרציתי משהו שיתאים בכף היד. זה יכול להיות קצת מבולגן אז נסה את דרכי אם אתה מרגיש בנוח עם הלחמה. החלטתי לאכלס את שני צידי הלוח כפי שיהיה PCB דו-שכבתי. לוח פריצה של NodeMCU וכרטיס SD בצד אחד ו- OLED ולוח המקשים בצד השני.

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

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

מכסים את מפרקי ההלחמה מתחת ללוח המקשים למניעת קצר. הוסף פיסת קצף דקה (בעובי של כ -5 מ מ) בין לוח המקשים ללוח המרכזי להגנה נוספת וקשיחות. לבסוף, הלחם את לוח המקשים שיצרנו קודם. בעל מגהץ עם קצה מחודד בוודאי יקל על עבודתך. זו הייתה עבודה מבולגנת שהפכה אותה לקומפקטית ככל האפשר אך לבסוף הצליחה לעשות זאת.

בדוק שוב את כל החיבורים שלך אם ישנם מעגלים קצרים לפני הפעלת המכשיר

שלב 6: הגדרת לוח המקשים

הגדרת לוח המקשים
הגדרת לוח המקשים

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

כעת אנו מוכנים להגדיר את לוח המקשים. זכור את פעולת לוח המקשים. כל לחיצה על מקש תוציא מתח אחר המוזן לפין האנלוגי של NodeMCU. ל- ESP-12E ממיר אנלוגי לדיגיטלי (ADC) ברזולוציית 10 סיביות. 2 שהועלו לעוצמה 10 יתנו 1024. המשמעות היא שנקבל קריאה בין 0 ל- 1024 על כל מקש שנלחץ. הבה נראה אילו קריאות אנו מקבלים. אבל ראשית, עלינו לכתוב תוכנית קטנה כדי להשיג את הערכים האלה. פתח את Arduino IDE, העתק והדבק את הקוד הבא והעלה אותו ל- NodeMCU.

int keypadPin = A0;

הגדרת חלל () {Serial.begin (115200); } לולאת חלל () {int r = analogRead (keypadPin); Serial.println (r); }

  • פתח את הצג הטורי. הגדר את קצב השידור ל- 115200.
  • כעת לחץ על כל כפתור. אתה אמור לקבל קריאה מתמדת על הצג הסידורי. תנודות קטנות זה בסדר. אלה יטופלו בקוד הראשי. עשו את אותו הדבר עבור כל מפתח.
  • לכל מפתח צריכה להיות קריאה שונה.
  • רשום את כל הערכים. נזדקק להם אחר כך.

שלב 7: בואו לקודד

בואו לקודד
בואו לקודד
בואו לקודד
בואו לקודד
בואו לקודד
בואו לקודד

הורד את קובץ Scoreboard.ino המופיע למטה במחשב שלך ופתח אותו באמצעות Arduino IDE.

לפני שאתה מעלה

1) הגדר את זמן הרענון ללוח התוצאות. לדוגמה, 15 ליטר למשך 15 שניות.

2) הזן את ה- SSID והסיסמה של הנתב שברצונך להתחבר אליו.

3) בצע את השינויים הדרושים אם בחרת לחבר סיכת CS של כרטיס SD לסיכה שאינה GPIO15.

4) זכור את הערכים שציינו עבור כל המפתחות? עלינו להקצות מספר מפתח לכל ערך. סיפרתי לך גם על התנודות בקריאה. הסיבה לכך היא שמגעי המתג אינם מושלמים. בטווח הארוך, ערך זה יכול לסטות מהערך הנוכחי בשל הזדקנות המגעים המוסיפה התנגדות נוספת במעגל ובכך משנה את המתח. אנחנו יכולים לטפל בבעיה הזו בקוד.

נוסיף גבול עליון וגבול תחתון של הערך עם שולי 5. לדוגמה, קיבלתי קריאה של 617 למפתח 1.

  • תחסור ממנו 5. 617 - 5 = 612. זהו הגבול התחתון.
  • עכשיו הוסיפו 5. 617 + 5 = 622. זהו הגבול העליון.
  • גלול עד סוף הקוד. מלא את החלל המסופק לשני הערכים בקוד כפי שמוצג בתמונה.
  • עשו זאת על כל 9 ערכים.

if (r> 612 && r <622) {keyNumber = 1; }

מה זה אומר?

אם הקריאה (r) גדולה מ- 612 ו- פחות מ- 622, אז לחצו על מקש 1. כל ערך בין 612 ל- 622 יטופל כמפתח 1. הדבר פותר את בעיית הקריאה המשתנה.

שלב 8: בניית התיק

בניית התיק
בניית התיק
בניית התיק
בניית התיק
בניית התיק
בניית התיק
בניית התיק
בניית התיק

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

הכינו את החלקים להדבקה על ידי החלקת הקצוות בעזרת נייר זכוכית. השתמשתי ב- Fevi Kwik (סופר דבק) כדי לחבר את כל החלקים יחד. דבק סופר משאיר שאריות לבנות לאחר שהוא נרפא. לכן, החל אותו רק בין המפרקים. אתה צריך להיות מהיר ומדויק בעבודה עם דבק סופר מכיוון שהוא מתייצב במהירות. מלט אקרילי מתאים ביותר לעבודה זו.

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

נוצר רשת 3x3 בכריכה הקדמית לכפתורי הלחיצה. זה יקשה על כפתורי הלחיצה. כדי לפתור בעיה זו, אני חותך חתיכות מרובעות לכל מפתח כך שהלחצנים שלהם מורחבים כעת עד לפני השטח.

אחרי כל כך הרבה שיוף, חיתוך, תיקון והתאמה, זה סוף סוף נעשה!

שלב 9: תהנה

תעשה חיים!
תעשה חיים!

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

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

תוצג רשימה של כל ההתאמות יחד עם מספר ההתאמה.

בחר את מספר ההתאמה באמצעות לוח המקשים.

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

כדי לחזור לתפריט, החזק את הלחצן BACK (מקש 8) עד שיוצג הדף "אחזור ציונים …".

תוכניות עתידיות

  • עיצוב PCB מותאם אישית עם מודול ESP8266 12-E.
  • הוסף סוללה נטענת.
  • שפר את הקוד בעזרת תכונות חדשות.

מקווה שנהניתם מהבנייה. הכינו בעצמכם ותהנו! תמיד יש מקום לשיפור והרבה מה ללמוד. בואו עם רעיונות משלכם. אל תהסס להגיב על כל הצעה בנוגע לבנייה. תודה שנשארת עד הסוף.

מוּמלָץ: