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

עוזר אישי: 9 שלבים (עם תמונות)
עוזר אישי: 9 שלבים (עם תמונות)

וִידֵאוֹ: עוזר אישי: 9 שלבים (עם תמונות)

וִידֵאוֹ: עוזר אישי: 9 שלבים (עם תמונות)
וִידֵאוֹ: אינסטגרם: איך ליצור תמונה מחולקת ל 9 עם וידאו וקרוסלה 2024, יולי
Anonim
Image
Image
עוזר אישי
עוזר אישי

במדריך זה אני הולך להראות לך כיצד תוכל להשתמש בכוחו של ESP8266, יצירתיות בעיצוב ותכנות תוכנה, כדי ליצור משהו מגניב וחינוכי.

קראתי לו עוזר אישי, כי הוא בגודל כיס, מדבר איתך ויכול לתת לך מידע שימושי (וכמובן) כמה לא שימושי (אבל עדיין מגניב) על מזג אוויר, שעה ותאריך, הודעות gmail, לידה חיה ו שיעורי תמותה ועוד.

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

המרכיבים העיקריים של פרויקט זה הם מיקרו -בקר ומודול נגן מוסיקה. הבקר המיקרו שלנו (NodeMCU) משתמש בטכנולוגיית WiFi כדי להתחבר לנקודת גישה עם חיבור לאינטרנט; כך שהוא יכול לקבל את הנתונים הנדרשים שלו, לעבד אותו, ולומר לנגן המוסיקה (DFPlayer Mini) מתי, איזה קובץ MP3 יש להפעיל.

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

שלב 1: יש צורך בחלקים

דרושים חלקים
דרושים חלקים
  • NodeMCU ESP-12E (ממשק USB-to-Serial CP2102)
  • מיני DFPlayer
  • כפתור לחיצה רגעי SPST
  • רמקול של 8 אוהם 2 ואט
  • כרטיס מיקרו SD (תצטרך כמה קילובייט, כך שהקיבולת לא משנה)
  • ברגים ואומים

    • אגוזים M3 (x6)
    • ברגים M3 - 23 מ"מ (x4)
    • ברגים M3 - 15 מ"מ (x2)
  • דיודת אות 1N4148 (x1)
  • נגדים

    • הנגד 1K (x1)
    • הנגד 10K (x2)

חלקים אחרים:

  • PCB (ניתן להזמין אב טיפוס באינטרנט או לבקר בחנות מקומית)
  • יריעת אקריליק בחיתוך לייזר

    • גיליון שקוף בעובי 2 מ"מ
    • עובי 2.8 מ"מ שני גיליונות בצבעים שונים (כתום וירוק, אדום וירוק, זה תלוי בך והצבעים לא חשובים)
  • כל 5 וולט (לפחות) מטען מיקרו USB אמפר אחד (להפעלת המכשיר)

שלב 2: איך זה עובד

איך זה עובד
איך זה עובד
איך זה עובד
איך זה עובד

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

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

כאן יש לנו כמה שירותים ושירותי משנה או המודולים שלהם:

  • Gmail

    הודעות שלא נקראו

  • מזג אוויר

    • טמפרטורה נוכחית
    • מצב היום
    • היום נמוך / גבוה
    • מצב מחר
    • מחר נמוך / גבוה
    • תחזית משקעים
    • זריחה שקיעה
  • זְמַן

    • זמן נוכחי
    • דייט נוכחי
  • לידה ומוות

    • לידה עולמית
    • מוות עולמי

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

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

QUEUE (הודעות שלא נקראו | תחזית משקעים | השעה הנוכחית)

אתה לוחץ על כפתור הלחיצה, יש לבצע הודעות שלא נקראו.

QUEUE (הודעות שלא נקראו | תחזית משקעים | השעה הנוכחית)

