Toggle Nav

آشنایی با میکروپایتون برای برنامه نویسی بردهای ESP8266

فهرست مطالب

مقدمه

هدف از این آموزش، آشنایی اولیه با برنامه نویسی میکروپایتون و پلتفرم‌های آن می‌باشد. در انتهای این آموزش شما میکروپایتون و کاربرد‌های آن را آموخته‌، با محیط برنامه نویسی و تنظیمات مربوط به آن آشنا شده‌ و قادر هستید یک برنامه ساده با استفاده از  کتابخانه‌ها و توابع پرکاربرد میکروپایتون بنویسید.

آنچه در این آموزش یاد می گیرید

  • آشنایی با میکروپایتون
  • آشنایی با محیط برنامه نویسی میکروپایتون
  • برنامه نویسی ESP8266 با میکروپایتون

میکروپایتون چیست؟

پایتون یک زبان برنامه نویسی سطح بالا‌ی ‌بسیار محبوب و پرکاربرد است. اما در مواردی که قصد برنامه ریزی میکروکنترلر‌ها را داشته باشیم، معمولا استفاده از دیگر زبان‌های برنامه نویسی به دلیل سرعت بالا و قدرت پردازش مناسب، نسبت به پایتون متداول‌تر است. میکروپایتون پیاده سازی منبع باز از پایتون 3 است که شامل یک زیر مجموعه کوچک از کتابخانه های استاندارد پایتون بوده و برای اجرا بر روی میکروکنترلرهای با محیط محدود مانند ROM محدود و RAM محدود بهینه شده است. این نسخه از زبان پایتون با سرعت بالا طراحی شده است تا بتوان از آن برای ارتباط با برخی میکروکنترلر‌ها مانند pyboard ،Wipy، ESP32 ، ESP8266 و MicroBit استفاده کرد.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد ESP8266 × 1

نرم افزار های مورد نیاز

MicroPython firmware for ESP8266
ESP8266Flasher
putty

چرا ESP8266 را برای برنامه نویسی میکروپایتون انتخاب کردیم

از بین سخت افزار‌هایی که قابلیت کار با میکروپایتون را دارند، در اینجا از ESP8266 استفاده شده است. مزیت استفاده از ماژول ESP8266 نسبت به برد های دیگر وجود ارتباط Wi-Fi برای اتصال به اینترنت و شبکه ، وجود یک کنترلر قدرتمند با RAM بالا و قیمت مناسب آن است.

اجرای میکروپایتون بر ماژول ESP8266

در قدم اول برای اجرای اسکریپت پایتون روی ماژول ESP8266 باید فریمور (firmware) مربوط به این ماژول را دانلود کرده و روی آن پروگرم کنید.

می‌توانید فریمور مربوط به این برد و برد‌های دیگر را از لینک زیر دریافت کنید:

http://micropython.org/download

پس از نصب این فریمور باید آن را روی ماژول آپلود کنید. برای پروگرم کردن ماژول به برنامه‌ی ESP8266Flasher نیاز دارید. این برنامه را نیز می‌توانید از لینک زیر دریافت کنید:

https://github.com/nodemcu/nodemcu-flasher

برای ورود به محیط برنامه نویسی میکروپایتون یا همان REPL (Read Evaluate Print Loop)  باید از یک ترمینال سریال استفاده کنید. برای اتصال  به ماژول ESP8266 در ویندوز از نرم افزار putty استفاده می کنیم  که می‌توانید آن را از لینک زیر دانلود کنید:

https://www.putty.org/

پس از دانلود برنامه‌های مورد نیاز، نوبت به پروگرم کردن ESP8266 می‌رسد:

1. ابتدا در قسمت Operation پورتی که ماژول به آن متصل شده است را انتخاب کنید.

2. سپس در قسمت Config مسیر فریمور ماژول را که در قسمت قبل دانلود کرده‌اید، اضافه کنید.
3. حالا با کلیک بر روی Flash، فریمور روی ماژول شما نصب می‌شود.
پس از نصب فریمور، برای ورود به محیط برنامه نویسی میکروپایتون یا همان REPL باید تنظیمات زیر را در نرم افزار Putty انجام دهید:
  1. میخواهیم بین ماژول ESP8266 و کامپیوتر ارتباط سریالی برقرار کنیم. پس در تنظیمات Putty ارتباط سریال را انتخاب کنید و پس از انتخاب COM مناسب، سرعت انتقال داده را روی 115200 تنظیم کنید.
2. حالا با کلیک بر روی گزینه Open وارد محیط برنامه نویسی میکروپایتون می‌شوید.
اخطار
در صورتی که پس از ورود به محیط برنامه نویسی بالا، متنی روی صفحه نمایش داده نمی‌شود و یا شما قادر به نوشتن دستوری نیستید، از تنظیمات Putty وارد قسمت Terminal شوید و گزینه Force On را فعال کنید.

اجرای میکروپایتون بر ماژول ESP8266 از طریق وب

برنامه نویسی میکروپایتون در محیط وب نیز قابل انجام است. برای اینکار مراحل زیر را دنبال کنید:

  1. آدرس http://micropython.org/webrepl/ را در مرورگر خود باز کنید. حالا به command prompt برگردید و دستور زیر را اجرا کنید:
>>> import webrepl_setup
2. پس از اجرای این کد از شما پرسیده می‌شود که آیا می‌خواهید محیط Werepl را فعال کنید، شما باید با تایپ E به این سوال پاسخ مثبت دهید.
3. سپس درباره‌ی رمز دسترسی به محیط از شما سوال پرسیده می شود. با تایپ y می‌توانید رمز دلخواه خود را برای برقراری ارتباط وارد کنید.

4. پس از انجام این مراحل باید به WiFi ماژول متصل شوید. این WiFi معمولا micropython نام دارد و رمز آن به صورت پیش فرض micropythoN است.

5. پس از برقراری ارتباط به صفحه WebREPL در مرورگر خود برگردید و پس از کلیک بر روی Connect رمزی که در مرحله قبل انتخاب کرده‌اید را وارد کنید.

به محیط برنامه نویسی میکروپایتون در محیط وب خوش آمدید!

پروژه 1: کنترل LED به کمک میکروپایتون (کنترل دیجیتال)

روشن و خاموش کردن LED

در این قسمت می‌خواهیم یک برنامه ساده مربوط به کنترل یک LED را به کمک میکروپایتون نوشته و اجرا کنیم. ماژول ESP8266 بر روی برد خود دو LED متصل به پین‌های 2 و 16 دارد. برای روشن و خاموش کردن این LED‌ها با میکروپایتون نیاز داریم که پین‌های ورودی و خروجی (GPIO) را کنترل کنیم. برای اینکار از کتابخانه  machine  استفاده می‌کنیم.

>>> import machine

حالا می‌توانیم از دستورات موجود در این کتابخانه استفاده کنیم. با دستور زیر پین 2 ماژول را به عنوان یک پین خروجی تعریف می‌کنیم:

>>> LED = machine.Pin( 2, machine.Pin.OUT)

حالا میتوانیم مدل LED را که در بالا تعریف کردیم، به کمک دستورات زیر روشن و خاموش کنیم:

>>>LED.on()
>>>LED.off()

یا:

>>>LED.value(1)
>>>LED.value(0)

LED چشمک زن

می‌خواهیم با اضافه کردن یک کلید، LED چشمک زن ایجاد کنیم. علاوه بر کتابخانه machine که در قسمت قبل استفاده کردیم، در این قسمت به کتابخانه utime نیز برای ایجاد تاخیر نیاز داریم.

