תוכן עניינים:
- שלב 1: הפרויקטים
- שלב 2: התקן את לוח DFRobot FireBeetle ESP32 לתוך ה- Arduino IDE
- שלב 3: התקן ספריות משותפות לפרויקטים
- שלב 4: כיסוי מטריקס LED 24X8
- שלב 5: פרויקט 1: שעון NTP מטריקס LED פשוט עם תצוגת זמן צבאית או תצוגת AMPM
- שלב 6: פרויקט 2: תצוגת ניבוי ISS Pass,
- שלב 7: פרוייקט 3: סימן הודעות נע פשוט באמצעות MQTT
- שלב 11: דיוורים…
וִידֵאוֹ: 4 פרויקטים ב -1 באמצעות DFRobot FireBeetle ESP32 & כיסוי מטריקס LED: 11 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
חשבתי לעשות מדריך לכל אחד מהפרויקטים האלה - אבל בסופו של דבר החלטתי שבאמת ההבדל הגדול ביותר הוא התוכנה לכל פרויקט חשבתי שעדיף פשוט להכין אחד גדול להוראה!
החומרה זהה עבור כל פרויקט, ואנו משתמשים ב- Arduino IDE לתכנת מכשיר ESP32.
אז מהי החומרה: כל החומרה סופקה על ידי חברי ב- DFRobot, יש להם הדרכות טובות מאוד, וקל להתקנה של לוחות ליבה בשביל זה. יש גם מערכת תמיכה טובה ומשלוח די מהיר לארה ב.
חשיפה מלאה לוח הלוח ESP32 של Firebeetle, ומטריצת ה- LED ניתנו על ידי DF Robot, הפרויקטים המוצגים ובסרטונים הם שלי.
כל הפרויקטים האלה משתמשים ב- DFRobot FireBeetle ESP32 IOT MicroController
www.dfrobot.com/product-1590.html
ניתן למצוא את ויקי התמיכה - עם הוראות התקנת לוח ליבה:
www.dfrobot.com/wiki/index.php/FireBeetle_…
אנו זקוקים גם למטריקס LED 24X8 FireBeetle (כחול)
www.dfrobot.com/product-1595.html
לא אוהב נוריות BLUE - יש להם גם צבעים שונים.
ירוק -
אדום -
WHITE -
צהוב -
אתה צריך רק מטריצת LED אחת - הצבע הוא הבחירה שלך, כולם עובדים אותו דבר.
ניתן למצוא את ויקי התמיכה ב- LED Matrix כאן:
www.dfrobot.com/wiki/index.php/FireBeetle_…
כאן אנו מוצאים קישור לספריית Arduino.
github.com/Chocho2017/FireBeetleLEDMatrix
עוד על אלה קצת מאוחר יותר….
משהו אופציונלי, אבל אולי נוח להחזיק אותו, הוא מחזיק סוללות 3XAA מסוג MicroUSB.
www.dfrobot.com/product-1130.html
אז זו החומרה הדרושה - מהם ארבעת הפרויקטים -
שלב 1: הפרויקטים
פרויקט 1: האם שעון NTP פשוט של מטריקס LED עם תצוגת זמן צבאי או תצוגת שעון AMPM, השעון הזה יתחבר ל- NTP (שרת זמן) ותפוס את הזמן ויחיל ערכת כיבוי כך שתקבל זמן מקומי. הוא יציג את השעה על מטריקס ה- LED. - זהו שעון פשוט מאוד ופרויקט ראשון פשוט מאוד.
פרויקט 2: תצוגת חיזוי ISS Pass, פרויקט זה משתמש בליבה השנייה של המעבד. הוא יציג עד כמה ה- ISS קרוב (בקילומטרים), מתי לצפות למעבר ה- ISS הבא במיקום שלך (בזמן UTC), ולחלופין כמה אנשים נמצאים בחלל. מכיוון שהרבה מידע זה אינו משתנה לעתים קרובות, אנו משתמשים בליבה השנייה כדי לבדוק רק אם קיימים עדכונים של תחזיות המעבר, או כמה אנשים נמצאים בחלל כל 15 דקות. אנו יכולים למנוע יותר מדי שיחות API לשרת בדרך זו. הפרויקט הזה קצת יותר מסובך, אבל עדיין די קל לביצוע.
פרוייקט 3: שלט הודעות נע פשוט באמצעות MQTT, חזרתי על פרויקט שנעשה עבור לוח המיני ESP8266 D1, וזה מטריצת LED 8x8 - הרעיון הוא להתחבר לברוקר MQTT, לשלוח הודעה לנושא המכשיר הוא להקשיב - ולהציג את המסר הזה. זה די קל, ופשוט מאוד לביצוע ברגע שהכל מוגדר. ויש כמה צעדים להגדרת תוכנת לקוח MQTT במחשב שולחני. לאחר ההתקנה MQTT הוא פרוטוקול העברת הודעות חזק מאוד המשמש התקני IoT רבים לשליחת וקבלת הודעות.
פרויקט 4: תצוגת תחנת מזג אוויר - מבוסס על תחנת מזג האוויר מיני ESP8266 D1 המיוצרת על ידי Squix78 ו- ThingPulse. אנו אוספים את הנתונים שלנו מ- Wunderground ומציגים את התנאים הנוכחיים ואת הטמפרטורה במעלות פרנהייט. אנו משתמשים בליבה השנייה של ESP32, כדי לעדכן את הנתונים שלנו כל 10 דקות. זה גם פשוט להתקנה.
BOUNS MINI דוגמאות: הספרייה (והשרטוטים למעלה) משתמשים בגופן 8x4, הספרייה מכילה גם פונט 5x4, שהשתמשתי בו ברוב הדוגמאות של מיני BOUNS אלה. ישנן מספר בעיות שאני יכול לציין עם הגופן הקטן, אחת שגורמת לבעיות בעת שימוש ב- WIFI של המכשיר. זה משהו שאני רוצה לחקור יותר, אבל היה לי זמן. הבעיה הנוספת היא שהוא לא מתגלגל, רק הגופן הגדול יותר יכול לגלול. כך שאף אחת מהדוגמאות האלה לא משתמשת ב- WIFI - הן רק מעדכנות את התצוגה, ועוד על כך בהמשך.
בואו נתחיל…..
שלב 2: התקן את לוח DFRobot FireBeetle ESP32 לתוך ה- Arduino IDE
אז אני הולך להפנות אותך ל- DF Robot Wiki בנושא התקנת ליבת הלוח עבור ה- Arduino IDE.
זה די קל לעשות עם ה- IDE המודרני (1.8.x או טוב יותר).
www.dfrobot.com/wiki/index.php/FireBeetle_…
גיליתי שספריית ה- WiFi המובנית ב- IDE של Arduino גורמת לבעיות (PS כל ספריית WiFi אחרת שאולי מותקנת בספריית הספרייה שלך עלולה לגרום לבעיות או לא). הדרך היחידה (או לפחות הדרך הקלה ביותר) שמצאתי לפתור את הבעיה היא הסרת ספריית ה- WiFi מספריית IDE. למרבה הצער, אין דרך טובה לומר לך היכן היא מותקנת - זה תלוי כיצד מותקן ה- IDE ובאיזו מערכת הפעלה אתה משתמש.
מה שעשיתי הוא למצוא את ספריית ה- WiFi שגורמת לבעיות, פשוט העבר את ספריית ה- WiFi לספריית שולחן העבודה שלך … והפעל מחדש את IDE. כך תוכל לשמור את הספרייה למקרה שתזדקק לה ללוחות ה- WIFI של Arduino.
90% מהבעיות שראיתי היו קשורות לבעיה לעיל. אם אתה מקבל הרבה שגיאות הידור הקשורות לשימוש ב- WiFi מספריית Arduino IDE או מספריית ספריית Arduino, זו הבעיה שיש לך.
הבעיה השנייה שלי היא לפעמים העלאת הסקיצה לא מצליחה להעלות - במקרה כזה אני פשוט צריך ללחוץ שוב על כפתור ההעלאה וזה עובד.
ולבסוף, אם הקונסולה הסדרתית פתוחה ולאחר מכן סוגרת אותה - FireBeetle קופא.
אני יודע ש- DF Robot פועל באופן פעיל על ליבת הלוח, ובדיוק בזמן הקצר שיש לי את הלוח הם הוציאו ליבה חדשה. לרוע המזל זה לא פתר את בעיית ה- WiFi שהיא הבעיה הגדולה ביותר שלי.
* לאספרסיף יש מנהל ליבה 'כללי' שניתן להתקין, הליבה אכן כוללת את לוח ה- ESP32 של FireBeetle, אך הייתה לי בעיה כיצד המספרים שלו מסופרים. הדבר המעניין כאן הוא ספריית ה- WiFi שעובדת עם ספריית ה- WiFi המובנית - אז אני יודע שיש פתרון לבעיה הזו מעבר לפינה.
אם תרצה לנסות את ליבות ה- Espressif תוכל לקבל מידע נוסף כאן:
github.com/espressif/arduino-esp32
אני אישית אוהב איך הליבה של DF-Robot עובדת, אפילו עם מעט הבעיות שיש לי.
** הערה: אני משתמש ב- LinuxMint 18 המבוסס על אובונטו 16.04, אני חושב שלא ניסיתי זאת במכשיר אחר, אך אני מאמין שהבעיה קיימת עבור כל מערכות ההפעלה בהתבסס על כמה חיפושים באינטרנט שעשיתי. **
שלב 3: התקן ספריות משותפות לפרויקטים
כל הפרויקטים האלה משתמשים בכמה ספריות נפוצות, כך שקל יותר לעשות את השלב הזה עכשיו.
בהתאם לספרייה אתה עשוי למצוא אותו במנהל הספרייה - שהיא ללא ספק הדרך הקלה ביותר להתקין ספרייה.
דרך נפוצה נוספת היא להתקין באמצעות קובץ zip, שעובד באותה מידה. אבל באופן כללי אני משתמש בשיטת ההתקנה הידנית. יש הדרכה טובה לשלוש השיטות באתר Arduino.
www.arduino.cc/en/guide/libraries
עבור ספריות אלה, הייתי ממליץ על השיטה הידנית - מכיוון שישנן מספר ספריות שונות בעלות אותו שם, באמצעות מנהל הספרייה ייתכן שתתגבר על הספרייה הלא נכונה.
כל הפרויקטים האלה משתמשים במנהל WiFi כדי להקל על החיבור ל- wifi שלך - החלטתי לעשות זאת, כך שאם אתה צריך להעביר את הפרויקט שלך, אינך צריך לתכנת את הלוח מחדש. זה משהו שאני משתמש בו ללוחות ESP8266, וזה עובד טוב - זה לא מושלם. מזל לשימוש הספרייה הועברה לשימוש ב- ESP32 על ידי משתמש github בשם bbx10. (מנהל זה צריך לעבוד גם עם לוחות ESP8266)
עלינו להתקין שלוש ספריות גם בשביל זה.
WiFiManager -
WebServer -
ולבסוף DNSServer -
כמו כן המשותף לכל המערכונים הוא ספריית DF Robot DFRobot_HT1632C עבור מטריצת LED.
www.dfrobot.com/wiki/index.php/FireBeetle_…
ניתן למצוא את הספרייה כאן (שוב אני ממליץ על שיטת ההתקנה הידנית)
github.com/Chocho2017/FireBeetleLEDMatrix
הערה מיוחדת: במאגר github שלי - יש לי כמה ספריות DFRobot_HT1632C שהשתנו מעט
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
השינוי מיועד לגופן קטן יותר, ומשמש רק בחלק מדוגמאות הבונוס. אתה יכול להשתמש בספרייה שהשתנתה והיא לא אמורה לגרום לבעיות. יש גם ספרייה מעט שונה (מצורפת לחלק מהרישומים ככרטיסיות) שיכולה לעשות תמונות מפות סיביות.
אם תבחר להשתמש בגרסה שהשתנתה מעט, עליך לשנות את שם ספריית "הספרייה שהשתנתה" ל- FireBeetleLEDMatrix ולהעביר את התיקייה לספריית הספרייה של Arduino. אינך צריך להשתמש בגרסה זו לפרויקטים אלה, היא נחוצה אם ברצונך לנסות כמה מהגופנים הקטנים יותר מדוגמאות הבונוס.
אלה הספריות הנפוצות - אנו נתקין כמה ספריות ספציפיות לכל פרויקט.
בואו נעבור ל- LED Matrix….
שלב 4: כיסוי מטריקס LED 24X8
שכן אנו הולכים לעקוב יחד עם מדריך הרובוט של DF עבור מטריצת ה- LED
www.dfrobot.com/wiki/index.php/FireBeetle_…
מבוא: תצוגת LED מטריקס זו בגודל 24 × 8 מיועדת במיוחד לסדרות FireBeetle. הוא תומך במצב צריכת חשמל נמוכה ותצוגת גלילה. עם שבב נהג LED בעל ביצועים גבוהים HT1632C, לכל לד יש רישום עצמאי, מה שמקל על הנהיגה בנפרד. הוא משלב שעון RC 256KHz, 5uA בלבד במצב צריכת חשמל נמוכה, תומך בהתאמת בהירות PWM בקנה מידה 16. מוצר זה עובד גם עם בקר הבקרה השני של Arduino כמו Arduino UNO.
מִפרָט:
- מתח הפעלה: 3.3 ~ 5VLED
- צבע: צבע יחיד (לבן/כחול/צהוב/אדום/ירוק)
- שבב כונן: HT1632C
- זרם עבודה: 6 ~ 100mA
- צריכת חשמל נמוכה: 5uARC
- שעון: 256KHz
- שבב בחירה (CS): ניתן לבחור D2, D3, D4, D5
- תמיכה בתצוגת גלילה
מספרים ברירת מחדל של PIN:
- DATAD 6
- WRD7 (בדרך כלל לא בשימוש)
- ניתן לבחור CSD2, D3, D4, D5 (ברירת מחדל D2)
- RDD8
- VCC 5VUSB; 3.7V סוללת ליפו
(כל הפרויקטים האלה משתמשים ב- D2 לסיכה הנבחרת, ניתן לשנות זאת בקלות לפי הצורך.)
בחלק האחורי של מטריקס ה- LED תראה 4 מתגים קטנים, הקפד לבחור רק אחד מסיכות ה- CS. המתגים הקטנים האלה הם הדרך שבה אתה בוחר את פין ה- CS שלך, וברירת המחדל היא D2.
ל- DF Robot WIKI יש קוד לדוגמה, קוד זה נמצא גם בדוגמאות של הספרייה. (אני מאמין)
הערה נוספת: השתמש במספרי Dx לסיכות שלך - אחרת מספרי הסיכה יהיו מספרי/שמות סיכות IO
וזה עלול לגרום לך לבעיות מסוימות.
קביעת נקודה:
X הוא 0 עד 23 (או אם אתה חושב על זה כגיליון אלקטרוני אלה עמודות).
Y הוא 0 עד 7 (או אם אתה חושב על זה כגיליון אלקטרוני אלה שורות).
הספרייה מספקת פונקציית נקודת הגדרה.
display.setPoint (x, y) פעולה זו תקבע את הסמן למיקום זה, שם תוכל להדפיס הודעה כעת.
display.print ("שלום עולם", 40); // זה יגרום לתצוגה להציג את "שלום העולם" החל מנקודת x, y וגלילה מהמסך.
יש גם setPixel (x, y) ו- clrPixel (x, y) - setPixel יפעיל נורית אחת במיקום x, y ו- clrPixel יכבה נורית במיקום x, y.
יש עוד כמה דברים שספרייה זו יכולה לעשות - ורובם כלולים בדוגמאות.
(אני ממליץ להריץ ולשנות את הדוגמאות כדי לראות מה הוא יכול לעשות).
* דבר אחד שנראה חסר הוא ציור מפות סיביות - הספרייה יכולה למעשה לעשות זאת אך משום מה מדובר בפונקציה פרטית של הספרייה. עיין בכמה דוגמאות הבונוס שלי לגרסה מעט שונה של הספרייה
** דבר נוסף שהוא כולל ערכת גופנים בגודל 5x4, וזה נחמד שיש לו גופן קטן יותר - הוא העיר כמה פעמים בספרייה. לא ביקשתי להגיב עליו והפעלתי אותו, אבל שמתי לב למספר בעיות איתו - הגדול ביותר שהוא לא מגולל. ושמתי לב שנדמה שהוא גורם לבעיות ב- wifi או אולי בספרייה אחרת בה רציתי להשתמש.
אחת הספריות שהשתנה שאני כולל עם זאת עושה שימוש בגופן 5x4.
בואו נעבור לפרויקטים ….
שלב 5: פרויקט 1: שעון NTP מטריקס LED פשוט עם תצוגת זמן צבאית או תצוגת AMPM
פרויקט 1: האם שעון NTP פשוט של מטריקס LED עם תצוגת זמן צבאי או תצוגת שעון AMPM, השעון הזה יתחבר ל- NTP (שרת זמן) ותפוס את הזמן ויחיל ערכת כיבוי כך שתקבל זמן מקומי. הוא יציג את השעה על מטריקס ה- LED. - זהו שעון פשוט מאוד ופרויקט ראשון פשוט מאוד.
לפני שנתחיל בפרויקט פשוט זה, אולי יהיה רעיון טוב לדעת מהו NTP -
NTP הוא פרוטוקול אינטרנט המשמש לסנכרון שעונים של מחשבים להתייחסות מסוימת. זה פרוטוקול סטנדרטי. NTP מייצג פרוטוקול זמן רשת.
NTP משתמש ב- UTC כזמן התייחסות (UTC הוא תיאום זמן אוניברסלי) הוא התפתח מ- GMT (זמן ממוצע של גריניץ '), ובחוגים מסוימים הוא נקרא זמן זולו (צבאי). UTC מבוסס על תהודה קוונטית של אטום צזיום.
NTP עמיד בפני תקלות, וניתן להרחבה ביותר, הפרוטוקול מדויק ביותר, תוך שימוש ברזולוציה של פחות מננו-שנייה.
*
שעון UTC אינו מועיל לרוב האנשים, לכן עלינו להתאים את השעון לזמן המקומי. למרבה המזל אנחנו יכולים לעשות את זה די קל. אז בואו נתחיל עם שעון NTP פשוט זה ….
ראשית עלינו להתקין ספרייה שהופכת את הדיבור עם שרתי NTP לקל.
github.com/arduino-libraries/NTPClient (ספריה זו כנראה נמצאת במנהל הספרייה)
האם דילגת על שלב 3 - ולא בטוח כיצד להתקין ספריות (?) מוטב שתחזור ותקרא את שלב 3:-)
עליך להיכנס לאתר זה ולהכניס את העיר הקרובה אליך הנמצאת באזור הזמן שלך.
www.epochconverter.com/timezones
כאשר תלחץ על enter, תראה "תוצאות המרה", ובתוצאות תקבל את הקיזוז שלך (הפרש ל- GMT/UTC) תוך שניות (בשבילי זה -14400)
בסקיצה dfrobot_firebeetle_led_matrix_ntp_clock בשורה 66 תראה:
#define TIMEOFFSET -14400 // מצא את אזור הזמן שלך מוגדר כאן https://www.epochconverter.com/timezones OFF הגדר בשניות#הגדר AMPM 1 // 1 = AM PM time, 0 = MILITARY/24 HR Time
החלף -14400 בקיזוז שלך. השורה הבאה שתראה AMPM 1 - זה יגרום לשעון להציג את השעה ב- AM/PM - אם אתה מעדיף לראות אותו תוך 24 שעות תהפוך את השעון לאפס.
לאחר מכן העלה את הסקיצה ללוח שלך, התחבר לנקודת הגישה (מנהל ה- wifi) והזן את הפרטים של ה- wifi שלך. אם כבר עשית זאת, אתה אמור לראות גלילה "מחוברת" על פני המסך וכמה שניות לאחר מכן אתה אמור לראות את השעה.
זהו זה לפרויקט הזה - פשוט וקל לשימוש ….
(שיפורים אפשריים: הצג את החודש, היום והשנה, הגדר זמזם ואזעקות - בדרך כלל שלוט במה שאתה רואה באמצעות דף אינטרנט. רעיון זה יידרש לשכתוב גדול של המערכון הפשוט הנוכחי)
מוכן לפרויקט פשוט נוסף - הצג היכן ISS נמצא - תחזיות מעבר, וכמה אנשים נמצאים בחלל! (PS סקיצה זו אכן משתמשת בדף אינטרנט כדי לשלוט במה שמוצג)…..
שלב 6: פרויקט 2: תצוגת ניבוי ISS Pass,
פרויקט 2: תצוגת חיזוי ISS Pass, פרויקט זה משתמש בליבה השנייה של המעבד. הוא יציג עד כמה ה- ISS קרוב (בקילומטרים), מתי לצפות למעבר ה- ISS הבא במיקום שלך (בזמן UTC), ולחלופין כמה אנשים נמצאים בחלל. מכיוון שהרבה מידע זה אינו משתנה לעתים קרובות, אנו משתמשים בליבה השנייה כדי לבדוק רק אם קיימים עדכונים של תחזיות המעבר, או כמה אנשים נמצאים בחלל כל 15 דקות. אנו יכולים למנוע יותר מדי שיחות API לשרת בדרך זו. הפרויקט הזה קצת יותר מסובך, אבל עדיין די קל לביצוע.
פרויקט זה מבוסס על אחד הפרויקטים הקודמים שלי שניתן למצוא כאן:
(מערכת התראות ISS פשוטה) בכך השתמשתי ב- ESP8266 עם מסך OLED על הסיפון (D-Duino). על פי רוב הפרויקט הזה משתמש רק במערכת תצוגה אחרת, הרחבתי עליה כך שתוכל לשנות את מה שאתה רוצה לראות תוך כדי תנועה באמצעות דף אינטרנט. אז בואו נתחיל….
רוב הקרדיט לשימוש קל מגיע ל- https://open-notify.org שיש לו ממשק API פשוט וקל לשימוש. לממשק ה- open-notify יש שלושה דברים שניתן להציג, מיקום ה- ISS בקו הרוחב ובאורך, לעבור תחזיות המבוססות על קו רוחב ואורך נתון. ולבסוף כמה אנשים (ושמותיהם) נמצאים בחלל.
נצטרך להתקין ספרייה נוספת - ספריית ArduinoJson.
github.com/bblanchon/ArduinoJson
אנחנו גם צריכים TimeLib.h אבל אני לא בטוח מאיפה השגתי את זה או אם זה כלול ב- IDE (מצטער)….
אז למה לחזות היכן תהיה ה- ISS - ה- ISS מכיל ציוד רדיו חובבני שונים, וכאשר הוא "מעל הראש" יכול רדיו רנקה ליצור קשר עם ה- ISS באמצעות כמה מכשירי רדיו פשוטים (וזולים). אפילו עשיתי את זה בזמן נייד (נוסע במכונית). אתה באמת לא צריך הרבה כדי לגרום לזה לעבוד. הדבר היחיד שאתה צריך הוא לדעת היכן הוא נמצא. והכוונת האנטנה לכיוון הכללי שלה עוזרת.
שורה 57, 58, 59 הם כמה משתני תצוגה - אם הם מוגדרים ל -1 תראה תצוגה, אם הם יוגדרו ל- 0 (אפס) לא תראה תצוגה. (ניתן להגדיר את המשתנים הללו בסקיצה, או לעדכן אותם מדף אינטרנט שהציפורנית יוצרת - עוד על כך בהמשך).
int locDis = 1; // מיקום התצוגה של ISSint pasDis = 0; // תצוגות Pass Pass int pplDis = 1; // הצג אנשים בחלל
כך locDis יציג את המיקום של ה- ISS בקו הרוחב והאורך - הוא גם מציג כמה קילומטרים משם.
pasDis יקבל את תחזיות המעבר מ- open-notify.org ויציג אותן.
ולבסוף, pplDis יציג את השמות וכמה אנשים נמצאים בחלל - זה יכול להתארך מאוד, לא
גם משתנים לעתים קרובות. (אתה יכול לשנות או להשאיר אותם, זה לגמרי אופציונלי)
עלינו גם לדעת את קו הרוחב והאורך שלנו ולהכניס אותו למערכון.
זה לא חייב להיות קו רוחב/אורך מדויק, זה יכול להיות מרכז העיר שלך, או קצת.טביעת הרגל של ה- ISS רחבה כשהיא מעל הראש, ואפשר לכסות מאות (או אלפי) קילומטרים, כך שלרדת מעט במעגל/אורך לא תהיה פגיעה בהסכם (רוב הזמן), תקשורת מעל 500 מייל היא די נפוצה.
אם אינך יודע את קו הרוחב והאורך שלך אתר זה יכול לעזור לך.
www.latlong.net ליד קו 84 של המערכון תראה משהו כזה:
// מצא את קו הרוחב והאורך שלך כאן // https://www.latlong.net/ float mylat = 39.360095; צף מילון = -84.58558;
זה צריך להיות כל מה שצריך לשנות. העלה את הסקיצה, וחבר את ה- Firebeetle לאינטרנט - וכדאי שתראה את המיקום של ה- ISS הנתון באורך/אורך וכמה קילומטרים משם (זכור שזה יהיה מרחק משוער. ה- ISS נע מהר מאוד, ו עד לסיום התצוגה ISS התרחק קילומטרים רבים מהמקום שבו הוא היה). אתה צריך גם לראות את האנשים בחלל. (אם לא שינית את המשתנה למעלה).
אנו משתמשים בליבה השנייה של ה- ESP32 להפעלת אתר אינטרנט, השימוש באתר נותן לנו שליטה על מה שמוצג במטריצת ה- LED. זה צריך להיות די אינטואיטיבי איך זה עובד, חלק אחד מראה מה מופעל לתצוגה, בחלק אחר יש כפתורי "כן" "לא" - לחיצה על "כן" פירושה שאתה רוצה לראות את זה, "לא" אומר דון ' לא להראות את זה. אתה צריך גם לראות שהקטע העליון משתנה בהתאם לכפתורים.
הדבר היחיד שלא כל כך חתוך ויבש כאן הוא איך למצוא את כתובת ה- IP של ה- Firebeetle - לצערי לא הצלחתי למצוא דרך טובה למצוא אותו - אז פשוט השתמשתי במסוף הטורי של ה- IDE להצגה זה (9600 באוד).
פתח את המסוף ותראה את כתובת ה- IP. (פתח אותו לפני שתקבל את ההודעה המחוברת) - הבחירה השנייה שלי הייתה להציג אותו ב- LED Matrix פעם אחת מיד עם ההפעלה - החלטתי נגד זה כי יתכן שאתה לא מסתכל על הזמן ותפספס אותו. שקלתי לשלוח הודעת SMS, או משהו, אבל בסופו של דבר אני פשוט שומר את זה פשוט. (ניסיתי גם להקצות IP/שער סטטי/וכו 'סטטי, לא הצלחתי לגרום לו לעבוד כמו שצריך עם מנהל ה- wifi - הקוד עדיין בסקיצה, אז אם מישהו יבין את זה תודיע לי)
הסקיצה גם מקדמת את בניית FreeRTOS לתוך ליבת ESP32 - יש לנו משימה שנמשכת כל 15 דקות בערך, מה שזה עושה הוא לעדכן את תחזיות המעבר, כמו גם את האנשים בחלל. כמו שאמרתי קודם אנשים בחלל לא משתנים כל כך, כך שאולי אפשר להעביר את זה למשימה נוספת ואולי לרוץ אחת ל -12 שעות (או 6 שעות) - אבל זה עובד, וזה שומר על דברים פשוטים.
למי שלא יודע FreeRTOS היא דרך לתת לבקר מיקרו ליבה יחיד להריץ משימות
בדרך כלל עליך לכלול כמה ספריות ודברים אחרים כדי לגרום לזה לפעול - אולם הוא מובנה בתוך הליבה של ה- ESP32 - מה שהופך את ה- ESP32 למכשיר בעל עוצמה רבה. למידע נוסף אודות FreeRTOS
freertos.org/
שיפורים: ישנם מספר דברים שניתן לשפר עבור הפרויקט הזה, וכמעט כל יום אני חושב על משהו שאפשר לעשות אותו קצת אחרת, לשנות או להוסיף.
ובספריית דוגמאות נוספות של המאגר אתה יכול לראות כמה מהדברים הקודמים/השונים שחשבתי עליהם- חלקם לא עבדו, חלקם השתנו וחלקם נכללו במערכון הנוכחי.
* בשלב מסוים ניסיתי להוסיף neopixel לתצוגה כדי שזה יהיה קצת יותר כמו הפרויקט הקודם שלי - אף פעם לא הצלחתי שזה יעבוד כמו שצריך (גיליתי שזו בעיה של חשמל שלא חשבתי עליה) עובדים על דרך לשפר את הרעיון הזה *
בעת כתיבת השלב הזה, חשבתי שאולי אוכל להוסיף דרך לעדכן את קו הרוחב והאורך שלך לאתר - כך שלעולם לא יהיה צורך לשנות את המערכון - גם אני אחשוב על זה קצת יותר.
דרך משופרת להשיג את כתובת ה- IP היא דבר אחר שהייתי רוצה לעשות (עדיין חושב גם על זה)
בואו נעבור לפרויקט הבא שלנו ….
שלב 7: פרוייקט 3: סימן הודעות נע פשוט באמצעות MQTT
"טוען =" עצלן "" טוען = "עצלן"
אז מסתבר שהספרייה יכולה להציג תמונות - משום מה נראה שהפונקציה הזו היא "פרטית" - ובכן, עבור הסקיצות הבאות שיניתי את הספרייה שוב והפכתי את drawImage לפונקציה ציבורית.
הפעם, שמתי את הספרייה שהשתנתה בספריית הסקיצות, כך שלא תצטרך להתקין מחדש את הספרייה, הסקיצה מסתכלת על עצמה תחילה, ואז היא תראה בספריית הספרייה, אז טוב לנו!
*** אני מתכנן להגיש את השינוי הזה ל- DFRobot, מכיוון שהוא באמת מגניב מאוד, וזה די מסודר להיות מסוגל לעשות סקיצות מסוג זה ***
סקיצה של LED Matrix Images, כאן קודם כל ניסיתי להבין מה הספרייה רוצה ומה יעבוד ומה לא יעבוד - ברמות שונות של הצלחה. גיליתי שהתמונות 8x8 עובדות הכי טוב, אבל אתה יכול לגרום לאחרים לעבוד גם כן. מצאתי גם כמה עורכי מטריקס מובילים מקוונים, חלקם עובדים טוב יותר מאחרים.
xantorohara.github.io/led-matrix-editor/-נראה תקין, עושה תמונות 8x8 ואתה רוצה אותן כמערכי בתים.
www.riyas.org/2013/12/online-led-matrix-fo… זה עובד היטב, ויש לו את היכולת ליצור יותר מ 8x8 תצוגות, נראה שהתצוגה מופעלת בצד שלה עם הצג הזה למרות זאת. נראה שמערכי בתים עובדים כאן הכי טוב. השתמשתי בו כדי ליצור את "פולשי החלל" הנראים בסרטון למעלה.
אז איך זה עובד, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
משתנה מערך בתים, רוחב התמונה (8), גובה התמונה (8), מיקום ההתחלה במסך x (0), y (0) בדרך כלל ומספר קיזוז, שאני לא בטוח במאה אחוז מה זה עושה, כך שרוב הזמן השארתי אותו באפס.
בסקיצה LED Matrix Images - ישנם 8 מערכי בתים שונים - גם שלוש שיטות שונות.
- זיקוקים הם המערכים הראשונים, האמת שאני לא בטוח איך זה עובד - אבל זה עובד.
לאחר מכן יש פה - זה לא באמת עובד כמו שצריך, הפה מניח את הדרך הלא נכונה לאחד, והניסיון לבצע שינויים רק מחמיר את המצב. (ללמוד מה עובד ומה לא זה חצי מהכיף)
ואחריו marioImg הראשון - זה גדול מדי לתצוגה, ואני חושב שכאן נכנסת מערכת הסט החוצה - השתמשתי בו כאן, ותוכל לראות את החלק הקדמי של mario, אם תשנה את הקיזוז ל- 1 אתה ' אראה את החלק האחורי שלו. (אתה אני לא ממש יכול להגיד לך למה או מה הקיזוז עושה. נראה כי זה משנה את התמונה, אבל למה 2 מסיט את זה כדי שתוכל לראות את החלק הקדמי שלו ולמה 1 זז לכיוון השני אני לא יכול להגיד לך)
IMAGES - מערך בתים הוא סימן @ שעשיתי - הוא נראה כמו מה שהכנתי בעזרת הכלי בכתובת
מערך הבייט של pic1 נראה גם כמו מה שניסיתי לעשות, רק שהוא קטן יותר ממה שניסיתי - מה זה אני לא יכול להגיד, אבל אני יכול לומר באופן כללי שהוא נראה כמו מה שעשיתי בעורך.
mario2Img - זוהי הגרסה שלי למריו הגדול יותר שנעשה בגודל מסך 8x8 - ואתה שם אחד או שניים פיקסלים לא במקום (אשמתי, לא התצוגות) הוא נראה כמו מריו קטן (מעין).
invader1 ו- invader2 - שניהם הרעיון שלי לפולש חלל. הם יצאו די טובים, ועל ידי הצבת התמונות זו על זו, אני מצליח ליצור את האפקט של כפות רגליים נעות.
ישנם שני סקיצות זיקוקים בספרייה, כל אחת מעט שונה, ושווה לנסות.
באחד הזיקוקים זזים על פני המסך, אז קצת יותר/אנימציה שונה … לשני מוצגים שני זיקוקים בו זמנית
יש גם שלוש סקיצות של "פולשים", כל אחת קצת שונה, אחת מהן הפולשת זזה על פני המסך, ותוכל להסתכל איך עשיתי את זה - (אולי יש דרכים טובות יותר לעשות את זה, אני לא יודע)
אפילו יותר: יש כמה סקיצות במדריך הבדיקות של המאגר - רובן לא עבדו בדיוק כמו שרציתי, או שהיו רעיונות שאני רוצה לעשות, אבל לא עבדו כמו שרציתי. השארתי אותם כי למישהו יש כמה רעיונות *(עשיתי "מגן" קטן ועליו פיקסל WS2812 לשימוש עם תצוגת ISS, אבל חיברתי אותו לקו 3v ופשוט לא היה לי מספיק כוח גם כשהמטריקס LED פועל, הפיקסל עבד מצוין, בלי מטריצת LED אתה, אז עדיין יש משהו שאני יכול לעשות איתו)*
יש גם ספרייה שנקראת "דוגמאות נוספות" - אלו וריאציות על חלק ממערכי הפרויקט, או שמשהו נוספתי או הוסר או השתנה בצורה כלשהי. בשביל אלה, הם עובדים - הם פשוט לא פרויקט הגמר. אז השארתי אותם שוב מישהו עשוי להוציא מהם משהו מועיל. (אולי)
אני מקווה שנהניתם מההדרכה כמו שנהניתי מהפרויקטים האלה:-)
שלב 11: דיוורים…
פרויקט זה היה בחסות ונתמך על ידי DF Robot. אנא השתמש בקישורים שלהלן עבור המוצרים:
Firebeetle ESP32 -
כיסוי Firebeetle 24x8 LED Matrix -
מאגר הקוד שלי:
אם אתה מוצא את זה או כל אחד מהפרויקטים שלי מועילים או מהנים אנא תמכו בי. כל מה שאני מקבל הולך לרכוש עוד חלקים ולעשות פרויקטים נוספים/טובים יותר.
www.patreon.com/kd8bxp
ספריית NTPClient
ArduinoJson.h
ספריית מזג האוויר ESP8266
ספריית Json-Streaming-Parser
מוּמלָץ:
פרויקטים טובים יותר באמצעות PCB: 6 שלבים
פרויקטים טובים יותר באמצעות PCB: אם ביליתם זמן עם פרויקטים אלקטרוניים, אתם יודעים כמה זה יכול להיות כיף ומרגש. אין דבר מרגש יותר מלראות את המעגל שלך מתעורר לחיים ממש מול העיניים שלך. זה נהיה מרגש עוד יותר כשהפרויקט שלך הופך ל
5 $ DIY כיסוי/כיסוי לטלפון: 3 שלבים
5 DIY $ טלפון Cover / מקרה: להירשם שלי "אלקטרוניקה על קצה המזלג" כמובן כאן: https:? //Www.udemy.com/electronics-in-a-nutshell/ … כמו כן בדוק את ערוץ YouTube שלי כאן פרויקטים נוספים והדרכות אלקטרוניקה: https://www.youtube.com/channel/UCelOORs7UioZ4TZF…P
10 פרויקטים בסיסיים של ארדואינו למתחילים! בצע לפחות 15 פרויקטים בלוח יחיד !: 6 שלבים
10 פרויקטים בסיסיים של ארדואינו למתחילים! הפוך לפחות 15 פרויקטים עם לוח אחד !: פרויקט Arduino & לוח הדרכה; כולל 10 פרויקטים בסיסיים של Arduino. כל קודי המקור, קובץ גרבר ועוד. אין SMD! הלחמה קלה לכולם. רכיבים נשלפים וניתנים להחלפה בקלות. אתה יכול לבצע לפחות 15 פרויקטים בבו אחד
48 X 8 גלילת תצוגת מטריקס LED באמצעות רשימות ארדואינו ומשמרות: 6 שלבים (עם תמונות)
48 X 8 גלילת תצוגת מטריקס LED באמצעות רשימות Arduino ו- Shift .: שלום לכולם! זוהי ההנחיה הראשונה שלי והכול על הכנת מטריצת LED לגלול 48 x 8 לתכנות באמצעות רגיסי Shift של Arduino Uno ו- 74HC595. זה היה הפרויקט הראשון שלי עם לוח פיתוח של Arduino. זה היה אתגר שנתנו ל
שלוט בארדואינו באמצעות סמארטפון באמצעות USB באמצעות אפליקציית Blynk: 7 שלבים (עם תמונות)
שליטה בארדואינו באמצעות סמארטפון באמצעות USB באמצעות אפליקציית Blynk: במדריך זה נלמד כיצד להשתמש באפליקציית Blynk ובארדואינו על מנת לשלוט במנורה, השילוב יהיה באמצעות יציאה טורית USB. מטרת ההוראה היא להראות את הפתרון הפשוט ביותר לשלוט מרחוק בארדואינו או ב