לכן, המכשיר ישתמש בנתונים שאסף (כאן, מספר ההודעות שלא נקראו שלך שנלקח מהזנת API של דואר Google) כדי לדבר איתך. אבל איך? כאן, NodeMCU יגיד למודול ה- MP3, מתי הוא אמור לנגן איזה יצירת MP3 ליצור משפט משמעותי. כדי להשיג זאת, עיצבתי תורים, טיימרים ואלגוריתמים שונים. (אם אתה בחור c ++ ואוהב מיקרו -בקרים, אתה יכול ללמוד את הקוד בעצמך.)

אז, תשמעו, המכשיר מתחיל לדבר: יש לכם 4 הודעות שלא נקראו בתיבת הדואר הנכנס של gmail.

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

QUEUE (הודעות שלא נקראו | תחזית משקעים | השעה הנוכחית)

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

כיצד אנו מקבלים נתונים שונים עבור כל שירות?

  • Gmail

    הודעות שלא נקראו ל- Google יש ממשק API רב עוצמה שאפשר לגשת אליו לשירותים השונים שלו כולל Gmail. אך, מטעמי אבטחה, אתה זקוק לשיטות אימות ואישור שונות כמו OAuth. ESP8266 אינו כה חזק להפעלת אלגוריתמי חשיש מסובכים שונים. לכן, השתמשתי בטכנולוגיית כניסה ישנה ופשוטה יותר כדי לגשת לתיבת הדואר הנכנס של Gmail. זהו עדכון Atom של Google שיכול לשמש גם את קוראי RSS. אנו שולחים בקשת HTTP לגישה להזנת gmail והתגובה שלה היא בפורמט XML. לכן, אנו סופרים את מספר ההודעות שלא נקראו ומשתמשים בה בתוכנית שלנו

  • אנו משתמשים ב- Yahoo Weather API של Yahoo כדי לקבל מידע מזג אוויר שונה. לאחרונה, בדיוק כמו גוגל, Yahoo שינתה את ה- API של Weather, כך שתצטרכו להשתמש בתקני OAuth כדי לגשת לנתונים שלה. למרבה הצער, ESP8266 אינו יכול להתמודד עם מורכבותו, ולכן נשתמש בטריק כדי לפתור את הבעיה. במקום לגשת ישירות ל- Yahoo Weather API, נשלח את בקשתנו לקובץ מותאם אישית בשרת. הקובץ שלנו מקבל נתונים מ- Yahoo Weather ופשוט שולח אותם אלינו.

    • מחר מצב מחר תנאי יגיד לך אם המחר חם או קר יותר מהיום, או שם אם לא יהיה שינוי הגיוני בטמפרטורה. אנו משווים בין "היום נמוך / גבוה" לבין "מחר נמוך / גבוה" כדי להשיג זאת. אתה יכול לבדוק כיצד כתבתי את האלגוריתם הזה וכיצד הוא פועל בקובץ ספריית התוכניות.
    • תחזית משקעים אם תבדוק את תיעוד מזג האוויר של Yahoo, תוכל לראות את הטבלה של קודי מצב. כפי שנאמר, קודי מצב משמשים בתגובה לתיאור התנאים הנוכחיים. נשתמש בקודי מצב מחר ומשמעויותיהם כדי לברר אם תהיה משקעים והאם זה גשם או שלג.
  • TimeNTP מייצג פרוטוקול זמן רשת. זהו פרוטוקול רשת לסנכרון שעונים בין מערכות מחשב. מכיוון שיש לנו גישה לאינטרנט, נשתמש בלקוח NTP כדי לקבל זמן משרת NTP, ולסנכרן אותו על פני טיימר פנימי ESP8266 (כמו זה שאתה משתמש בו עם מילי (אם אתה בחור ארדואינו).
  • לידה ומוות אנו מחשבים את מספר הלידות וההרוגים מתחילת היום (הודות ללקוח NTP, פשוט לקבל מספר שניות מתחילת היום). השתמשתי בשיעורי לידה ומוות בעולם מהאקולוגיה.

שלב 3: התקן את התוכנה

התקן את התוכנה
התקן את התוכנה

אנו נשתמש ב- Arduino IDE להעלות את התוכנית שלנו ל- NodeMCU. אתה יכול להוריד ולהתקין את ה- Arduino IDE העדכני ביותר מהאתר הרשמי שלהם:

לפני שתתחיל, עליך להתקין את Arduino IDE עבור Nodemcu. אני לא הולך לספר לך את השלבים כאן, כי זה יכול להיות מחוץ לנושא. אבל אתה יכול לעקוב אחר השלבים וההסברים של ההדרכה המעולה הזו.

לתוכנית שלנו יש כמה תלות בספרייה. מהי תלות בתוכנה?

תלות היא מונח רחב של הנדסת תוכנה המשמשת להתייחסות כאשר תוכנה נשענת על תוכנה אחרת.

להלן רשימה של ספריות ארדואינו הדרושות למחשב כדי שתוכל להרכיב את תוכנית העוזר האישי:

  • ArduinoJson
  • DFRobot DFPlayer מיני
  • NTPClient

אתה יכול להוריד אותם אחד אחד מדף ה- Github שלהם, ולאחר מכן לחלץ את קבצי ה- zip לספריית הספרייה של Arduino. הנתיב שלה במערכת שלך הוא: C: / Users [שם המשתמש שלך] Documents / Arduino

כתבתי ספריה כדי לשמור על קוד נקי ולהימנע ממורכבות. הורד את הקובץ PersonalAssistant-Library.zip וחלץ אותו לספריית הספרייה של Arduino. בדיוק כמו מה שעשית עבור שלוש הספריות האלה בעבר.

קובץ YahooWeather.php

מכיוון ש- ESP8266 אינו חזק מספיק לביצוע אלגוריתמים של חשיש, איננו יכולים להשתמש בו ישירות כדי לשלוח בקשות HTTP ל- API של Yahoo Weather, בהתבסס על תקני OAuth. לכן, נשתמש בקובץ בין המכשיר שלנו לבין ממשק API של Yahoo Weather. אתה יכול להוריד קובץ YahooWeather.zip, לחלץ אותו ולשים את קובץ YahooWeather.php בשרת אינטרנט. לדוגמה, אם הדומיין שלך הוא example.com ואתה שם את הקובץ בספריית api, נקודת הסיום של ה- api שלך הופכת example.com/api/YahooWeather.php תשלח בקשות לנתוני מזג אוויר לנקודת קצה זו.

סקיצת התוכנית ו- FFS (מערכת קבצי Flash)

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

זוכרים שאמרתי שלמכשיר שלנו יש שני ממשקי משתמש? לצד כפתור הלחיצה הבודד הזה, ממשק המשתמש השני שלנו הוא יישום מבוסס אינטרנט פשוט. עם יישום זה, אתה יכול לתפעל את תור ההפעלה על ידי הפעלה / השבתה של כל מודול, שינוי הגדרות שירות או תצורת התקן, כגון הגדרת WiFi SSID וסיסמה. אנו נשמור את כל הקבצים הללו ב- NodeMCU Flash System System, ונריץ שרת אינטרנט קל לטיפול בקשות משתמשים מדפדפן האינטרנט שלהם.

עריכת קובץ Config

הורד את הקובץ PersonalAssistant-Sketch.zip וחלץ אותו איפשהו במחשב שלך. פתח את הקובץ config.json שנמצא:

PersonalAssistant/data/config.json

אתה יכול להשתמש בכל עורך טקסט או קוד כמו פנקס רשימות, פנקס רשימות ++, אטום וכו '. הקובץ הוא מבנה נתונים של json, כך שהוא זוג מפתחות / ערך קריא לאדם ותוכל לערוך אותו בקלות. תוכל לשנות שדות אלה:

  • Gmail

    • שם משתמש: שם המשתמש שלך ב- Gmail עם @gmail.com שלו
    • סיסמא: סיסמת Gmail שלך
  • מזג אוויר

    • woeid: המיקום שאליו ברצונך לקבל מידע על מזג האוויר. ה- WOEID (Where On Earth IDentifier) הוא מזהה הפניה שמשמש Yahoo למיקום. תוכל לבצע חיפוש במיקומי WOEID בקישור זה.
    • api: זהו נקודת הסיום של ה- API. הקישור לקובץ yahooweather.php שלך.
    • appId, consumerKey ו- consumerSecret: כדי לגשת ל- Yahoo Weather API, עליך ליצור פרויקט בדף המפתחים של Yahoo. זה ייתן לך מפתח וצריכה סודיים הדרושים לשימוש ב- API. כדי להתחיל, בקר בדף מפתח מזג האוויר של Yahoo וצור יישום.
  • אזור זמן

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

  • וויי - פיי

    • ssid: SSID של הרשת שלך.
    • סיסמא: סיסמת הרשת שלך. NodeMCU ישתמש ב- ssid ובסיסמה כדי להתחבר לרשת ה- wifi שלך.

העלאת נתוני סקיצה ותוכנית FFS

חבר את ה- NodeMCU למחשב שלך באמצעות כבל מיקרו USB ל- USB.

כעת פתח את הקובץ PersonalAssistant.ino שנמצא:

PersonalAssistant/PersonalAssistant.ino

ב- Arduino IDE, מתוך כלים> לוח, בחר NodeMCU 1.0 (מודול ESP-12E). מתוך כלים> יציאה, בחר את היציאה הנכונה. הוא מייצג את NodeMCU שלך.

כעת, בחר כלים> ESP8266 העלאת נתוני סקיצה, פעולה זו תעלה את התוכן של תיקיית הנתונים ל- ESP8266. חכה כמה רגעים עד שזה יסתיים. לאחר מכן, בחר סקיצה> העלה או פשוט הקש על כפתורי Ctrl + U במקלדת כדי להתחיל להעלות את התוכנית. המתן עד שתראה את ההודעה "ההעלאה הסתיימה".

שלב 4: הגדר את כרטיס ה- Micro SD

אנו משתמשים בכרטיס מיקרו SD לאחסון חתיכות קובצי MP3. זה NodeMCU שמחליט איזה קובץ יש לשחק באיזו שעה ו- DFPlayer Mini עוזר לו ליצור משפט משמעותי על ידי פענוח קבצי MP3.

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

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

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

השתמשתי באתר זה ליצירת קבצי MP3. הפלט הקולי שבחרתי היה אנגלי אמריקאי / סאלי.

הדבר היחיד שאתה צריך לעשות הוא להוריד קובץ microSD.zip ולאחר מכן לחלץ אותו לכרטיס ה- micro SD שלך. הוא מכיל את כל 78 קבצי ה- MP3 הנדרשים.

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

שלב 5: עיצוב התרשימים והגדרת ה- PCB

עיצוב הסכמות והגדרת הלוח המודרני
עיצוב הסכמות והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני
עיצוב התרשימים והגדרת הלוח המודרני

עיצבתי את הסכימה והלוח באמצעות Autodesk EAGLE. צירפתי קובצי SCH ו- BRD גם ב- PersonalAssistant-PCB.zip. אתה יכול לערוך ו / או לשלוח אותו ליצרן PCB מקומי או מקוון כדי להזמין ולקבל את הלוח שלך.

דבר נוסף שצריך להזכיר הוא ש- ESP8266 פועל ב -3.3 וולט ואילו DFPlayer Mini עובד ב -5 וולט. מכיוון ששני המודולים האלה צריכים לדבר ביניהם באמצעות ממשק סידורי, לא נוכל לחבר פלט 5V ישירות לקלט 3.3v מכיוון שהוא פוגע ב- ESP8266 שלך. אז נזדקק להמרה ברמה מ -5 וולט ל -3.3 וולט. אנו משתמשים בדיודת אות ונגד 10K כדי לגרום לזה לקרות.

שלב 6: הלחמה

הלחמה
הלחמה
הלחמה
הלחמה

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

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

אינך צריך להלחים את כל סיכות ה- NodeMCU ו- DFPlayer Mini על הלוח. די בהלחמת הסיכות עם שביל.

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

שלב 7: המארז

המארז
המארז
המארז
המארז
המארז
המארז

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

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

צבעים ועובי

אתה יכול להשתמש בשני צבעים משלימים כדי ליצור את הניגודיות החזקה ביותר, כמו:

  • אדום וירוק
  • כחול וכתום
  • צהוב וסגול
  • כחול וצהוב

השתמשתי באקריליק שקוף לשכבה העליונה, כך שתוכל לראות בתוך המכשיר.

עובי השכבה העליונה (שכבה 6) צריך להיות 2 מ"מ. עובי השכבות האחרות (שכבה 0 עד שכבה 5) צריך להיות 4 מ"מ. אם אתה רוצה להשתמש במגן אקרילי 2.8 מ"מ, כמו שעשיתי, אין שום בעיה. אבל אתה צריך לחתוך שתי סדרות משכבה 1 ושכבה 3 לצורך הקיזוז.

להרכבת המארז, התחל מהשכבה התחתונה (L0). שים עליו את הלוח, השתמש בברגים הקצרים יותר והדק אותו בעזרת האומים. כעת תוכל לחבר את ארבעת הברגים הארוכים יותר מתחתית השכבה -0. משהו כמו מגדל. לאחר מכן תוכל להמשיך ולהרכיב עליהן שכבות אחרות.

הערה: ניתן להשתמש במכונת כביסה אופציונלית בין השכבה התחתונה לבין הלוח.

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

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

שלב 8: גישה לממשק משתמש מבוסס אינטרנט

גישה לממשק משתמש מבוסס אינטרנט
גישה לממשק משתמש מבוסס אינטרנט

הפעל את המכשיר

אתה יכול להפעיל את המכשיר באמצעות כל מטען מיקרו USB של 5V. חבר את המיקרו USB ליציאת החשמל של המכשיר, כלומר כניסת המיקרו USB ב- NodeMCU שלך.

גש לממשק המשתמש

אתה זוכר שהעלינו כמה קבצים למערכת קבצי ה- Flash ESP8266? הגיע הזמן להשתמש בו. כל מה שאתה צריך הוא כתובת ה- IP שהוקצתה ל- ESP8266 ברשת. ישנן דרכים רבות ושונות למצוא את כתובת ה- IP. אפרט כמה מהם כאן:

  • בדף תצורת הנתב שלך, אי שם ברשימת החכירה של DHCP, תוכל לראות רשימת מכשירים עם כתובות ה- IP שלהם ברשת שלך.
  • ב- Microsoft Windows ו- macOS תוכל להריץ פקודות כמו arp -a במסוף.
  • ב- Android ו- iOS, אתה יכול להשתמש ביישומים כמו Fing. (אנדרואיד / iOS)
  • ב- Linux, אתה יכול להשתמש בכלים כמו Nmap.

לאחר מציאת כתובת IP, פתח אותה באמצעות דפדפן האינטרנט שלך. אתה יכול לתפעל את תור הפעולה על ידי הפעלה / השבתה של מודולים.

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

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

  1. הוספת שירותים ומודול נוספים. למשל ספירת מספרים, הטלת קובייה או הטלת מטבע.
  2. לאחר התחברות לרשת, המכשיר יכול לדבר את כתובת ה- IP. אתה יכול להוסיף אפשרות זו כדי לפשט את תהליך מציאת כתובת ה- IP.
  3. הוספת האפשרות לשנות הגדרות WiFi בלוח הבקרה מבוסס האינטרנט.
  4. הוספת האפשרות לשנות הגדרות שירות בלוח הבקרה מבוסס האינטרנט. (טופס ה- HTML שלהם מוכן. עליך לטפל בבקשות)
  5. הוספת תגובות קוליות יותר במצבים שונים של המכשיר.
  6. הוספת דף כניסה ללוח הבקרה מבוסס האינטרנט. תוכל לעשות זאת על ידי הוספה / השוואה של קובצי Cookie בשורות כותרות

ואשמח לדעת את הרעיונות שלך לגבי זה שניתן להנחות.:)

מוּמלָץ: