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

תחילת העבודה עם Python עבור ESP8266 ו- ESP32: 6 שלבים
תחילת העבודה עם Python עבור ESP8266 ו- ESP32: 6 שלבים

וִידֵאוֹ: תחילת העבודה עם Python עבור ESP8266 ו- ESP32: 6 שלבים

וִידֵאוֹ: תחילת העבודה עם Python עבור ESP8266 ו- ESP32: 6 שלבים
וִידֵאוֹ: איך מתקינים פייתון ואת סביבת העבודה Atom. 2024, יולי
Anonim
תחילת העבודה עם Python עבור ESP8266 ו- ESP32
תחילת העבודה עם Python עבור ESP8266 ו- ESP32

חצר

ה- ESP8266 ואחיו הגדול הצעיר ESP32 הינם שבבי Wi-Fi בעלות נמוכה עם ערימת TCP/IP מלאה ויכולת בקר בקר. שבב ESP8266 הגיע לראשונה לידיעת קהילת היצרנים בשנת 2014. מאז המחיר הנמוך (<5 דולר), יכולת ה- Wi-Fi שלו, זיכרון פלאש מובנה של 1 או 4 מגה-בתים, ומגוון פיתוחים זמינים. לוחות, הפך את שבב ה- ESP לאחד מבקרי המיקרו הפופולריים ביותר לפרויקטים של WiFi ו- IoT DIY.

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

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

פרויקט MiPy-ESP

עוד בשנת 2015 הפרויקטים הראשונים שלי עם ESP8266 התחילו עם שבב ESP-01 באמצעות Arudions להפעלת פקודות AT שבב באמצעות חיבור טורי. לאחר מכן, במהלך השנים הבאות יישמתי את ליבת ה- Arduino ל- ESP8266 לתכנות השבבים עם שפת C ++. זה עובד מצוין, אבל עבור חובב פייתון, הגילוי שלי ביישום MicroPython של Python 3 היה חדשות טובות.

פרויקט MiPy-ESP הוא מסגרת גמישה המיישמת MicroPython לפרויקטים מלאים של Python IoT במערכות מיקרו-בקרי משפחת ESP.

המסגרת מפותחת על ידי צוות מפתחי התוכנה של הוועדה הטכנית של LeGarage (LG-TC-SWDT-01) שמטרתה להחליף קוד מבוסס C ++ כבר ליישומי המיקרו-בקר שלנו.

הפרויקט מספק תכונות בסיסיות כגון

  • הליכי חיבור לרשת
  • שרת אינטרנט של נקודת גישה לשבבים (לחיבור WiFi והגשת דפי אינטרנט של שבבים עבור קלט/פלט נתונים)
  • פונקציות MQTT
  • רישום/איתור באגים
  • תזמון אירועים של מיקרו -בקר
  • שגרות קלט/פלט חומרה

עם סקריפט קוד אחד קומפקטי (main.py), כולם עם תצורה גלובלית (config.py).

קוד mictocontroller זה פועל עם תחזוקה חזקה של חיבורי שבבים לרשת WiFi ומתווכי MQTT. ניתן לשלב בקלות מודולים קיימים של MicroPython לחומרה שונים במערכת.

מסגרת MiPy-ESP הפכה לעמוד השדרה של כל פרויקטי ה- IoT של תחביבי האלקטרוניקה שלנו הכוללים מיקרו-בקרי משפחת ESP. הוא נבדק בכמה לוחות משפחת ESP, כמו לוחות NodeMCU, Wemos ו- Lolin.

ההדרכה הבאה היא מדריך כיצד להתחיל עם בקרי מיקרו-משפחת ESP ו- MicroPython באמצעות מסגרת MiPy-ESP.

שלב 1: לוח ה- Wemos D1 Mini ESP8266

לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266
לוח Wemos D1 מיני ESP8266

מסגרת MiPy-ESP עובדת עם רוב המיקרו-בקרים מבוססי ESP8266.

