اینترنت اشیا - IOTمطالب آموزشی

آموزش میکروپایتون با ESP8266

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

میکروپایتون شاخه ای از زبان برنامه نویسی پایتون است که برای اجرا بر روی میکروکنترلر ها بهینه شده است مزیت استفاده از میکروپایتون بر روی میکروکنترلر ها استفاده از کتابخانه ها و نمونه کدهای آماده موجود برای زبان پایتون است. از طرفی زبان پایتون یکی از راحت ترین زبان ها برای یادگیری و شروع برنامه نویسی می باشد.

برای شروع به چه چیزهایی نیاز است

برای شروع برنامه نویسی میکروپایتون به سخت افزاری نیاز دارید که بتواند کد های میکروپایتون را برای شما اجرا کند. برای این منظور می توانید از بردهای pyboard و یا NUCLEO تولید STM استفاده کنید. همچنین از میکروپایتون برای استفاده بر روی ماژول های وای فای ESP8266 نیز آماده شده است. مزیت استفاده از ماژول ESP8266 نسبت به برد های دیگر یک وجود ارتباط Wi-Fi برای اتصال به اینترنت و شبکه و دو قیمت مناسب و در دسترس بودن آن است در ادامه به معرفی کلی ماژول های ESP8266 می پردازیم. و درنهایت راه اندازی و استفاده از میکروپایتون را بررسی میکنیم.

معرفی ماژول وای فای ESP8266

ماژول وای فای esp8266 دارای یک میکروکنترلر 32 بیتی با سرعت کلاک 160 مگاهرتز بوده که 80 درصد قدرت پردازشی آن برای اجرای برنامه های نوشته شده توسط برنامه نویس می باشد. در نتیجه برای استفاده از این ماژول نیازی به میکروکنترلر دیگری نبوده و از قدرت پردازشی خود ماژول برای اجرای برنامه های نوشته شده می توان استفاده کرد. انواع مختلفی از ماژول های ESP8266 تولید شده که انواع آنها را در ادامه می توانید مشاهده کنید.

word image

روش های مختلف برنامه نویسی برای ماژول ESP826 :

استفاده از IDE آردوینو

در این روش شما می توانید برنامه هایی به زبان C و C++ نوشته و به وسیله IDE آردوینو، کامپایل و ماژول خود را پروگرم کنید.

استفاده از NodeMcu و زبان LUA

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

آموزش راه اندازی و استفاده از Micropython بر روی ESP8266

پایتون یک زبان برنامه‌نویسی همه منظوره سطح بالا می باشد. قابلیت یادگیری آسان، آن را به یکی از فراگیر ترین زبان های برنامه نویسی تبدیل کرده است. می خواهیم از این زبان برنامه نویسی برای برنامه نویسی ماژول ESP8266 استفاده کنیم. برای این منظور ابتدا باید فریمور Micro python بر روی ESP8266 نصب شود.

انتخاب ماژول ESP8266 مناسب

از میان ورژن های مختلف ماژول ESP8266 می توانید با توجه به نیاز خود یکی را انتخاب کنید. ولی برای شروع پیشنهاد می شود از برد D1mini برای راحتی کار استفاده کنید. و یا از برد های مشابه که چیپ تبدیل USB به سریال را بر روی خود دارند نیز استفاده کنید. در ادامه آموزش ما از برد D1mini استفاده می کنیم.

word image

نصب فریمور میکروپایتون بر روی ESP8266

برای نصب فریمور به برنامه ی ESP8266Flasher نیاز است برای دانلود برنامه به صفحه گیت هاب برنامه مراجعه کنید.

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

برای دانلود فریمور میکروپایتون برای ESP8266 نیز به صفحه دانلود پروژه ی MicroPython مراجعه کنید. فریمور در سه نسخه stable وdaily و daily 512KB منتشر میشود که پیشنهاد می شود از نسخه stable استفاده کنید.

http://micropython.org/download

بعد از دانلود فایل های مورد نیاز برنامه ESP8266Flasher را اجرا کنید.

پورت سریالی که ماژول به رایانه متصل شده است را از قسمت COM Port انتخاب کنید.

word image 1

برای انتخاب فایل فریمور از قسمت config بر روی قسمت مشخص شده کلیک کنید و فریمور را انتخاب کنید.

word image 2

و در نهایت در قسمت Operation گزینه Flash را انتخاب کنید و منتظر بمانید تا عمیات نصب فریمور تمام شود.

word image 3

دسترسی به محیط برنامه نویسی میکروپایتون

بعد از اتمام نصب فریمور بر روی ماژول ESP8266 جهت دسترسی به محیط برنامه نویسی میکروپایتون یا همان REPL می بایست به وسیله یک ترمینال سریال به ماژول ESP8266 متصل شویم. REPL مخفف کلمه های Read–eval–print loop است به معنی حلقه خواندن محاسبه و پرینت نتیجه است.

برای اتصال به ماژول ESP8266 در ویندوز از نرم افزار putty استفاده می کنیم. طبق تصویر زیر برنامه putty را تنظیم کنید.

esp5

بعد از باز شدن ترمینال سریال به محیط REPL میکروپایتون دسترسی خواهیم داشت. برای اولین برنامه می توانیم برنامه print(“hello World!”) را اجرا کنیم این دستور عبارت Hello World! را در خروجی نمایش میدهد.

esp8266-002

دسترسی به محیط برنامه نویسی میکروپایتون از طریق مرورگر وب

برای دسترسی به محیط برنامه نویسی پایتون یا همان REPL اول باید آن را از طریق ارتباط سریال فعال کنید برای فعال کردن آن در ترمینال سریال دستور زیر را وارد کنید.

import webrepl_setup

در مرحله اول از شما در مورد فعال کردن محیط webrepl سوال پرسیده میشود با وارد کردن عبارت E این محیط را فعال کنید. در مرحله دوم در مورد اینکه هنگام بوت ماژول این محیط به صورت پیش فرض برای شما فعال شود یا نه که با وارد کردن حرف y این ویژگی را فعال کنید و در آخر برای دسترسی به این محیط یک رمز 4 تا 9 کاراکتری باید وارد شود. بعد از اتمام این مراحل ماژول یک بار ریست میشود.بعد از ریست شدن از طریق WiFi به ماژول ESP8266 متصل شوید. به صورت پیش فرض نام WiFi ماژول با اسم ESP8266 شروع میشود، رمز پیش فرض micropythoN است، توجه کنید که N با حرف بزرگ است. و شما می توانید بعد از اتصال راینه خود به ماژول ESP8266 از طریق WiFiو با باز کردن صفحه (توجه کنید این صفحه برای باز شدن اولیه به اینترنت نیاز دارد قبل از اتصال به esp8266 این صفحه را باز کنید)

http://micropython.org/webrepl/

به محیط webrepl از طریق مرورگر خود دسترسی داشته باشید.

Screenshot (19)

برای اتصال روی connect کیلک کنید و رمزی که در مرحله قبل وارد کردید را تایپ کنید و اینتر را بزنید (توجه کنید که به هنگام تایپ رمز چیزی در صفحه نمایش داده نمیشود) و طبق معمول اجرای برنامه معروف Hello World!

مزیت استفاده از محیط webrepl درسترسی به آپلود فایل بر روی ماژول ESP8266 میباشد از این قابلیت برای آپلود کتابخانه و برنامه های پایتون می توانید استفاده کنید.

word image 4

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

تا به اینجا با نحوه کار کردن و دسترسی به محیط برنامه نویسی Micropython بر روی ماژول ESP8266 آشنا شدید. در ادامه بعضی از دستورات متداول زبان میکروپایتون را به شما شرح میدهیم.

کنترل GPIO ماژول ESP8266

GPIO ها راهی برای اتصال ماژول esp8266 برای کنترل جهان بیرون و تجهیزات مختلف هستند همه پین های ماژول esp8266 برای کنترل در دسترس نیستند و معمولا پین های 0, 2, 4, 5, 12, 13, 14, 15 و16 برای کنترل در دسترس هستند.

برای استفاده از GPIO ماژول ابتدا باید کتابخانه مورد نظر را به برنامه خود اضافه کنید:

>>>import machine

برای استفاده از هر پین اول باید نوع پین (ورودی یا خروجی بودن آن مشخص شود) امکان pull up کردن داخلی هر پین نیز وجود داردبه عنوان مثال در دستور زیر پین 0 به صورت ورودی و pull up تعریف شده است.

>>>pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)

برای تشخیص low یا high بودن پین می توان از دستور value() استفاده کرد که متناسب با وضعیت پایه مقدار 0 یا 1 را بر می گرداند.

>>>pin.value()

برای خروجی کردن یک پین می توان به صورت زیر عمل نمود:

>>>pin = machine.Pin(0, machine.Pin.OUT)

برای تغییر وضعیت پین مورد نظر می توان از دستور value(0) و یا value(1) استفاده کرد مثل:

>>> pin.value(0)

>>> pin.value(1)

 

و یا به روش پایین

>>> pin.off()

>>> pin.on()

 

راه اندازی LCDکاراکتری توسط میکروپایتون

ابتدا کتابخانه Pyb را فراخوانی میکنیم

import pyb

سپس کتابخانه Lcd را فراخوانی میکنید.

From lcd import HD44780

برای استفاده از این کتابخانه باید فایل lcd.py از طریق محیط webrepl به حافظه ماژول منتقل شده باشد.

یک فانکشن جهت راه اندازی lcd تعریف میکنیم :

def lcd_run():

یک متغیر به نام Lcd تعریف کرده و خروجی تابع HD44780 را درون آن بریزید.

lcd=HD44780()

سپس Pin های دیتا Lcd که به برد متصل است را در تابع زیر به صورت زیر قرار دهید

lcd.PINS =['Y1','Y2','Y3','Y4','Y5','Y6']

جهت پیکره بندی Lcd تابع زیررا فراخوانی کنید

lcd.init()

جهت نمایش کاراکترها در سطر مورد مورد نظر از تابع زیر استفاده نمایید

lcd.set_line(x)

به جای x سطر مورد نظر قرار دهید

جهت نوشتن یک رشته و کاراکتر از تابع زیر استفاده کنید

lcd.set_string("ABCDEFGHIJKLMNOP")

جهت پاکسازی صفحه از تابع زیر استفاده نمایید

lcd.clear()

و توسط تاخیر موجود در کتابخانه pyb یک تاخیر ۳۰۰۰ میلی ثانیه ای جهت ماندگاری و عدم پرش کاراکترها در صفحه Lcd ایجاد نمایید

pyb.delay(3000)

برنامه کامل راه اندازی LCD کاراکتری با میکروپایتون:

import pyb

from lcd import HD44780

def Lcd_Run():

lcd = HD44780()

lcd.PINS =['Y1','Y2','Y3','Y4','Y5','Y6']

lcd.init()

lcd.set_line(0)

lcd.set_string("Meysam MZ")

lcd.set_line(1)

lcd.set_string("Micro Py")

pyb.delay(3000)

lcd.clear()

# -----Help Connect Lcd -----

# 1 VSS GND GND

# 2 VDD +5V VCC

# 3 V0 Contrast (0-5V)* Pot

# 4 RS Register select pyboard, 0

# 5 R/W Read/write GND

# 6 E Enable pyboard, 1

# 7 DB0 Data Bit 0 NC

# 8 DB1 Data Bit 1 NC

# 9 DB2 Data Bit 2 NC

# 10 DB3 Data Bit 3 NC

# 11 DB4 Data Bit 4 pyboard, 2

# 12 DB5 Data Bit 5 pyboard, 3

# 13 DB6 Data Bit 6 pyboard, 4

# 14 DB7 Data Bit 7 pyboard, 5

# 15 A Backlight +someV VCC

# 16 K Backlight GND GND

#--------End Script-------#

برای اطلاعات بیشتر و خواندن راهنمای این زبان می توانید از لینک زیر استفاده کنید.

https://goo.gl/gHNBqb

اگر در راه اندازی و یا برنامه نویسی میکروپایتون سوالی داشتید در نظرات پاسخگوی سوالات شما هستیم.

نوشته های مشابه

4 دیدگاه

  1. خسته نباشید آقای عزتی واقعا توضیحات کامل و با زبان ساده بود،مدتها منتظر یه همچین ماژولی بودم
    ممنون عالی بود

  2. سلام و خدا قوت من برد wemos D1 R1 دارم برای این ک برد رو اکسس پوینت کنم و بهش دستور بفرستم میشه راهنماییم کنید؟

  3. سلام ممنون از آموزش خوبتون. مشکل من اینه که بعد از نصب فریمور بر روی nodemcu محیط putty رو ک تنظیم میکنم ولی محیط command اجرا نمیشه و چیزی نمیتونم بنویسم و اجرا کنم؟

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

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

دکمه بازگشت به بالا