توجه
وقتی یک کد را روی ESP8266 پروگرم می‌کنیم، اجرای این برنامه تا بینهایت ادامه خواهد داشت! برای پروگرم کردن کد جدید روی ماژول لازم است که ابتدا ماژول را از کد قبلی خارج کنیم. برای این کار از کتابخانه sys استفاده میکنیم.
>>> import machine
>>> import utime
>>> import sys
>>> LED = machine.Pin( 2, machine.Pin.OUT)
>>> Button = machine.Pin( 0, machine.Pin.IN, machine.Pin.PULL_UP)

با اتصال یک کلید به پین صفر، امکان خروج از کد قبلی را با فشردن کلید ایجاد می‌کنیم.

>>>while True:
  >>>  if Button.value() == 0:
       >>> sys.exit()
تابع exit()ماژول را از کد قبلی خارج می‌کند.
    # Turn LED on and then off
  >>>  led.on()
  >>> utime.sleep_ms(500)
  >>>led.off()
  >>>  utime.sleep_ms(500)
تابع sleep_ms()  نیز مانند delay عمل کرده و تاخیر مورد نظر به میلی ثانیه را در مدار ایجاد می‌کند.
برای آشنایی با کتابخانه‌ها و توابع دیگر میکروپایتون می‌توانید به لینک زیر مراجعه کنید: https://docs.micropython.org/en/latest/library/index.html

پروژه 2: کنترل LED به کمک میکروپایتون (کنترل آنالوگ)

در این قسمت می‌خواهیم به کمک یک پتانسیومتر نور LED را کنترل کنیم. برای کنترل نور LED نیز از PWM استفاده می‌کنیم. پتانسیومتر را به پین ADC ماژول ESP8266 متصل میکنیم. مقدار آنالوگ پتانسیومتر توسط این پین خوانده شده و به دیجیتال تبدیل می‌شود. سپس این مفدار دیجیتال به بازه 0 تا 1024 برده شده و به عنوان چرخه کار PWM به آن ارسال می‌شود تا شدت نور LED را کنترل کند.

یک گام جلوتر

  • سعی کنید با مراجعه به سایت میکروپایتون، کتابخانه‌ها و توابع بیشتری یاد گرفته و پروژه‌های پیچیده‌تر را اجرا کنید.

از این مطلب خوشتان آمد؟

آخرین مطالت و آموزش ها را در ایمیلتان دریافت کنید:

مطالب بیشتر

Comments (5)

  • Amir Khakestani Reply

    Awesome! I’m proud of you guys

    مارس 7, 2020 at 9:41 ب.ظ
  • Sajad Reply

    سلام ممنون بابت مطلب عالیتون خیلیییییییییی جالب بود لذت بردم. من ترم دوم مهندسی بزشکی هستم و خیلی به این زبان برنامه نویسی علاقه دارم و میخوام که میکروبایتون رو هم یادبگیرم برای اینترنت اشیا (IoT and IoMT) سوالم اینه که از کجا شروع کنم؟ مثلا در مورد میکروبایتون اطلاعاتم کمه و نمیدونم که چطور بروژه ها رو میشه روش بیاده کرد. ممنون میشم یه راهنمایی ای – یک مسیر مطالعه ای بهم نشون بدید. کمی تجربه کار با بایتون دارم و به زبانش تا حدودی اشنا هستم.

    ژوئن 14, 2020 at 12:41 ب.ظ
  • محمد Reply

    بسیار عالی
    من از فروشگاه همین سایت Node mcu با مبدل ch03g سفارش دادم . این آموزش ها با استفاده از این بورد عملی میشه؟

    جولای 13, 2020 at 2:20 ب.ظ
  • حسام Reply

    سلام برای نصب pip ها باید چیکار کنیم ؟

    ژانویه 10, 2021 at 1:27 ب.ظ
    • مهران ملکی Reply

      سلام.
      می تونید از دستور upip install استفاده کنید. مشابه نصب همان پکیج ها رو پایتون.

      ژانویه 16, 2021 at 3:12 ب.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *