תוכן עניינים:
וִידֵאוֹ: תכנות Arduino Over the Air (OTA) - Ameba Arduino: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
יש הרבה מיקרו-בקר Wi-Fi בשוק, יצרנים רבים נהנים לתכנת את מיקרו-בקר ה- Wi-Fi שלהם באמצעות Arduino IDE. עם זאת, אחת התכונות המגניבות ביותר שיש לבקר Wi-Fi להציע נוטה להתעלם, כלומר תכנות והעלאת הקוד שלך מרחוק ואלחוטי באמצעות פונקציית OTA (Over-The-Air).
במדריך זה, אראה לך כיצד להגדיר OTA על מיקרו-בקר ה- Wi-Fi שלך באמצעות Arduino IDE בכל מקום על מיקרו-בקר Wi-Fi של Ameba Arduino!
אספקה
אמבה ארדואינו x 1
שלב 1: OTA
OTA (Over-The-Air) מתייחס למנגנון השדרוג המקוון באמצעות האינטרנט.
Arduino IDE מציעה את תכונת ה- OTA, העוקבת אחר זרימת העבודה בתרשים למעלה.
(i) Arduino IDE מחפש באמצעות mDNS מכשירים עם שירות Arduino IDEOTA ברשת המקומית.
(ii) מכיוון ששירות mDNS פועל ב- Ameba, Ameba מגיב לחיפוש mDNS ופותח את יציאת ה- TCP הספציפית לחיבור.
(iii) המשתמש מפתח תוכנית ב- Arduino IDE. בסיום, בחר ביציאת רשת.
(iv) לחץ על העלה. ואז Arduino IDE שולח את תמונת OTA לאמבה באמצעות TCP, אמבה שומר את התמונה לכתובת ספציפית ומגדיר אפשרות אתחול לאתחול מתמונה זו בפעם הבאה.
זרימת העבודה מורכבת משלושה חלקים: תהליך תמונת mDNS, TCP ו- OTA. פרטים הקשורים ל- mDNS מתוארים במדריך mDNS. תכנות שקע TCP משמש בהעברת תמונה וכבר מסופק ב- OTA API.
בחלק הבא נדון כיצד לעבד את תמונת OTA, ונציג קצת ידע בסיסי על פריסת זיכרון פלאש של אמבה וזרימת אתחול.
שלב 2: פריסת זיכרון פלאש של Ameba
גודל זיכרון הבזק של Ameba RTL8195A הוא 2MB, נע בין 0x00000000 ל 0x00200000. עם זאת, גודל זיכרון ההבזק של Ameba RTL8710 הוא 1MB. כדי להתאים לשימוש בלוחות שונים, אנו מניחים שפריסת זיכרון הבזק היא 1MB.
כפי שמוצג באיור לעיל, תוכנית אמבה תופסת שלושה חלקים של זיכרון הבזק:
- תמונת אתחול:
כלומר, מטעין האתחול. כאשר אמבה מתחילה, היא ממקמת את תמונת האתחול לזיכרון ומבצעת אתחול. יתר על כן, הוא קובע לאן להמשיך לאחר מטען האתחול. מטען האתחול בוחן את כתובת ה- OTA ואת סיכת השחזור באזור נתוני המערכת וקובע איזו תמונה תבוצע לאחר מכן. בסוף מטען האתחול, הוא ממקם את התמונה לזיכרון וממשיך לבצע אותה.
- תמונה ברירת מחדל 2:
קוד המפתח ממוקם בחלק זה, הכתובת מתחילה מ- 0x0000B000. 16 הבייטים הראשונים הם כותרת התמונה, 0x0000B008 ~ 0x0000B00F כוללת את החתימה, המשמשת לאימות אם התמונה תקפה. לשדה החתימה שני ערכים תקפים להבחין בין התמונה החדשה לתמונה הישנה.
- תמונת OTA:
הנתונים בחלק זה הם גם קוד מפתח. כברירת מחדל, חלק זה של הזיכרון מתחיל מ- 0x00080000 (ניתן לשנות). ההבדלים העיקריים בין תמונת OTA לתמונת ברירת מחדל 2 הם כתובת זיכרון ההבזק וערך החתימה.
מלבד הקוד, ישנם כמה בלוקים של נתונים:
- נתוני מערכת:
חסימת נתוני המערכת מתחילה מ- 0x00009000. ישנם שני נתונים הקשורים ל- OTA:
1. כתובת OTA: נתוני 4 בתים החל מ- 0x00009000. הוא מספר את כתובת התמונה OTA. אם ערך כתובת OTA אינו חוקי (כלומר 0xFFFFFFFF), לא ניתן לטעון את תמונת OTA בזיכרון הבזק.
2. סיכת השחזור: נתוני 4 בתים החל מ- 0x00009008, סיכת השחזור משמשת לקביעת איזו תמונה (תמונה ברירת מחדל 2 או תמונת OTA) לביצוע כאשר שתי התמונה תקפות. אם ערך סיכת השחזור אינו חוקי (כלומר 0xFFFFFFFF), התמונה החדשה תתבצע כברירת מחדל.
נתוני המערכת יוסרו כאשר נעלה את התוכנית לאמבה באמצעות DAP. כלומר, כתובת OTA תוסר ואמבה תקבע שאין תמונת OTA.
- נתוני כיול: נתוני הכיול ההיקפיים ממוקמים בבלוק זה. בדרך כלל אין למחוק נתונים אלה.
שלב 3: זרימת אתחול
מהתמונה למעלה, אנו דנים בתרחישים הבאים: (i) אין להשתמש ב- OTA, השתמש ב- DAP להעלאת התוכנית:
במצב זה, מטען האתחול בודק את החתימה של ברירת המחדל של תמונה 2 וכתובת OTA. מכיוון שכתובת OTA מוסרת, תבחר ברירת המחדל של תמונה 2 לביצוע.
(ii) תמונת OTA מועברת לאמבה, כתובת OTA מוגדרת כראוי, סיכת שחזור אינה מוגדרת :
אמבה קיבלה תמונה מעודכנת באמצעות OTA, החתימה של תמונת ברירת המחדל 2 תוגדר לחתימה ישנה.
מטעין האתחול בודק את חתימת ברירת המחדל של תמונה 2 וכתובת OTA. הוא ימצא שכתובת OTA מכילה תמונת OTA חוקית. מכיוון שסיכת השחזור אינה מוגדרת, היא בוחרת את התמונה החדשה (כלומר, תמונת OTA) לביצוע.
(iii) תמונת OTA מועברת לאמבה, כתובת OTA מוגדרת כראוי, סיכת שחזור מוגדרת :
אמבה קיבלה תמונה מעודכנת באמצעות OTA, החתימה של תמונת ברירת המחדל 2 תוגדר לחתימה ישנה.
מטען האתחול בודק את החתימה של ברירת המחדל של תמונה 2 וכתובת OTA. הוא ימצא שכתובת OTA מכילה תמונת OTA חוקית. לאחר מכן בדוק את ערך סיכת השחזור. אם מחובר סיכת שחזור ל- LOW, התמונה החדשה (כלומר, תמונת OTA) תבוצע. אם מחובר סיכת שחזור ל- HIGH, התמונה הישנה (כלומר, תמונת ברירת המחדל 2) תבוצע.
שלב 4: דוגמה
כדי להשתמש בתכונת OTA, שדרג את קושחת ה- DAP לגרסה> 0.7 (v0.7 אינו כלול). קושחת ברירת המחדל של DAP הינה גירסה 0.7. אנא עקוב אחר ההוראות לשדרוג קושחת DAP:
פתח את הדוגמה: "קובץ" -> "דוגמאות" -> "AmebaOTA" -> "ota_basic"
מלא את פרטי ה- ssid והסיסמה בקוד לדוגמא לחיבור רשת.
ישנם כמה פרמטרים הקשורים ל- OTA:
§ MY_VERSION_NUMBER: בגרסה הראשונה, עלינו להגדיר כתובת OTA וסיכת שחזור. מכיוון שהפעם אנו מעלים באמצעות USB היא הגרסה הראשונה, איננו צריכים לשנות ערך זה.
§ OTA_PORT: Arduino IDE ימצא את אמבה באמצעות mDNS. אמבה תגיד ל- Arduino IDE שהיא פותחת יציאת TCP 5000 כדי לחכות לתמונת OTA.
§ RECOVERY_PIN: הגדר את הסיכה המשמשת לשחזור. אנו משתמשים בסיכה 18 כאן.
לאחר מכן אנו משתמשים בתוכנית העלאת USB לאמבה. לחץ על כלים -> יציאות, בדוק את היציאה הסדרתית לשימוש:
שים לב כי Arduino IDE משתמש ביציאה אחת לתוכנית העלאה ולפלט. כדי להימנע מהמצב שלא ניתן להוציא את היומן כאשר אנו משתמשים ב- OTA, אנו משתמשים במסוף יציאות סדרתי אחר (למשל מונח טרה או מרק) במקום צג סדרתי לצפייה בהודעת יומן.
לאחר מכן לחץ על העלה ולחץ על כפתור האיפוס.
בהודעת היומן:
1. בין "===== הזן תמונה 1 ====" לבין "הזן תמונה 2 ====", תוכל למצוא "Flash Image 2: Addr 0xb000". המשמעות היא שאמבה קובעת אתחול מתמונת ברירת המחדל 2 ב- 0xb000.
2. לאחר "הזן תמונה 2 ====", תוכל למצוא "זו גרסה 1". זוהי הודעת היומן שאנו מוסיפים בסקיצה.
3. לאחר שמחוברת אמבה ל- AP ומקבלת כתובת IP "192.168.1.238", היא מפעילה mDNS ומחכה ללקוח.
לאחר מכן, אנו משנים את "MY_VERSION_NUMBER" ל -2.
לחץ על "כלים" -> "יציאה", תוכל לראות רשימה של "יציאות רשת". מצא את "MyAmeba ב 192.168.1.238 (Ameba RTL8195A)", MyAmeba הוא שם התקן mDNS שהגדרנו בקוד לדוגמה, ו- "192.168.1.238" הוא ה- IP של Ameba.
אם אינך יכול למצוא את נמל הרשת של אמבה, אשר:
- האם המחשב שלך ואמבה נמצאים באותה רשת מקומית?
- נסה להפעיל מחדש את Arduino IDE.
- בדוק את הודעת היומן ב- Serial Monitor כדי לראות אם אמבה מחוברת ל- AP בהצלחה.
לאחר מכן לחץ על העלה. הפעם התוכנית תעלה באמצעות TCP. במסוף היומן תוכל לראות מידע על חיבור לקוח.
כאשר הורדת תמונת OTA בהצלחה, אמבה תאתחל מחדש והיומן הבא יוצג במסוף היומן.
- בין "===== הזן תמונה 1 ====" לבין "הזן תמונה 2 ====", תוכל לראות הודעת יומן "Flash Image 2: Addr 0x80000". המשמעות היא שאמבה מחליטה לאתחל מתמונת OTA ב 0x80000.
- לאחר "הזן תמונה 2 ====", יומן הרישום "זוהי גרסה 2" הוא ההודעה שאנו מוסיפים בסקיצה.
כדי לשחזר לתמונה הקודמת לאחר הורדת תמונת OTA לאמבה, חבר את סיכת השחזור שהגדרנו בסקיצה (כלומר, סיכה 18) ל- HIGH (3.3V) ולחץ על איפוס.
לאחר מכן תמונת ברירת המחדל 2 תיבחר בעת אתחול. שים לב שתמונת OTA שהורדת אינה נמחקת, לאחר שסיכת השחזור תנתק מ- HIGH, תמונת ה- OTA תבוצע.
אנו מסכמים את זרימת הפיתוח באמצעות OTA באיור הבא.
מוּמלָץ:
כבל תכנות DIY באמצעות Arduino Uno - Baofeng UV -9R Plus: 6 שלבים (עם תמונות)
כבל תכנות DIY באמצעות Arduino Uno-Baofeng UV-9R Plus: היי לכולם, זהו מדריך פשוט כיצד להמיר את Baofeng UV-9R (או פלוס) כבל האוזניות / האוזניות לכבל תכנות באמצעות Ardunio UNO כ- USB ממיר סידורי. [כתב ויתור] אני לא לוקח אחריות בכל נזק שנגרם
תכנות ATmega328 עם Arduino IDE באמצעות קריסטל 8MHz: 4 שלבים
תכנות ATmega328 עם Arduino IDE באמצעות קריסטל 8MHz: במדריך זה ניתן להסביר צעד אחר צעד מדריך לתכנות IC ATmega328P (אותו מיקרו קיים ב- Arudino UNO) באמצעות Arduino IDE ו- Arduino UNO כמתכנת להכין לעצמך Arduino מותאם אישית, כדי ליצור את הפרויקטים שלך
תכנות ATtiny עם Arduino: 7 שלבים (עם תמונות)
תכנות ATtiny עם Arduino: ההנחיות הן הנחיות לתכנת הבקרים המיקרו ATtiny באמצעות ה- Arduino IDE. באנגלית פשוטה, כך ניתן לתכנת שבבי Atmel של 8 פינים כפי שהיית עושה בדרך כלל ארדואינו. זה מגניב מכיוון שה- ATtiny הוא זעיר, ובכן - זה מאפשר
תכנות AT89S52 באמצעות ARDUINO: 4 שלבים
תכנות AT89S52 באמצעות ARDUINO: תכנות בתוך המערכת (ISP) aka In-Circuit Serial Programming (ICSP) הוא היכולת של כמה התקני לוגיקה הניתנים לתכנות, מיקרו-בקרים והתקנים משובצים אחרים כשהם מותקנים במערכת שלמה, במקום לדרוש את צ'י
Arduino הזול ביותר -- ארדואינו הקטן ביותר -- Arduino Pro Mini -- תכנות -- Arduino Neno: 6 שלבים (עם תמונות)
Arduino הזול ביותר || ארדואינו הקטן ביותר || Arduino Pro Mini || תכנות || Arduino Neno: …………………………. אנא הירשם לערוץ היוטיוב שלי לסרטונים נוספים ……. .פרויקט זה עוסק כיצד להתממשק לארדואינו הקטן והזול ביותר אי פעם. הארדואינו הקטן והזול ביותר הוא arduino pro mini. זה דומה לארדואינו