آردوینو آردوینو Arduino Uno برد ESP8266 پروژه های آردوینو

استفاده از برد ESP8266 در مد کلاینت Client جهت ارسال به سرور اندرویدی

esp8266- Arduino
نوشته شده توسط علیرضا قربانی

در آموزش‌های قبلی 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 بدون اتصال باشند

 

اتصال ماژول wifi esp8266 به آردوینو

 


کدهای آردوینو برد ESP8266 اندروید


 

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

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

سریال مانیتور نرم افزار آردوینو را باز کنید و همانند تصویر زیر آن را تنظیم کنید.. سپس مراحل زیر رابه ترتیب طی کنید. ابتدا بادریت سریال مانیتور را روی ۱۱۵۲۰۰ تنظیم کنید. سپس وای فای گوشی را روشن کنید و access point ها اطراف خود را جست و جو کنید و به وای‌ فایی به نام AL-THINKER_0F04D متصل شوید. مانند تصویر زیر:

esp8266 wifi arduino

اکنون باید توسط دستور  AT+CWMODE ماژول را در دوحالت استیشن و اکسس پوینت قرار دهیم. برای این منظور در سریال مانیتور نرم افزار آردوینو عبارت زیر را وارد کنیم:

AT+CWMODE=3

esp8266 wifi arduino

سپس باید توسط دستور زیر  ارتباط چندگانه را فعال کنیم.

AT+CIPMUX=1

esp8266 wifi arduino

هم اکنون باید یک نوع کانکشن از توع TCP ایجاد کنیم ، برای این منظور نیاز به ip تلفن همراه و همچنین شماره پورت گوشی همراه داریم.نرم‌افزار socket protocol را از لینک زیر دانلود کنید. دانلود نرم‌افزار socket_protocol برای بدست آوردن ip تلفن همراه خود ، در نرم‌افزار socket protocol وارد قسمت setting & help شوید. در این قسمت شما ip تلفن همراه خود را مشاهده می‌کنید.

esp8266 wifi arduino

بعد از این کار باید وارد قسمت سرور شوید و در port listen to یک شماره ۴ رقمی برای ایجاد پورت وارد کنید و سپس بر روی listen کلیک کنید.به عنوان مثال ما از پورت ۸۸۸۸ استفاده و بر روی listen کلیک می‌کنیم.

esp8266 wifi arduino

 

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

4

 

اکنون شما ip و شماره پورت مورد نیاز برای ایجاد یک ارتباط با پروتکل TCP را در اختیار دارید . حال توسط دستور زیر این ارتباط را ایجاد می‌کنیم:

AT+CIPSTART=0,"TCP",192.168.4.2",8888

esp8266 wifi arduino

در صورتی که عملیات با موفیت انجام شده باشد شما باید ok را  در سریال مانیتور نرم‌افزار دریافت کنید.

esp8266 wifi arduino

 


ارسال دیتا از موبایل به برد ESP8266


اکنون ماژول esp8266 شما با موفقیت در مد کلابنت قرار گرفته است . حال برای ارسال اطلاعات از گوشی موبایل به ماژول ، در قسمت Send to client عبارت مورد نظر را وارد کنیم و سپس بر روی send کلیک کنیم.بعد از این کار عبارت  مورد نظر شما بر روی سریال مانیتور نرم‌افزار آردوینو نمایش داده می‌شود.برای مثال ما عبارت digispark را در قسمت send to client می‌نویسم و سپس بر روی send کلیک می‌کنیم.

esp8266 wifi arduino

بعد از ارسال ، رشته مورد نظر به صورت زیر بر روی سریال مانیتور نرم‌افزار آردوینو به نمایش در می‌آید.

esp8266 wifi arduino

همانظور که مشاهده می‌کنید دیتایی با مقدار +IPD,0,8:digispark دریافت شده است. که عدد ۰  ، آی دی شماره اتصال و عدد ۸ هم طول کاراکتر دریافتی می‌باشد.

 


ارسال دیتا از‌ آردوینو به برد ESP8266


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

AT+CIPSEND=id,length

id: آی دی اتصال

length :طول رشته‌ای که می‌خواهیم ارسال کنیم.

فرض کنید می‌خواهیم عبارت digispark را از ماژول به تلفن همراه ارسال کنیم برای این منظور ابتدا طول رشته متن مورد نظر را بدست می‌آوریم.عبارت digispark از ۹ حرف تشکیل شده است پس برای ارسال آن ابتدا باید دستور زیر را ترمینال نرم افزار آردوینو وارد کنیم:

AT+CIPSEND=0,9

منتظر می‌مانیم تا ok و علامت < را دریافت کنیم‌(همانند تصویر زیر):

esp8266 wifi arduino

سپس عبارت digispark را در ترمینال وارد می‌کنیم و بر روی  send کلیک می‌کنیم. همانطور که  مشاهده می‌کنیم عبارت digispark بر روی تلفن همراه شما به نمایش در می‌آید.

esp8266 wifi arduino

 


سخت افزار مورد نیاز


آردوینو UNO

ماژول وای‌فای esp8266

 

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

 

پروژه و دریافت بن ارسال رایگان

رای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۵۲ دیدگاه

  • سلام
    آقای قربانی میشه نحوه کامپایل برنامه روی ماژول esp8266 رو توضیح بدین، با چه نرم افزاری وچطوری؟
    بادریت این ماژول رو توسط at کامند تغییر داده و روی ۵ مگابیت گذاشتیم دیگه با ارسال کامند عبارت ok ارسال نمیشه و فقط با ریست نمودن ماژول درنرم افزار پورت سریال یه چیزی نشون میده ولی عبارت ready ظاهر نمیشه.
    لطفا” راهنمائی کنید.

  • سلام ممنون از مثال خوبتون.
    اگه امکانش هست یه مثال از نحوه اتصال esp وبرای کار با IOT بزارین..

  • سلام اگه امکانش هست نحوه کار با این ماژول رو در مد اینترنت اشیاء(iot) آموزش بدید با تشکر از سایت خوبتون

  • سلام اگه امکانش هست نحوه کار با این ماژول رو در مد اینترنت اشیاء(iot) آموزش بدید با تشکر از سایت خوبتون

  • سلام آقای مهندس. یه سوال داشتم ازتون اینکه میشه چند تا ماژول رو همزمان به گوشی اندرویدی وصل کرد در حالت اکسس پوینت؟ یعنی از تو گوشی یه کدی رو ارسال کنی بعد گوشی به تمام ماژولها این کد رو ارسال کنه. برای مثال یکی از ماژولها به کولر وصل هست، یکی به درب حیاط و … خوب دیگه بقیه کار هم معلومه. یعنی به معنای واقعی اتوماسیون خانگی رو اجرا کنی. ممنون میشم از توجه شما.

  • با سلام
    ممنون از آموزش خوبتون.
    من نیاز دارم که با esp8266 به یک آدرس وب مراجعه کنم. فقط در همین حد کار من رو را میندازه.
    تا اینجا که تلاش کردم فقط به آدرس اصلی میتونم برم، مثلا google.com
    اما میخوام بتونم به
    https://www.google.com/imghp?hl=en&tab=wi&ei=CyVUV8uxCoWRaLDBrqgL&amp;
    ved=0EKouCBUoAQ
    این آدرس برم برای مثال.
    راه نمایی بفرمایید ممنون میشم.
    سپاس

  • با سلام و تشکر.
    آقا بنده با یک مشکل عجیب مواجه شدم که بدجوری سر در گریبان جیب فرو بردم و نتیجه ای حاصل نشده اگر کمک کنید مرا عمری بنده خود نموده اید. اما مشکل: ماژول در ارتباط با مبدل USB2SERIAL کامپیوتر عالی کار می کنه. از طرف دیگر میکرو ATMEGA 8 هم همین طور یعنی با کامپیوتر عالی کار می کنه. امااااا وقتی میکرو را به ماژول وصل می کنم اطلاعات از میکرو به درستی به ماژول ارسال میشه و ماژول بعد از دریافت اطلاعات ok میفرسته اما این پیغام OK در میکرو به صورت کارکتر های نامفهوم دریافت میشه ( در ضمن RX مبدل usb2serial را به rx میکرو زدم و در کامپیوتر می بینم که ماژول دستور را از میکرو به درستی دریافت و OK ارسال می کنه اما در lcd میکرو نامفهوم نشون می ده) . حقیر هنوز در منسب شاگردی بوده و با BASCOM برنامه نوشتم. خودم فکر می کنم باید از کریستال خارجی استفاده کنم. لطفا راهنمایی بفرمایید. بسیار میشکرم

  • سلام من ماژول ESP8266 را به صورت web server راه اندازی کردم. بطور مثال از طریق موبایل فرمان میدهم تا یک LED روشن شود. مشکل من اینست که وقتی برق قطع و وصل میشود آن LED را که قبلا فرمان داده بودم روشن شود دیگر روشن نیست. و دوباره باید فرمان دهم تا روشن شود. انگار وقتی برق قطع و وصل میشود ماژول ریست میشود و کد ها را دوباره از اول میخواند. من میخواهم هر فرمانی را که به ماژول میدهم در حافظه اش ذخیره شود به طوری که وقتی برق قطع و وصل شد ماژول همان فرمان هایی را که قبلا از طریق موبایل بهش داده بودم دوباره اجرا کند.

  • سلام
    آقای قربانی من ورژن ۱۲ این ماژول رو خریدم و از طریق کابل یو اس بی وصلش کردم به سیستم و طبق آموزش شما ماژول رو فلش کردم
    حالا برای بعضی از دستورات مثل AT , AT+CWMODE جواب میده ولی مثلا برای بعضی دستورات دیگه مثل
    AT+CWLAP , ATJAP اینها همه ارور برمیگردونه تنظیمات هم دقیق هست و با بادریت های مختلف تست کردم چندین بار فلش زدم ولی درست نشد توی مدهای مختلف بردم ماژول رو ولی در همه اون مد ها این مشکل وجود داره

  • سلام آقای مهندس ممنون بابت آموزش های جامع و کامل اگر امکانش هست آموزش راه اندازی یک یا چند رله را توسط ماژول وایفای ۸۲۶۶ آموزش دهید با تشکر فراوان

  • سلام
    می خواستم با wifi و گوشی اندروید لامپ خاموش و روشن کنم لطفا راهنمایی کنید
    می توان از wifi مودم خانه به آردینو وصل کرد

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

    • با سلام
      برای این کار میتوانید از همین ماژول 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 دسترسی دارم و نه به دیتایی که از طریق نرم افزار سوکت پروتکل به ماژول میفرستم)
    لطفا راهنمایی کنید

  • سلام وقتی این دستور رو میفرستم اینو پاسخ میده
    به نظر شما مشکل کجاست…؟
    AT+CIPSEND=0,1
    link is not

    • با سلام
      در ابتدا می‌بایست آخرین نسخه firmware را نصب کنید. سپس در ابتدا کامند AT+CIPMUX=1 را وارد کنید. پس از آن AT+CIPSTART=0 وارد کنید. حال پس از دریافت ip و شماره پورت مطابق با آموزش پیش رفته و نتیجه را اعلام کنید.

  • سلام برای ارسال یک رشته از ATmega به موبایل توسط esp8266 چطوری عمل میکنیم اگه میشه مثلا salam رو با codevision بفرستید به socket protocol فقط میخام فرمت کد رو بدونم.توی سایت این مطلب توضیح داده نشده.

  • باسلام. من این ماژول را بامبدلUSB به TTLبه کامپیوتر وصل کردم یه سری دستورات یا همون AT COMMANDهارا جواب میده مثل ATو AT+GMRولی بقیه دستورات را ERROR برگشت میده همه دستورات را هم با حروف بزرگ مینویسم. نمیدونید مشکلش چیه؟

  • من زمانی که از این دستور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
    ممنون میشم راهنمایی کنید

  • سلام با تشکر از توضیحات خوبتون من یه سوال داشتم‌ فرق بین اینکه ماژول سرور باشه یا دستگاه اندرویدی چیه؟ برای کنترل وسایل و گرفتن فیدبک از کدوم‌ حالت باید استفاده کرد؟

    • سلام
      در همه حالت برای گرفتن فیدبک ماژول باید سرور باشد. سرور مانند حالتی است که می خواهیم به سرور یک دانشگاه متصل شویم و از آن داده دریافت کنیم.