دانشجوی مهندسی برق و علاقه مند به رباتیک و اینترنت اشیاء
دنیای جذاب ESP ها
سلام
اگر علاقه مند به اینترنت اشیاء هستید، یا با میکروکنترلر ها سر و کار دارید و یا مثل من موقع خواب حال و حوصله ندارید که بلند بشین و لامپ رو خاموش کنید، ESP احتمالا واستون جذاب خواهد بود.
چی هست؟
یک ماژول وای فای
"ای اس پی" یا به طور دقیق تر و خاص تر ESP8266 به یک دسته ماژول گفته میشه هسته پردازشی اونها آی سی 32 پایه ای با نام ESP8266EX هست.
این IC یک میکروکنترلر با یک قابلیت خفن هست! اتصال وای فای، یعنی علاوه بر GPIO و پروتکل های ارتباطی معروف مثل SPI, UART, I2C و... وای فای هم داره. و با وای فای اون میتونید با تقریبا هر دیوایسی که وای فای داره ارتباط برقرار کنید، مثلا تلفن همراهتون.
فرض کنید اون دیوایس یک مودم اینترنت باشه! با یکم تنظیمات شما یک میکروکنترلر دارید که میتونید از هر جای دنیا با اون ارتباط برقرار کنید. دیگه چی میخاین؟
این هم دیتاشیت
زیاد تئوریش نمیکنم بریم که یکیشو بخریم!
ماژول های ESP8266
برای اینکه بتونید با ESP کار کنید نیاز دارید تا یک ماژول ESP8266 تهیه کنید. ماژول های ESP8266 خیلی متنوع هستند و تفاوتشون در میزان حافظه فلش، تعداد پایه ها، نوع آنتن و... هست که درموردشون کم کم بحث میکنیم.
ساده ترین ماژول ESP8266 درواقع ESP-01 هست و مدل های دیگه ای مثل ESP8266-12E, ESP8266-12F, ESP-07 ,... هم داره.
اما برای شروع پیشنهاد میکنم هیچ کدوم از این موارد بالا رو نگیرید! چرا؟ چون پروگرم کردن اون دردسره! (البته روش دقیق پروگرمر کردن اونها رو هم در آینده میگم)
برای پروگرم کردن اون باید یک سری پایه ها رو زمین کنید و یک سری به VCC وصل کنید،(pull-up & pull-down) ماژول رو ریست کنید، با با پورت سریال کدتون رو آپلود کنید :| تازه بعد هر بار پروگرم کردن باید اتصالات رو عوض کنید و دوباره ماژول رو ریست کنید تا کد شما رو اجرا کنه! ولمون کن!
به جاش از NodeMCU استفاده کنید.
NodeMCU
برد nodeMCU (یا همون ماژول) در واقع یک ESP8266-12E هست که در کنار اون یک آی سی USB به سریال CH340G یا CP2102 قرار گرفته و کار پروگرم کردن ESP رو راحت می کنه. همچنین میتونید روی برد بورد از اون استفاده کنید. (خود ماژول های ESP رو نمیشه مستقیما روی برد بورد قرار داد!)
راستی ماژول های ESP همه 3.3v هستند (به قول برقیا تری وی تری 3v3!) اما NodeMCU این کار رو هم راحت کرده و یک رگولاتور AMS1117-3.3v داره پس میتونید با خیال راحت با یک کابل Micro-USB اونو تغذیه کنید.
دیگه بگم براتون که منطق ولتاژی ESP همیشه و همه جا 3.3 ولت هست حتی توی ارتباط سریال! پس وقتی میخواهید به Arduino اونو وصل کنید (منطق آردوینو های معمولی 5 ولته) مشکل پیدا میکنید که در NodeMCU پایه های RX و TX دارای Level-Shifter هستند.
- توی پرانتز: ماژول Wemos D1 mini , Wemos D1 هم خوبن همه کار های NodeMCU رو انجام میدن و حافظه فلش بیشتری هم دارن ولی خب NodeMCU معروف تره.
- توی پرانتز تر: NodeMCU هایی هستند که هسته اونها ESP8266 نیست و ESP32 هست. بعدا با ESP32 آشنا میشیم
حالا بازم مثل من NodeMCU نخرید و برید خود ماژول ESP رو بخرید :)
برنامه نویسی ESP
تا اینجا فهمیدیم که ESP رو باید با پورت سریال پروگرم کرد اما کدش کو؟
ماژول های ESP رو می تونید با ide آردوینو برنامه نویسی کنید! آردوینو دوست ندارید؟ پایتون به دادتون میرسه! ولی فعلا آردوینو رو ترجیح میدم (البته آردوینو و پایتون تنها زبان های برنامه نویسی ESP نیستند و چیز های دیگه هم وجود داره مثل LUA و ...)
در آینده مفصل درمورد کانفیگ IDE آردوینو برای پروگرم کردن ESP صحبت می کنیم. الان وقت خزانه! پس یکم درمورد توانایی های ESP بگم براتون D:
قابلیت های ESP
- میتونه در 3 مود SoftAP، Station و SoftAP + Station کار کنه یعنی میتونه وصل بشه به یک شبکه وای فای (مثلا مودم یا هات اسپات گوشی) یا خودش یک شبکه وای فای درست کنه و یا هر دو اینها!
- میتونه با اتصال به مودم و تبعاً اینترنت اطلاعاتی رو از یک سایت بخونه یا حتی بنویسه توی اون سایت! حتی میتونه به دیتابیس وصل بشه (مثل MySQL و Redis)
- میتونه یک وب سرور برای شما اجرا کنه، یعنی یک آدرس رو میزنید توی مرورگر وبتون و یک صفحه وب رو نشون میده که مثلا شامل دوتا کلید هست OFF , ON و لامپ اتاقتون رو موقع خواب با گوشی خاموش روشن کنید! البته منم که اصن تنبل نیستم!
- یک مدیا سنتر کوچیک باش راه اندازی کنید
- با پروتکل های TCP و UDP ارتباط دیتا رو بین چند دیوایس جا به جا کنید.
- فایلی رو برای دانلود بگذارید یا فایلی رو آپلود کنید.
- میتونید از طریق وای فای پروگرمش کنید و حتی سریال مانیتور رو تحت وب باز کنید :))
- میتونید رباتتون رو با وای فای کنترلر کنید.
- تبدیلش کنید به یک ریپیتر شبکه وای فای.
- باهاش یه پروژه کوچیک خانه هوشمند درست کنید.
- آقا خودش میکروکنترلره!
- و...
خیلی آردوینو، آردوینو کردم! اگه دوست دارین با اون آشنا بشید و IDE اون رو نصب کنید پست امیرمسعود رو بخونید.
در قسمت دوم، ماژول های مختلف ESP رو بررسی خواهیم کرد. پس با ما همراه باشید
مطلبی دیگر از این انتشارات
آشنایی با سخت افزار ESP8266
مطلبی دیگر از این انتشارات
بهانه ای برای ورود به دنیای امبدد سیستم ها (IV)
مطلبی دیگر از این انتشارات
راه اندازی وب سرور غیر همزمان(Async) با ESP8266