در آموزشهای قبلی AT-COMMAND های ماژول ESP8266 به صورت کامل توضیح داده شد و همجنین ماژول در مد کلاینت راهاندازی شد. در این قسمت قصد داریم این ماژول را در مد client قرار دهیم و آن را به یک گوشی اندرویدی متصل کنیم. یعنی گوشی اندرویدی Android در حالت سرور قرار گرفته و به تبادل دیتا بپردازیم. در ادامه آموزش کار با برد ESP8266 با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
آموزش راهاندازی ماژول Wifi ESP 8266 آردوینو بخش اول(at command ها)
آموزش ماژول wifi ESP 8266 آردوینو بخش دوم(at command ها)
آموزش ماژول WIFI esp8266 آردوینو بخش سوم (ماژول در خالت سرور قرار میگیرد)
اتصالات برد ESP8266 برای اندروید
آزایش پینهای برد esp8266 در بخش اول معرفی شده اند. اگر با پایههای برد ESP8266 آشنایی ندارید. به آموزش مربوطه مراجعه کنید.
- RXبه پین شماره ۳ متصل شود
- TX به پین شماره ۲ متصل میشود
- VCC به ۳٫۳ولت متصل شود ( به هیچ عنوان به ۵ ولت متصل نشود )
- GND به GND آردوینو
- پین RESET و همجنین CH_PD نیز به ۳٫۳ ولت منصل شود
- GPIO-0 و GPIO-2 بدون اتصال باشند
کدهای آردوینو برد ESP8266 اندروید
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
سریال مانیتور نرم افزار آردوینو را باز کنید و همانند تصویر زیر آن را تنظیم کنید.. سپس مراحل زیر رابه ترتیب طی کنید. ابتدا بادریت سریال مانیتور را روی ۱۱۵۲۰۰ تنظیم کنید. سپس وای فای گوشی را روشن کنید و access point ها اطراف خود را جست و جو کنید و به وای فایی به نام AL-THINKER_0F04D متصل شوید. مانند تصویر زیر:
اکنون باید توسط دستور AT+CWMODE ماژول را در دوحالت استیشن و اکسس پوینت قرار دهیم. برای این منظور در سریال مانیتور نرم افزار آردوینو عبارت زیر را وارد کنیم:
AT+CWMODE=3
سپس باید توسط دستور زیر ارتباط چندگانه را فعال کنیم.
AT+CIPMUX=1
هم اکنون باید یک نوع کانکشن از توع TCP ایجاد کنیم ، برای این منظور نیاز به ip تلفن همراه و همچنین شماره پورت گوشی همراه داریم.نرمافزار socket protocol را از لینک زیر دانلود کنید. دانلود نرمافزار socket_protocol برای بدست آوردن ip تلفن همراه خود ، در نرمافزار socket protocol وارد قسمت setting & help شوید. در این قسمت شما ip تلفن همراه خود را مشاهده میکنید.
بعد از این کار باید وارد قسمت سرور شوید و در port listen to یک شماره ۴ رقمی برای ایجاد پورت وارد کنید و سپس بر روی listen کلیک کنید.به عنوان مثال ما از پورت ۸۸۸۸ استفاده و بر روی listen کلیک میکنیم.
بعد از کلیک کردن بر روی listen در صورتی که عملیات ایجاد پوردت با موفقیت انجام شده باشد، عبارت socket in listen نمایش داده می شود.
اکنون شما ip و شماره پورت مورد نیاز برای ایجاد یک ارتباط با پروتکل TCP را در اختیار دارید . حال توسط دستور زیر این ارتباط را ایجاد میکنیم:
AT+CIPSTART=0,"TCP",192.168.4.2",8888
در صورتی که عملیات با موفیت انجام شده باشد شما باید ok را در سریال مانیتور نرمافزار دریافت کنید.
ارسال دیتا از موبایل به برد ESP8266
اکنون ماژول esp8266 شما با موفقیت در مد کلابنت قرار گرفته است . حال برای ارسال اطلاعات از گوشی موبایل به ماژول ، در قسمت Send to client عبارت مورد نظر را وارد کنیم و سپس بر روی send کلیک کنیم.بعد از این کار عبارت مورد نظر شما بر روی سریال مانیتور نرمافزار آردوینو نمایش داده میشود.برای مثال ما عبارت digispark را در قسمت send to client مینویسم و سپس بر روی send کلیک میکنیم.
بعد از ارسال ، رشته مورد نظر به صورت زیر بر روی سریال مانیتور نرمافزار آردوینو به نمایش در میآید.
همانظور که مشاهده میکنید دیتایی با مقدار +IPD,0,8:digispark دریافت شده است. که عدد ۰ ، آی دی شماره اتصال و عدد ۸ هم طول کاراکتر دریافتی میباشد.
ارسال دیتا از آردوینو به برد ESP8266
برای ارسال دیتا از ماژول به تلفن همراه ابتدا باید طول رشته خود را بدست بیاوریم و توسط دستوری به شکل زیر آن را ارسال کنیم:
AT+CIPSEND=id,length
id: آی دی اتصال
length :طول رشتهای که میخواهیم ارسال کنیم.
فرض کنید میخواهیم عبارت digispark را از ماژول به تلفن همراه ارسال کنیم برای این منظور ابتدا طول رشته متن مورد نظر را بدست میآوریم.عبارت digispark از ۹ حرف تشکیل شده است پس برای ارسال آن ابتدا باید دستور زیر را ترمینال نرم افزار آردوینو وارد کنیم:
AT+CIPSEND=0,9
منتظر میمانیم تا ok و علامت < را دریافت کنیم(همانند تصویر زیر):
سپس عبارت digispark را در ترمینال وارد میکنیم و بر روی send کلیک میکنیم. همانطور که مشاهده میکنیم عبارت digispark بر روی تلفن همراه شما به نمایش در میآید.
سخت افزار مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
رای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
آموزش خوب و جامعى بود، دمتون گرم
سلام
آیا میتوان ماژول واى فاى ٨٢۶۶ را بدون آرداینو راه اندازى کرد؟
سلام بله امکانش وجود داره
حتی شما میتونین روش برنامه کامپایل کنید و از اون به صورت یک میکرو کنترلر استفاده کنید
سلام
آقای قربانی میشه نحوه کامپایل برنامه روی ماژول esp8266 رو توضیح بدین، با چه نرم افزاری وچطوری؟
بادریت این ماژول رو توسط at کامند تغییر داده و روی ۵ مگابیت گذاشتیم دیگه با ارسال کامند عبارت ok ارسال نمیشه و فقط با ریست نمودن ماژول درنرم افزار پورت سریال یه چیزی نشون میده ولی عبارت ready ظاهر نمیشه.
لطفا” راهنمائی کنید.
سلام ممنون از مثال خوبتون.
اگه امکانش هست یه مثال از نحوه اتصال esp وبرای کار با IOT بزارین..
سلام به زودی آموزش داده میشه
به زودی شما بعد از ۵ مااه هنوز تموم نشده؟!؟
سلام اگه امکانش هست نحوه کار با این ماژول رو در مد اینترنت اشیاء(iot) آموزش بدید با تشکر از سایت خوبتون
سلام اگه امکانش هست نحوه کار با این ماژول رو در مد اینترنت اشیاء(iot) آموزش بدید با تشکر از سایت خوبتون
سلام
به زودی آموزش داده میشه
آقا ما منتظر مثال از iot با این ماژول هستیما
سلام آقای مهندس. یه سوال داشتم ازتون اینکه میشه چند تا ماژول رو همزمان به گوشی اندرویدی وصل کرد در حالت اکسس پوینت؟ یعنی از تو گوشی یه کدی رو ارسال کنی بعد گوشی به تمام ماژولها این کد رو ارسال کنه. برای مثال یکی از ماژولها به کولر وصل هست، یکی به درب حیاط و … خوب دیگه بقیه کار هم معلومه. یعنی به معنای واقعی اتوماسیون خانگی رو اجرا کنی. ممنون میشم از توجه شما.
با سلام
ممنون از آموزش خوبتون.
من نیاز دارم که با esp8266 به یک آدرس وب مراجعه کنم. فقط در همین حد کار من رو را میندازه.
تا اینجا که تلاش کردم فقط به آدرس اصلی میتونم برم، مثلا google.com
اما میخوام بتونم به
https://www.google.com/imghp?hl=en&tab=wi&ei=CyVUV8uxCoWRaLDBrqgL&
ved=0EKouCBUoAQ
این آدرس برم برای مثال.
راه نمایی بفرمایید ممنون میشم.
سپاس
با سلام و تشکر.
آقا بنده با یک مشکل عجیب مواجه شدم که بدجوری سر در گریبان جیب فرو بردم و نتیجه ای حاصل نشده اگر کمک کنید مرا عمری بنده خود نموده اید. اما مشکل: ماژول در ارتباط با مبدل USB2SERIAL کامپیوتر عالی کار می کنه. از طرف دیگر میکرو ATMEGA 8 هم همین طور یعنی با کامپیوتر عالی کار می کنه. امااااا وقتی میکرو را به ماژول وصل می کنم اطلاعات از میکرو به درستی به ماژول ارسال میشه و ماژول بعد از دریافت اطلاعات ok میفرسته اما این پیغام OK در میکرو به صورت کارکتر های نامفهوم دریافت میشه ( در ضمن RX مبدل usb2serial را به rx میکرو زدم و در کامپیوتر می بینم که ماژول دستور را از میکرو به درستی دریافت و OK ارسال می کنه اما در lcd میکرو نامفهوم نشون می ده) . حقیر هنوز در منسب شاگردی بوده و با BASCOM برنامه نوشتم. خودم فکر می کنم باید از کریستال خارجی استفاده کنم. لطفا راهنمایی بفرمایید. بسیار میشکرم
سلام من ماژول ESP8266 را به صورت web server راه اندازی کردم. بطور مثال از طریق موبایل فرمان میدهم تا یک LED روشن شود. مشکل من اینست که وقتی برق قطع و وصل میشود آن LED را که قبلا فرمان داده بودم روشن شود دیگر روشن نیست. و دوباره باید فرمان دهم تا روشن شود. انگار وقتی برق قطع و وصل میشود ماژول ریست میشود و کد ها را دوباره از اول میخواند. من میخواهم هر فرمانی را که به ماژول میدهم در حافظه اش ذخیره شود به طوری که وقتی برق قطع و وصل شد ماژول همان فرمان هایی را که قبلا از طریق موبایل بهش داده بودم دوباره اجرا کند.
سلام دوست عزیز. شما می توانید اخرین وضعیت برد را در حافظه EEPROM تعبیه شده روی برد استفاده نمایید و با هربار روشن شدن برد متغیر ها را از روی حافظه مقدار دهی نمایید.
دو مثال برای خواند و نوشتن روی حافظه در لینک های زیر موجود می باشد.
https://www.arduino.cc/en/Tutorial/EEPROMRead
https://www.arduino.cc/en/Tutorial/EEPROMWrite
با سلام
از اینکه در تبادل نظر با دیگر کاربران شرکت میکنید، سپاسگزارم.
سلام
آقای قربانی من ورژن ۱۲ این ماژول رو خریدم و از طریق کابل یو اس بی وصلش کردم به سیستم و طبق آموزش شما ماژول رو فلش کردم
حالا برای بعضی از دستورات مثل AT , AT+CWMODE جواب میده ولی مثلا برای بعضی دستورات دیگه مثل
AT+CWLAP , ATJAP اینها همه ارور برمیگردونه تنظیمات هم دقیق هست و با بادریت های مختلف تست کردم چندین بار فلش زدم ولی درست نشد توی مدهای مختلف بردم ماژول رو ولی در همه اون مد ها این مشکل وجود داره
سلام آقای مهندس ممنون بابت آموزش های جامع و کامل اگر امکانش هست آموزش راه اندازی یک یا چند رله را توسط ماژول وایفای ۸۲۶۶ آموزش دهید با تشکر فراوان
سلام
می خواستم با wifi و گوشی اندروید لامپ خاموش و روشن کنم لطفا راهنمایی کنید
می توان از wifi مودم خانه به آردینو وصل کرد
با سلام
هرکاری میکنم در SERIAL MONITOR چیزی نوشته نمیشه
بادریت را چک نماییید
سلام.
من میخوام از یک سنسور اطلاعات بفرستم به یک لب تاب که البته با اردیونو این کار را میخوام انجام بدم.چطوری میشه این کار را انجام داد؟
با سلام
برای این کار میتوانید از همین ماژول ESP8266 استفاده کنید. اطلاعات سنسور را از طریق همان برد بر روی بستر اینترنت ارسال کنید. به عنوان مثال میتوانید از طریق پروتکل MQTT دیتای سنسور را روی سرور ارسال و سپس از طریق لپ تاپ و با همان پروتکل MQTT دیتا را دریافت کنید. آموزشهای مربوط به این شیوه با برد رزبری پای در حال انتشار است.
سلام من مطابق روند بالا کار کردم اما موقع ایجاد ارتباط پیغم خطای ip error رو دریافت میکنم؟باید چکار کنم
در مد سرور ارتباط برقرار میشه اما در مد کلاینت این خطا رو میده
با سلام
ضمن تشکر از توجه شما و عذرخواهی بابت تاخیر در پاسخگویی، لطفا عملیات و کامندها را قرار دهید.
سلام و ممنون از اموزش های خوبتون
بخش اول آموزش لینکش موجود نمیباشد. ممنون میشم اصلاحش کنید.
با سلام
ضمن تشکر از توجه شما، لینک آموزش اصلاح شد.
سلام
من داشتم با استفاده از اموزش شما ماژول وای فای رو راه اندازی میکردم
ولی
این کد رو مینوشتم ایرور میداد
AT+CIPSTART=0,”TCP”,192.168.4.2″,8888
ممنون میشم کمک کنید
با سلام
از توجه شما سپاسگزارم، لطفا ارور دریافتی را ارسال کنید.
سلام
برای من که با اضافه کردن یک کوتیشن دوتایی به ابتدای ip آدرس درست کار کرد
به این صورت:
AT+CIPSTART=0,”TCP”,”192.168.4.2″,8888
با سلام
با تشکر از اطلاعاتی که در اختیار دیگران میگذارید .خواهشمندم در ارتباط با ارسال و دریافت تصاویر با این ماژول نیز توضیح دهید با تشکر
با سلام
ضمن تشکر از توجه و دقت شما، در مورد ارسال تصویر به صورت پیشفرض در کتابخانه مستر یک سری کدهست، در ابتدا و قبل از انتشار آموزش مربوطه میتوانید از آنها استفاده کنید.
با سلام من این برنامه و چند برنامه ی دیگر را تست کردم ولی در سریال مانیتور عبارت OK دریافت نمیشود. از طریق ماژول USB به UART دیتاهای ارسالی و دریافتی به ماژول قابل مشاهده است و کاملا صحیح ارسال و دریافت میشود. ولی در نرم افزار آردویینو به داده های دریافتی از ماژول ESP دسترسی ندارم.( نه به عبارت OK دسترسی دارم و نه به دیتایی که از طریق نرم افزار سوکت پروتکل به ماژول میفرستم)
لطفا راهنمایی کنید
سلام
اگر با ماژول راه انداز وای فای ESP8266 با پورت USB موارد صحیح است و بدون آن نمیتوانید ارتباط برقرار کنید. مشکل از اتصالات میباشد.
با سلام
جهت رفع این مشکل چه کاری باید انجام بدم؟
AT+CIPSEND=0,9
link is not valid
ERROR
با سلام
عبارتی که میخواهید SMS کنید چند کاراکتر دارد؟
سلام وقتی این دستور رو میفرستم اینو پاسخ میده
به نظر شما مشکل کجاست…؟
AT+CIPSEND=0,1
link is not
با سلام
در ابتدا میبایست آخرین نسخه firmware را نصب کنید. سپس در ابتدا کامند AT+CIPMUX=1 را وارد کنید. پس از آن AT+CIPSTART=0 وارد کنید. حال پس از دریافت ip و شماره پورت مطابق با آموزش پیش رفته و نتیجه را اعلام کنید.
سلام برای ارسال یک رشته از ATmega به موبایل توسط esp8266 چطوری عمل میکنیم اگه میشه مثلا salam رو با codevision بفرستید به socket protocol فقط میخام فرمت کد رو بدونم.توی سایت این مطلب توضیح داده نشده.
سلام،
داخل کدویژن هم به همین ترتیب باید عمل کنید با این تفاوت که دستور مربوطه باید داخل تابع printf(“AT Command”,13); نوشته شود.
ممنونم بله همین کارو کردم حل شد
باسلام. من این ماژول را بامبدلUSB به TTLبه کامپیوتر وصل کردم یه سری دستورات یا همون AT COMMANDهارا جواب میده مثل ATو AT+GMRولی بقیه دستورات را ERROR برگشت میده همه دستورات را هم با حروف بزرگ مینویسم. نمیدونید مشکلش چیه؟
با سلام
این دستور فقط نمایش دهنده ورژن ماژول میباشد. پیشنهاد میشود از طریق آموزش کار با دستورات At Command برد Esp8266 ماژول Wifi بخش اول
موارد را پیش ببرید، سپس نتیجه را از همین طریق اعلام بفرمایید.
من زمانی که از این دستورAT+CIPSTART=0,”TCP”,192.168.4.2″,8888 استفاده میکنم ارور میگیرم.چکارکنم؟ip مخصوص گوشیم را میزنم اما فایده نداره؟
سلام
پیشنهاد میکنم شماره پورت را ۸۰ قرار دهید در هر دو سمت گوشی و ماژول
سلام وقت بخیر
بنده تمام مراحل را بصورت کامل و دقیقا مطابق با آموزش جنابعالی انجام دادم،
در ارسال دیتا از ماژول esp به نرم افزار اندرویدی مشکلی نیست، اما در هنگام ارسال از نرم افزار سوکت پروتکل به ماژول چنین اروری ظاهر میشود:
android.os.network on main thread exception.
ممنون میشم راهنمایی کنید
برای این مورد، حتما دقت کنید که آدرس سرور ESP در نرم افزار به درستی وارد شده باشد. در نرم افزار سوکت پروتکل، پیش از آی پی آدرس ماژول ESP، عبارت http:// قرار دهید و مورد را تست کنید. در صورتیکه نتیجه نگرفتید، به جای پورت ۸۸۸۸ از پورت ۸۰ استفاده کرده و مورد را امتحان کنید. البته در قسمت ESP نیز پورت ۸۰ تنظیم شود.
سلام…خسته نباشید…من وقتی send رو میزنم توی سوکت ارسال نمیکنه و این ارور رو مینویسه
Android.os.network on main thread exception
ممنون میشم راهنمایی کنید
با سلام
لطفا سوالتان را در پست زیر مطرح کنید.
راه اندازی و کار با ماژول ESP8266، بخش چهارم: مد STA و دریافت IP
سلام با تشکر از توضیحات خوبتون من یه سوال داشتم فرق بین اینکه ماژول سرور باشه یا دستگاه اندرویدی چیه؟ برای کنترل وسایل و گرفتن فیدبک از کدوم حالت باید استفاده کرد؟
سلام
در همه حالت برای گرفتن فیدبک ماژول باید سرور باشد. سرور مانند حالتی است که می خواهیم به سرور یک دانشگاه متصل شویم و از آن داده دریافت کنیم.