- מה זה MicroPython?
- מדוע MicroPython עבור NodeMCU?
- מהו ESP8266 (NodeMCU)?
- חומרה בשימוש
- התקנת הקושחה של MicroPython עבור ESP8266
- מתקשר עם NodeMCU עם PuTTY
- העלאת קוד מצמץ LED מבוסס פיתון באמצעות Ampy
- MicroPython ב- ESP8266: קבלת טמפרטורה ולחות עם DHT22
למתחילים המעוניינים לתכנת מיקרו-בקרי תומך ב- Wi-Fi כמו ESP8266, הבנת סביבת התכנות ESP-IDF או ארדואינו IDE יכולה להיות משימה מרתיעה, התחביר המסתורי של שפות C ו- C ++ דורש ידע רב יותר במדעי המחשב שהוא מדוע השפות הללו לא תמיד ידידותיות למתחילים, לכן במאמר זה נלמד להגדיר ולתכנת ESP8266 עם MicroPython, ולבסוף נקבל את נתוני הטמפרטורה והלחות מחיישן הטמפרטורה והלחות המועדפים עלינו. בעבר הכנו גם הדרכה כיצד לתכנת ESP32 עם Micro Python, אתה יכול גם לבדוק זאת אם אתה מעוניין בכך.
מה זה MicroPython?
אנו יכולים לומר כי MicroPython היא גרסת פיתון חתוכה לקוביות, המיועדת לעבוד עם מיקרו-בקרים ומערכות משובצות. התחביר ותהליך הקידוד של MicroPython דומה לפיתון. לכן, אם אתה כבר מכיר פיתון, אתה כבר יודע לכתוב את הקוד שלך באמצעות MicroPython. אם אתה אוהד פייתון אתה יכול לבדוק מאמר זה.
MicroPython פותחה בבריטניה, על ידי צוות בראשות דמיון ג'ונס, והם השיקו Kickstarter בעודם בחזרה, שם הם השיקו קבוצה מסוימת של לוחות פיתוח שיפעלו קושחה, המאפשרת להריץ את MicroPython על גבי זה קושחה הועברה כעת להפעלה ב- ESP8266, אשר במאמר זה תוכלו ללמוד.
מדוע MicroPython עבור NodeMCU?
פייתון היא אחת משפות התכנות הנפוצות ביותר והקלות ביותר ללמוד עד כה. לכן, עם כניסתו של MicroPython, תכנות מיקרו-בקרות מבוססות חומרה הפכו לקלות מאוד. אם מעולם לא תכננתם מיקרו-בקר בעבר ורוצים להתחיל ללמוד לתכנת, MicroPython הוא התחלה טובה.
MicroPython משתמש בגרסה מופשטת של ספריות סטנדרטיות של Python, כך שכל הספריות הסטנדרטיות אינן זמינות. אבל, MicroPython אכן כולל מודולים פשוטים וקלים לשימוש כדי להתממשק עם החומרה, מה שאומר בעזרת MicroPython קריאה וכתיבה למרשם GPIO פשוט קל יותר.
המטרה הסופית של MicroPython היא להפוך תכנות מיקרו-בקרות לפשוטות ככל האפשר, כך שניתן להשתמש בה על ידי כל אחד. עם ייבוא ספריות של MicroPython וכתיבת קוד הופכת לקלה, הקוד המוצג להלן הוא דוגמה פשוטה שממצמצת את ה- LED המשולב של לוח NodeMCU, נדון בקוד בפירוט לאחר המאמר.
מייבוא מכונה פין מיבוא זמן שינה LED = פין (2, Pin.OUT) בעוד נכון: LED.value (לא LED.value ()) שינה (0.5)
מהו ESP8266 (NodeMCU)?
ESP8266 הוא מודול Wi-Fi בעלות נמוכה, המיועד ליישומים הקשורים Internet of Things (IoT).
הוא מגיע עם סיכות קלט ופלט למטרות כלליות (GPIO) והוא תומך גם במגוון פרוטוקולים נפוצים כמו SPI, I2C, UART ועוד. אבל, התכונה הכי מגניבה של מיקרו-בקר זה היא שיש לו Wi-Fi מובנה. בעזרתו אנו יכולים להתחבר לכל Wi-Fi 2.4GHz בקלות רבה.
כעת היסודות אינם מהדרך בה אנו יכולים לעבור לחלק המעשי בו נציג בפניכם את החומרה הנדרשת ואת תהליך ההתקנה של MicroPython ב- ESP8266 IC.
חומרה בשימוש
רשימת חומרים בשימוש
- 1 x לוח לחם
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (חיישן טמפרטורה ולחות)
- 1 x 3 מ"מ LED (דיודה פולטת אור)
- נגד 1 x 1K
- 5 חוט מגשר
התקנת הקושחה של MicroPython עבור ESP8266
קיימות שתי דרכים להתקין את הקושחה של MicroPython ב- ESP8266 במאמר זה. נדבר על שניהם, אך ראשית עלינו להוריד אותו.
הורדת קושחת ה- MicroPython ל- ESP8266:
לפני שנחבר את לוח NodeMCU (ESP8266) למחשב שלנו, עלינו להוריד את הגרסה האחרונה של MicroPython לאחר מכן נוכל להתקין את הקושחה ב- NodeMCU, תוכל להוריד אותה מדף ההורדה הרשמי של Micropython.
התקנת קושחת MicroPython ב- ESP8266:
לפני שנוכל להתקין את הקושחה על ה- ESP8266, עלינו לוודא שיש לנו את הכונן הנכון עבור ממיר ה- USB לסידורי, רוב לוח NodeMCU משתמש ב- IC ממיר USB CP2102 ל- UART ולכן עלינו להוריד ולהתקין את מנהל התקן עבור ממיר ה- CP2102 USB ל- UART, לאחר הורדת ההתקנה של הכונן, עלינו להוריד את ה- esptool, שהוא כלי מבוסס פיתון המיועד לקריאה וכתיבה של הקושחה ב- ESP8266.
הדרך הקלה ביותר להשיג Python היא דרך חנות Microsoft, משם אתה צריך להוריד ולהתקין עותק של Python. לאחר התקנת Python, אנו יכולים להשתמש בפקודה pip3 install esptool כדי להתקין את esptool. התהליך ייראה כמו משהו כמו התמונה למטה.
לאחר ההתקנה, בדוק אם אתה ניגש ל- esptool ממסוף הפקודה.
לשם כך, פשוט הפעל את הפקודה, גרסת esptool.py אם אתה מקבל חלון כמו תמונה למטה, התקנת את esptool בהצלחה במחשב Windows שלך.
ואם אתה מתקשה לגשת ל- esptool מחלון הפקודה, נסה להוסיף את נתיב ההתקנה המלא למשתנה הסביבה של windows.
איתור הנמל שהוקצה לוועדת NodeMCU:
כעת עלינו לברר את היציאה שהוקצה ללוח NodeMCU, לשם כך פשוט היכנס לחלון מנהל ההתקנים שלך וחפש אפשרות הנקראת Ports אם תתרחב שתוכל לגלות את היציאה המשויכת ללוח NodeMCU. בעינינו זה נראה כמו התמונה המוצגת למטה.
מחיקת זיכרון הפלאש של ה- ESP8266:
כעת הבנו את יציאת ה- COM המשויכת, אנו יכולים להכין את מודול NodeMCU על ידי מחיקת זיכרון הפלאש של זה. לשם כך נעשה שימוש בפקודה הבאה, esptool.py - port COM6 erase_flash . התהליך ייראה כמו התמונה למטה.
התקנת הקושחה:
הפעלת הפקודה הבאה תתקין את הבינארי MicroPython על לוח NodeMCU, לאחר התקנתו בינארי זה יאפשר לנו להעלות את תוכניות הפיתון שלנו ולתקשר עם לולאת קריאה והערכה .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = לזהות 0 esp8266-20200911-v1.13.bin
התהליך ייראה זהה לתמונה למטה,
שים לב שבזמן ההתקנה, הבינארי היה על שולחן העבודה שלי ולכן יש לי תקליטור לשולחן העבודה שלי ומריץ את הפקודה.
עכשיו זה נגמר, הגיע הזמן לתקשר עם הלוח ולהבהב כמה נוריות.
מתקשר עם NodeMCU עם PuTTY
עכשיו נתחיל בתוכנית Hello World הראשונה שלנו באמצעות PuTTY, PuTTY לשם כך עלינו להגדיר את סוג החיבור כסדרתי, לאחר מכן נגדיר את הקו הסידורי (במקרה שלנו COM6), ולבסוף, הגדרנו את המהירות ל- 115200 baud.
אם הכל נעשה כהלכה יופיע חלון הדומה לתמונה למטה, ואנחנו יכולים בקלות לכתוב את הקוד שלנו לתוכו, זה בדרך כלל עובד כמו מסוף iPython. כמו כן, הפעלנו את תוכנית שלום העולם הראשונה שלנו שהיא רק שתי שורות פשוטות, וברגע שהגשנו את הצהרת הדפוס שלנו, קיבלנו את תגובתנו.
העלאת קוד מצמץ LED מבוסס פיתון באמצעות Ampy
גישה ל- MicroPython בעזרת מסוף PuTTY היא דרך טובה לתקשר עם מודול ה- ESP, אך דרך קלה נוספת היא להעלות את הקוד היא באמצעות הכלי Adafruit Ampy, להתקין ampy, אנחנו פשוט יכולים להריץ פשוט להתקין pip3 adafruit- פקודת ampy והיא תתקין ampy במחשב שלנו. התהליך ייראה כמו התמונה למטה.
ברגע שיש לך את זה, אנו עדיין זקוקים למידע שלנו אודות היציאה הטורית שאליה אנו מחוברים. במקרה שלנו, זה COM6. עכשיו אנחנו רק צריכים לכתוב את קוד ה- Blink LED שלנו עם MicroPython, לשם כך השתמשנו במדריך המופיע באתר הרשמי של מיקרו פיתון
בעזרת המדריך מתבצע הקוד הבא.
מייבוא מכונה פין מיבוא זמן שינה LED = פין (2, Pin.OUT) בעוד נכון: LED.value (לא LED.value ()) שינה (0.5)
הקוד פשוט מאוד. ראשית, אנו מייבאים את ספריית הפין מהמחשב. שיעור סיכה. לאחר מכן, עלינו לייבא את ספריית הזמן, המשמשת להכנת פונקציית עיכוב. לאחר מכן, הגדרנו את Pin2 (שהוא ה- LED המשולב המחובר למודול ESP12E) כפלט. לאחר מכן, הגדרנו לולאת זמן בה אנו מדליקים ומכבים את ה- LED עם עיכוב של 500ms.
כך מעלים את הקוד ל- NodeMCU. לשם כך, עליך להפעיל את פקודת האמפי הבאה, ampy -port COM6 לשים main.py
אם התוכנית מתבצעת מתוקנת, תראה נורית LED מהבהבת כמו שמוצג להלן.
הערה: בזמן העלאת הקוד, הגדרתי את מיקום ההנחיה הנוכחי שלי לשולחן העבודה שלי, כך שלא הייתי צריך לציין נתיב מלא עבור הקובץ main.py אם זה לא המקרה עבורכם, עליכם לציין את הנתיב המלא עבור הראשי שלכם. קובץ.py.
לאחר מכן, אנו עוברים לקבל את נתוני הטמפרטורה והלחות שלנו מחיישן DHT22.
MicroPython ב- ESP8266: קבלת טמפרטורה ולחות עם DHT22
סכמטי לממשק DHT22 עם NodeMCU:
תרשים המעגל המלא של פרויקט זה נמצא להלן. השתמשתי ב- fritzing כדי ליצור את המעגל הזה.
כפי שאתה יכול לראות המעגל פשוט מאוד וניתן לבנות אותו בקלות על גבי קרש לחם באמצעות חוטי מגשר. ניתן להפעיל את המעגל השלם באמצעות יציאת המיקרו-USB ב- NodeMCU. הגדרת החומרה שלי מוצגת למטה.
קוד:
קל מאוד לקבל את נתוני הטמפרטורה והלחות מחיישן DHT22 או DHT11 באמצעות MicroPython מכיוון שקושחת ה- MicroPython שהתקנו קודם מגיעה עם ספריית DHT מובנית.
1. אנו מתחילים את הקוד שלנו על ידי ייבוא ספריית DHT וספריית הסיכות ממחלקת המכונות.
ייבא dht ממכונת ייבוא של מכונה
2. לאחר מכן, אנו יוצרים אובייקט DHT המתייחס לסיכה, בה חיברנו את החיישן שלנו.
חיישן = dht.DHT22 (פין (14))
3. לבסוף, כדי למדוד את ערך החיישן, עלינו להשתמש בשלוש הפקודות הבאות.
sensor.measure () sensor.temperature () sensor.humidity ()
עבור הקוד הסופי, אנו מכניסים אותו למעגל זמן עם ומדפיסים את הערכים המסמנים את סוף הקוד שלנו. כמו כן, חיישן DHT22 צריך 2 שניות לפני שהוא יכול לקרוא נתונים כלשהם ולכן עלינו להוסיף עיכוב של 2 שניות.
מייבוא מכונה פין מיבוא זמן ייבוא שינה dht dht22 = dht.DHT22 (פין (14)) ואילו נכון: נסה: שינה (2) dht22.measure () temp = dht22.temperature () hum = dht22. לחות () הדפס ('טמפרטורה:% 3.2f C'% טמפ ') הדפסה (' לחות:% 3.2f %% '% זמזום) למעט OSError כמו e: print (' נכשל קריאת הנתונים מחיישן DHT22. ')
לאחר שסיימנו קידוד, נוכל להעלות את הקוד בעזרת הפקודה ampy.
ampy -port COM6 לשים main.py
לאחר ביצוע הקוד בהצלחה, תוכלו לפקח על ערכי הטמפרטורה והלחות בכל צג סדרתי. השתמשתי במרק וכפי שניתן לראות למטה הצלחתי לקבל ערכי טמפרטורה ולחות ב- COM5.
מקווה שנהנית מהמאמר ולמדת משהו שימושי. אם יש לך שאלות, אתה יכול להשאיר אותן בסעיף ההערות למטה או להשתמש בפורומים שלנו כדי לפרסם שאלות טכניות אחרות.