לוח הפיתוח מיני Wemos D1 מבוסס על שבב ESP-8266EX. על טביעת רגל של 2.5 על 3.5 ס מ, הוא כולל זיכרון הבזק של 4MB, 11 סיכות כניסה/פלט דיגיטליות, כל הסיכות תומכות בהפרעה, PWM, I2C, SPI, כניסה טורית ואנלוגית אחת עם כניסה מקסימלית של 3.3V, יכולה לפעול על הספק 5V, בעל חיבור מיקרו USB והוא תואם קרש לחם. המחיר הנמוך וגודלו הקטן הפכו אותו ללוח ה- ESP האהוב עלי.

בנוסף, גרסת הלוח D1 mini pro מגיעה עם אפשרות לחיבור אנטנה חיצונית, מה שמגדיל את טווח החיבור באופן משמעותי (טווח של +100 מ '). בנוסף לכך, הלוח מגיע גם עם מגוון לוחות לוחות הארכה מחוץ לקופסה בגודל קומפקטי דומה.

שלב 2: הכנה ל- MicroPython בשבב ה- ESP

מתכוננים ל- MicroPython בשבב ה- ESP
מתכוננים ל- MicroPython בשבב ה- ESP

בשלב הראשון הזה, אתה תעשה זאת

  • חבר את לוח ה- ESP באמצעות USB למחשב שלך
  • התקן את תוכנת Esptool להבזק השבב
  • מחק את זיכרון השבבים
  • הבזק את השבב בעזרת הקושחה של MicroPython
  • התקן את Rshell כדי לאפשר אינטראקציה של שורת הפקודה עם השבב שלך
  • התקן mpy-cross (לאסוף קבצי.py לבינארי)

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

עבור MicroPython באמצעות קוד MiPy-ESP, הדרישה המינימלית לגודל פלאש שבב היא 1MB. יש גם מבנה מיוחד ללוחות עם 512kB, אך אין לזה תמיכה במערכת קבצים, בה MiPy-ESP תלוי.

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

התקנת EsptoolInformation אודות תוכנת Esptool ניתן למצוא במאגר Esptool GitHub. אם אתה רוצה להשתמש ב- Windows/Linux/OSX (MAC), הקישור למעלה מכסה גם את זה. ניתן להתקין את חבילת Python על ידי

pip להתקין esptool

עבור משתמשי לינוקס, חבילות עבור Esptool נשמרות עבור דביאן ואובונטו, וניתן להתקין אותן גם עם

sudo apt להתקין esptool

מחיקת זיכרון פלאש ESP באמצעות Esptool, לאחר מכן אתה מוחק את זיכרון הבזק ESP באמצעות הפקודה

esptool.py --port /dev /ttyUSB0 מחק_פלאש

הורדת הקושחה של MicroPyton קושחת ה- MicroPython נמצאת בקובץ.bin שניתן להוריד מאתר MicroPython.

ענף המאסטר הנוכחי של הפרויקט של הריפו נבדק והוא פועל עם Micropython v.1.12. על מנת להבטיח הצלחה במסגרת MiPY-ESP, הורד את הקובץ 'esp8266-20191220-v1.12.bin' מקישור זה וכתב את הקושחה לשבב באמצעות הפקודה:

esptool.py --port /dev /ttyUSB0 --baud 460800 write_flash --flash_size = לזהות 0 esp8266-20191220-v1.12.bin

חבילת Rshell מאפשרת אינטראקציה בין שורת הפקודה עם סביבת ה- MicroPython שלך המותקנת על השבב. אפשר למצוא אותו בקישור הזה. Rshell היא קליפה פשוטה הפועלת על המארח ומשתמשת ב- raw-REPL של MicroPython כדי לשלוח קטעי פייתון אל לוח המערכת על מנת לקבל מידע על מערכת קבצים ולהעתיק קבצים ממערכת הקבצים של MicroPython וממנה. REPL מייצג Read Evaluate Print Loop, והוא השם שניתן לפקודת MicroPython האינטראקטיבית שאליה ניתן לגשת ב- ESP8266. השימוש ב- REPL היא ללא ספק הדרך הקלה ביותר לבדוק את הקוד ולהפעיל פקודות. התקן את Rshell באמצעות הפקודה:

sudo pip התקן rshell

ניתן ליישם את התקנת המהדר mpy-cross MicroPython עם קבצי ascii.py שהועלו למערכת הקבצים של השבבים. MicroPython מגדיר גם את הרעיון של קבצי.mpy שהוא פורמט קובץ מיכל בינארי המכיל קוד שנערך מראש ואפשר לייבא אותו כמודול רגיל של py. על ידי איסוף קבצי.py ל-.mpy, זיכרון RAM נוסף יהיה זמין עבור קוד הריצה שלך - וזה נחוץ כדי שיהיה לך מודול ליבה מתפקד של MiPy -ESP.

לפריסת קוד MiPy-ESP, מהדר הצלב של mpy-cross MicroPython אוסף את הסקריפטים של.py ל-.mpy לפני העלאת שבבים. התקן את חבילת mpy-cross לפי ההוראות שבקישור זה. לחלופין, ניתן להתקין את הפקודה mpy-cross באמצעות פקודת Python pip או להריץ מנתיב התיקיות mpy-cross אם תשכפלו את מאגר ה- MicroPython מ- GitHub כאן.

כעת מותקן אצלך MicroPython וכל הכלים הדרושים כדי להתחיל בבניית פרויקט ה- MiPy-ESP הראשון שלך

שלב 3: תחילת העבודה עם MiPy-ESP

תחילת העבודה עם MiPy-ESP
תחילת העבודה עם MiPy-ESP

בשלב זה תוכל

הורד את מסגרת MyPy-ESP

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

שיבוט git

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

שלב 4: ארכיטקטורת המסגרת MiPy-ESP

ארכיטקטורת המסגרת MiPy-ESP
ארכיטקטורת המסגרת MiPy-ESP

בשלב זה תוכל

למד אודות זרימת העבודה של קוד MiPy-ESP

ארכיטקטורת קוד MiPy-ESP

כל מודולי המסגרת של פייתון נמצאים בתיקייה /src של מאגר הקוד MiPY-ESP. תיקיית src/core מכילה את מודולי הליבה הנכנסים לכל פרויקט. בתיקיית src/drivers יש מבחר מודולים לחומרה שונות לחיבור לשבב שלך. תיקיית src/utilities מכילה מודולי שירות אופציונליים לכלול בפרויקט שלך.

הקבצים main.py ו- config.py נמצאים בתיקייה src/. אלה הקבצים העיקריים לעריכה לבניית הפרויקט שלך:

config.py:

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

main.py:

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

האיור למעלה מתאר את זרימת העבודה של main.py:

  1. בעת האתחול, הקוד מנסה לחבר את השבב לרשת Wi-Fi רשתות שהוחלו בעבר וסיסמאותיהן (מוצפנות על שבב) מאוחסנות בזיכרון פלאש. ניתן להקצות SSID של רשת וסיסמאותיהם בקובץ wifi.json בתבנית {" SSID1 ":" סיסמה "," SSID ":" סיסמה 2 "}. הרשתות הנתונות בקובץ זה מאוחסנות, סיסמאות מוצפנות והקובץ נמחק בעת האתחול.
  2. אם לא נמצאו רשתות שיודעות, הקוד מגדיר שרת אינטרנט של נקודת גישה (SSID) ושרת הסיסמה של שרת AP שבב מוגדרות בקובץ config.py. על ידי כניסה ל- SSID השבב, דף אינטרנט לכניסה של השבב ל- Wi-Fi מוגש ב- 192.168.4.1. רשתות מזוהות מוצגות בתפריט, או שניתן להזין SSID באופן ידני (רשתות נסתרות) יחד עם סיסמת Wi-Fi. לאחר חיבור מוצלח של השבב ל- Wi-Fi, שרת ה- AP נכבה וקוד main.py ממשיך לשלב הבא.
  3. בחלק ההתקנה של main.py,

    • מוגדרות פונקציות למשרות והתקשרויות (וכו 'שיחות MQTT) ואירועים קבועים.
    • מוגדרות עבודות מתוזמנות שונות להפעלת פונקציות.
    • לקוח מתווך MQTT הוקם
  4. הקוד נכנס אז ללולאה הראשית של מיקרו-בקר,

    • בדיקה רציפה של חיבורי תיווך רשת ו MQTT,
    • מנויי MQTT,
    • קלט/פלט חומרה
    • ומשרות מתוזמנות.
    • לאחר חיבור לאינטרנט או מתווך MQTT, הקוד מנסה להקים מחדש.

שלב 5: הכנת קוד הפרויקט שלך

הכנת קוד הפרויקט שלך
הכנת קוד הפרויקט שלך
הכנת קוד הפרויקט שלך
הכנת קוד הפרויקט שלך

בשלב זה תוכל

  • למד על מבנה הקבצים של מאגר MiPy-ESP
  • הכינו את קוד הפרויקט שלכם להעלאת שבבים

מבנה תיקיית המאגר האיור לעיל מתאר את מבנה תיקיות המאגר ומפרט את המודולים הנוכחיים של המסגרת. הפרויקט שלך נמצא בשלבים בתיקייה src/. מודולי מסגרת Core MiPy-ESP שוכנים ב- src/core, מודולי שירות אופציונליים ב- src/utilities ומודולי חומרה ב- src/drivers.

רוב ספריות החומרה הזמינות של MicroPython יכולות להיכנס לנהגים/ לתיקייה ללא כל שינוי. כל מנהלי ההתקנים הנוכחיים נבדקים במסגרת MiPy-ESP. לגבי מודולים בכלי השירות/ תיקיה, יתווספו עוד כשיגיעו לחיים.

הצגת קוד הפרויקט יש להציב את הקוד הספציפי לפרויקט שלך בתיקייה src/. כבר שם הקבצים main.py ו- config.py שאתה יכול לערוך. העתק גם את כלי הפרוייקט המבוקשים מ- src/utilities ו- src/drivers אל src/.

במקרה שתרצה לספק רשתות Wi-Fi וסיסמאות ידועות לשבב, הוסף את הקובץ wifi.json ל- src/.

הידור והתכוננות להעלאה ניתן ליישם Makefile בתנאי להכנת קבצים להעברה לשבב על ידי איסוף קבצי.py ב- / src, הידור מודולי הליבה והעברת הקבצים המורכבים לתיקייה חדשה בשם build / על ידי הפקודה

לעשות בנייה

הקבצים בבנייה מוכנים להעלאה למערכת הקבצים של השבבים. כברירת מחדל, main.py ו- config.py אינם מורכבים לבינארי, על מנת לגשת אליהם בקלות לבדיקת שבבים שנפרסים. הפקודה:

לעשות נקי

מוחק את המבנה/ התיקיה ואת תוכנו.

שלב 6: עריכת והעלאת הקוד למייקרו

הידור והעלאת הקוד אל המיקרו -בקר
הידור והעלאת הקוד אל המיקרו -בקר
הידור והעלאת הקוד אל המיקרו -בקר
הידור והעלאת הקוד אל המיקרו -בקר

בחלק זה תוכל

  • העלה את הקבצים המוכנים בקטע build/ מהקטע האחרון
  • התחל ופקח על קוד ההפעלה

העלאת build/ קבצים באמצעות Rshell

העלה את כל הקבצים בספריית /בנה לשבב ESP באמצעות Rshell. כאשר המיקרו -בקר מחובר ל- USB, מהבנייה/ התיקיה התחל את Rshell עם הפקודה

rshell -p /dev /ttyUSB0

לאחר מכן בדוק את קבצי השבבים (אם קיימים) על ידי

ls /pyboard

ניתן למחוק את כל הקבצים בשבב על ידי

rm /pyboard/*.*

העתק את כל קבצי הפרויקט בבנייה/ לשבב:

cp *. * /pyboard

לאחר מכן הפעל את מסוף ה- Python האינטראקטיבי על ידי הפקודה

repl

כעת תוכל להפעיל פקודות Python או לייבא מודולים ולפקח על פלט סידורי של שבבים ממודול לוגר MiPy-ESP.

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

ייבוא עיקרי

אוֹ

מכונת יבוא

ואז

machine.reset ()

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

זה בתקווה שאכן יתחיל אותך.

מוּמלָץ: