در مجموعه آموزشهای قدم به قدم میکروپایتون با ESP32 در بخش پنجم به کاربرد مهم وای فای میرسیم. یکی مهم ترین کاربرد ها و کارایی های بردهای ESP32، قابلیت وایفای است. که در این آموزش به کمک میکروپایتون از این ویژگی پر کاربرد در برد های ESP32 استفاده خواهیم کرد و در نهایت به عنوان مثال یک وبسرور ساده را راهاندازی خواهیم کرد. در ادامه این آموزش با مرجع تخصصی ESP32 به زبان فارسی، دیجی اسپارک همراه باشید.
تراشه ESP32
ESP32 می تواند به عنوان یک سیستم کامل مستقل یا به عنوان یک دستگاه MCU عمل کند و بار اضافی ارتباطات را در پردازنده اصلی برنامه کاهش دهد. ESP32 می تواند با سیستم های دیگر ارتباط برقرار کند تا از طریق SPI عملکرد Wi-Fi و بلوتوث را ارائه دهد. ESP32 با سوئیچ های آنتن داخلی، RF balun، تقویت کننده قدرت، تقویت کننده دریافت، فیلترها و ماژول های مدیریت توان یکپارچه شده است. ESP32 با حداقل الزامات برد مدار چاپی (PCB) ، عملکرد و تطبیق پذیری بی نظیری را به برنامه های شما اضافه می کند. برد ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوتهای آن بلوتوث داخلیاش میباشد. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC میباشد. این ماژول دارای بهترین پرفورمنس در مصرف انرژی میباشد یعنی با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیقتر به این برد نگاه کنیم باید بگوییم که این یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپ ها System on a chip microcontrollers هم گفته میشود.
وب سرور WebServer
وب سرور برنامهای است که از پروتکل HTTP استفاده میکند تا فایلهایی را در پاسخ به در خواست کاربر در اختیار ما قرار دهد. این در خواست از طریق اتصال HTTP هر کاربر ارسال میشوند. هر سروری که یک سند XML را به دستگاه دیگر تحویل میکند میتواند یک وب سرور باشد. در تعریفی مختصر میتوان گفت که یک وب سرور درواقع یک سرور در اینترنت است که به در خواست های HTTP برای تحویل محتوا و خدمات پاسخ میدهد.
انواع توابع شبکه وایفای در میکروپایتون
در این قسمت از آموزش میکروپایتون با ESP32 به معرفی توابع مختلفی خواهیم پرداخت که با میکروپایتون در ESP32 امکان پذیر است. در بخش اول برای ایجاد یک رابط به دستگاه های دیگر در این خط کد استفاده خواهیم کرد.
wlan = network.WLAN(network.STA_IF)
با مقدار دهی به این تابع رابط وایفای را فعال و غیر فعال میکنید، مقادیر برای تغییر حالت این تابع False و True هستند.
wlan.active(True)
برای اسکن کردن شبکه های وایفای موجود در اطراف برد شما یا درواقع نقاط دسترسی موجود از این تابع استفاده میکنیم.
wlan.scan()
از این تابع در مواقعی استفاده خواهیم کرد که قصد بررسی وضعیت اتصال برد را داریم که به شبکه وایفای معرفی شده متصل شده است یا خیر.
wlan.isconnected()
از این مورد برای معرفی نام و پسوورد یک شبکه وایفای به برد ESP32 استفاده میکنیم. که در بخش essid نام شبکه و در بخش password، پسوورد شبکه مدنظر را وارد خواهیم کرد.
wlan.connect('essid', 'password')
این خط کد برای مواقعی استفاده میشود که قصد دریافت مک آدرس دستگاه مورد استفاده را دارید.
wlan.config('mac')
با استفاده از این دستور اطلاعاتی مانند IP ،netmask ،gw ،DNS را دریافت خواهید کرد.
wlan.ifconfig()
برای ساخت یک AP یا نقطه دسترسی از این تابع برای شروع فرآیند استفاده خواهیم کرد.
ap = network.WLAN(network.AP_IF)
از این خط کد برای نامگذاری نقطه دسترسی ساخته شده استفاده خواهیم کرد.
ap.config(essid='ESP32')
در این مورد مشخص میکنیم که ماکزیمم چند کلاینت به شبکه ساخته شده ما امکان دسترسی داشته باشند.
ap.config(max_clients=10)
در نهایت با استفاده این تابع و مقدار دهی active نقطه اتصال مورد نظر فعال خواهد شد.
ap.active(True)
اتصال به شبکه محلی
در این قسمت به شما برنامه کوتاهی را معرفی میکنم که به راحتی به شما امکان اتصال به شبکه های وایفای محلی مورد نظر را خواهد داد. همچنین در پروژه ای خود میتوانید از این چند خط کد استفاده کنید تا فرآیند اتصال به راحتی صورت بگیرد. هنگامی که اتصال شبکه برقرار شد، ماژول socket می تواند برای ایجاد و استفاده از استاندارد های TCP/UDP به طور معمول و ماژول urequests برای درخواست های مناسب HTTP استفاده شود. پس از فراخوانی ()wlan.connect، دستگاه به طور پیش فرض سعی می کند برای همیشه اتصال را حفظ کند، حتی زمانی که احراز هویت ناموفق بود یا هیچ AP در محدوده نباشد.
def do_connect(): import network wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('connecting to network...') wlan.connect('essid', 'password') while not wlan.isconnected(): pass print('network config:', wlan.ifconfig())
لوازم مورد نیاز
کلام آخر با سایفر
در این آموزش پایه میمروپاستون در ESP32 موارد پایه و اولیه برای راهاندازی تراشه وایفای برد ESP32 را معرفی کردم، که با استفاده از این موارد قادر به راهاندازی اتصال وای فای در برد های ESP32 همچنین پروژه های خود خواهید بود، در آموزش های پیش رو به بررسی قابلیت های دیگر این تراشه پردکاربرد مانند بلوتوث کم مصرف خواهیم پرداخت.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.