برد ESP8266 خانه هوشمند میکروکنترلر AVR

مدیریت ماژول ESP8266 از طریق موبایل با AVR و نرم افزار کدویژن Codevision

ESP8266-AVR-Atmega8-codevision-tutorial-with-mobile-app-digispark
نوشته شده توسط علی زاهدی

امروزه ماژول ESP8266 کاربرد بسیار زیادی در هوشمند سازی و کنترل از راه دور دارد. برنامه نویسی برای ماژول ESP8266 با AVR توسط تراشه Atmega8 بسیار جداب خواهد بود. یکی از انواع میکروکنترلرهای پرمصرف مربوط به شرکت ATMEL با نام خانواده AVR می‌باشد. این میکروکنترلر ۸ بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر با زبان‌های سطح بالا (HLL) بسیار مورد توجه قرار گرفته‌اند. میکروکنترلر AVR از معماری RISC بهره می‌برد. شرکت ATMEL سعی نموده با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت انجام دستورات را بالا ببرد. در این آموزش قصد داریم با استفاده از میکروکنترلر Atmega8 ، ماژول esp8266 را بصورت سرور راه اندازی و با استفاده از موبایل یک LED را روشن و خاموش کنیم. در ادامه این آموزش با مرجع تخصصی امبدد سیستم‌ها به زبان فارسی، دیجی اسپارک همراه باشید.

 


۱ – برد وای فای ESP8266


مشخصات ماژول esp8266

برد esp8266 یک ماژول Wifi بسیار ارزان قیمت و مناسب برای انواع پروژه‌های کاربردی است. ساخت شرکت چینی Espressif می‌باشد. از کاربردهای اصلی ماژول ESP8266 می توان به کنترل ربات‌ها و وسایل به صورت Wifi، هوشمند سازی ساختمان ، سیستم‌های IOT و بسیاری کاربرد دیگر اشاره کرد. پروتکل ارتباطی برای ماژول درگاه سریال است که همین امر باعث سادگی استفاده و محبوبیت esp8266 شده است .این ماژول جهت فراهم کردن ارتباط بی سیم Wifi به اینترنت می باشد و از طریق پروتکل سریال با میکروکنترلر ها و بردهای کنترلی همچون آردوینو و رزبری پای ارتباط برقرار می کند. با استفاده از این ماژول می توانید پروژه ی خود را مجهز Wi-Fi کنید.

شماتیک پایه‌های ماژول esp8266 اتصال به آردوینو - دیجی اسپارک

 

اتصالات مدار

  1. پایه‌های VCC و CH_PD ماژول وایفای به ولتاژ مثبت ۳٫۳ ولت
  2. پایه ۹ و ۱۰ میکروکنترلر به کریستال ۱۱٫۰۵۹۲ مگاهرتز
  3. TX ماژول وایفای به پایه ۲ میکروکنترلر (RX)
  4. پایه ۷ میکروکنترلر به ولتاژ مثبت ۵ ولت
  5. پایه ۸ میکروکنترلر به منفی مدار
  6. GND ماژول به منفی مدار
  7. RX ماژول وایفای (با استفاده از دو مقاومت طبق نقشه) به پایه ۳ میکروکنترلر (TX)
  8. پایه ۱۴ میکروکنترلر با استفاده از یک مقاومت ۴۷۰ اهم به آند LED و کاتد LED به منفی مدار

(اتصال vcc ماژول وایفای حتما به ۳.۳v باشد)

اتصالات برای راه اندازی ماژول ESP8266 با AVR و کدویژن - دیجی اسپارک

 


۲ – کدنویسی AVR برای ESP8266


کد AVR در CodeVision

جهت ایجاد پروژه جدید در نرم افزار کدویژن ابتدا نرم افزار را باز کنید و از منو فایل گزینه New را انتخاب کنید. کریستال را روی ۱۱٫۰۵۹۲ مگاهرتز تنظیم کنید. کدهای زیر را کپی کرده و آنحا وارد کنید. سپس از منوی Project گزینه‌ی compile را انتخاب کنید. اگر error مشاهده نکردید، گزینه OK را انتخاب کنید و از همان منو project گزینه Build All را انتخاب کنید. حال برنامه به زبان ماشین ترجمه شده و آن در پوشه‌ای به نام exe در جایی که انتخاب کردید با پسوند hex ذخیره شده است.

 

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

 

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

 

 


۳ – تحلیل کد AVR ESP8266


تحلیل کدهای پروژه ESP8266

ابتدا کتابخانه مربوط به پردازنده را اضافه کردیم. سپس کتابخانه تاخیرها و کتابخانه دستورات مربوط به پیکربندی رشته‌های ارسالی یه ماژول وایفای اضافه شدند. سپس یک متغیر نوع char برای دریافت اطلاعات از ماژول و یک رشته از نوع char برای ارسال اطلاعات به ماژول تعریف کرده‌ایم. خط بعدی مربوط به وقفه دریافت از پروتکل UART میکروکنترلر می‌باشد. زمانی که اطلاعاتی از سوی ماژول ESP8266 به میکروکنترلر ارسال شود؛ برنامه به این قسمت پرش می‌کند. کاراکتر دریافتی را داخل متغیر data دخیره می‌کند. تابع main تابع اصلی برنامه در زبان C می‌باشد. در ابتدای این تابع تنطیماتی همچون تعریف ورودی یا خروجی بودن پورت‌ها و فعال کردن پروتکل‌های میکروکنترلر انجام می‌شود. در این بخش پایه ۱۴ میکروکنترلر را بعنوان خروجی تعریف کرده و پروتکل UART میکروکنترلر را با باودریت ۱۱۵۲۰۰ فعال کرده‌ایم. سپس دستورات مربوط به ساخت سرور را به ماژول وایفای ارسال می‌کنیم. جهت اشنایی با این دستورات می‌توانید به آموزش کار با دستورات At Command برد Esp8266 ماژول Wifi مراجعه کنید. (“asm(“sei# مربوط به فعال کردن وقفه‌ی سراسری می‌باشد. در حلقه‌ی بی‌نهایت مدار شرطی برای دریافت کد هگز ۰۱ تعریف شده است. زمانی که از موبایل این کد ارسال شود وضعیت پایه ۱۴ تغییر می‌کند. توجه داشته باشد درهنگام پروگرام کردن کد روی میکروکنترلر AVR ، فیوزبیت‌ها بر روی کریستال خارجی تنظیم شود.

 


۴- مدیریت ESP8266 با موبایل


اپلیکیشن Socket Protocol

اپلیکیشن برای ارتیاط با ماژول ESP8266 وای فای می‌باشد. این برنامه را می‌توانید از طریق همین لینک از گوگل پلی دانلود و نصب کنید. ابتدا وایفای موبایل خود را روشن کنید و وارد بخش تنظیمات وایفای شوید. به Wifi ماژول که در حالت پیش فرض به نام AI-THINKER است متصل شوید. سپس وارد اپلیکیشن socket protocol شده و به بخش CLIENT رفته و کادرهای IP و PORT را به ترتیب با ۱۹۲٫۱۶۸٫۴٫۱ و ۸۸۸۸ پر کنید. بخش Hex را فعال کرده و ۰۱ را ارسال کنید. کاربرانی که دارای سیستم عامل IOS می باشند می‌توانند با استفاده از این لینک نرم افزار مشابه socket protocol را دانلود و استفاده کنند.

 

اپلیکیشن Socket protocol برای مدیریت ماژول ESP8266 با AVR - Digispark

 


وسایل مورد نیاز


وسایل مورد نیاز مدار

  1. ماژول وایفای مدل esp8266-01
  2. میکروکنترلر ATmega8
  3. کابل فلت
  4. کریستال ۱۱٫۰۵۹۲
  5. LED یا دیود نورانی
  6. مقاومت ۴۷۰ اهم و ۲۲۰ اهم

 

 

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

 


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


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

 

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

 

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

علی زاهدی

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

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

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

۷۵ دیدگاه

  • سلام.
    این ماژول من رو روانی کرده.
    می خوام وقتی عبارت Temp رو به ماژول می فرستم، عبارت ارسالی با IPD,0,6:Test+ مقایسه بشه و اگه همین بود، فلان کار رو انجام بده.
    دریافت رو با وقفه و چک کردن عبارت ارسالی هم با تابعی جداگانه انجام میدم، ولی هیچ جوره نمیشه.
    ممنون میشم راهنمایی کنید.
    کد رو در یک کامنت دیگه می فرستم.

    • سلام باتشکر از توجه شما،
      شما باید کد های داخل وقفه ی USART را پاک کرده و کد رو به صورت زیر بنویسید:

      interrupt [USART_RXC] void usart_rx_isr(void)
      {
      [۱۳]char receive,data;
      int i;
      receive=UDR;
      data[i]=receive;
      i++;
      if(receive==0x0A)i=0;
      }
      و داخل حلقه ی اصلی کد رو بصورت زیر:
      while(1)
      {
      if(data[9]==’T’&&data[10]==’e’&&data[11]==’e’&&data[12]==’t’)دستور مورد نظر;

  • flash unsigned char req_str[]=”+IPD,0,6:Test\r\n”;

    char rx_buffer[15];

    unsigned char rx_index;

    // USART Receiver interrupt service routine
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    char data;
    data=UDR;
    rx_buffer[rx_index]=data;
    if (++rx_index==15) rx_index=0;
    }

    int req_chk()
    {
    static unsigned char comp;
    #asm(“cli”)
    comp=strcmpf(rx_buffer,req_str);
    #asm(“sei”)
    if (comp==0) return 0;
    else return 1;
    }

    void main(void)
    {
    // Declare your local variables here
    int req;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
    UCSRB=(1<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
    UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
    UBRRH=0x00;
    UBRRL=0x67;

    // Global enable interrupts
    #asm("sei")

    while (1)
    {
    // Place your code here
    req=req_chk();
    if (req==0)
    {
    PORTD.7=0;
    delay_ms(1000);
    }
    }
    }

  • روی ماژول ESP8266-01 دستور تغییر بادریت ارسال کردم، متاسفانه بادریت آن بهم ریخت. خواستم بدونم اینکه آیا میشود به روش سخت افزاری بادریت را به همان مقدار پیش فرض کارخانه ای ۱۱۵۲۰۰ برگرداند؟

    • سلام
      اگر با استفاده از At command های ماژول باودریت تغیر کرده باشه مثلا ۹۶۰۰ باید باودریت داخل نرم افزار را به ۹۶۰۰ تغیر داده و دستور AT+CIOBAUD=15200 ارسال کنید.

  • سلام. من وقتی تغذیه مدار رو وصل میکنم ماژول روشن نمیشه ولی وقتی دوباره تغذیه رو قطع میکنم و اینبار پایه TX رو از RX جدا میکنم ماژول روشن میشه و قابلیت کانکت شدن داره…کلا وقتی پایه TX رو به RX وصل میکنم ماژول کار نمیکنه. لطفا راهنمایی کنید…

    • سلام،
      لطفا اتصالات را برسی نموده و از سالم بودن میکروکنترلر و ماژول اطمینان حاصل نمایید.

  • سلام وقتتون بخیر
    من با اینکه عضو سایت شدم هنوز نتونستم به کدها دسترسی پیدا کنم.

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

    • سلام با تشکر از توجه شما،
      شما باید با استفاده از یک رشته کاراکتر های دریافتی از UDR را ذخیره کنید و سپس با استفاده از تابع strstr که در فایل string.h موجود است رشته را با جمله ی مورد نظر خود مقایسه کنید.

      • سلام.
        ممنون از پاسخ دادنتون.
        اگه عضو بشم و کد رو دریافت کنم، میتونید کمکم کنید تا پروژه ام رو تکمیل کنم؟؟؟؟
        آخه پروژه دانشگاهیه و منم زیاد تو برنامه نویسی آیسی اطلاعات ندارم.

        • سلام، مشکلی نیست شما میتونید از طریق همین بخش نظرات با بنده در ارتباط باشید.

          • سلام.
            پس یعنی من اول عضو بشم و کد رو بگیرم و بعدش با شما صحبت کنم؟؟؟
            میتونید کد رو طبق چیزی که من نیاز دارم، واسم تغییر بدین؟؟ (اگه هزینه ای داره، تقبل میکنم)
            واقعا این پروژه واسم خیلی مهمه و وقت کمی دارم.

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

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

                  • سلام.
                    پروژه ام رمز گذار دیجیتالی هست که از طریق گوشی و گیرنده وای فای، رمز ارسال میشه و در صورت تایید، رله فعال میشه.
                    تا بشه هم میخوام رمزش رشته کاراکتری باشه(یعنی حروف انگلیسی).
                    ممنون میشم کمکم کنید.

                    • سلام،
                      شما میتونید داخل برنامه با استفاده از تابع strstr() رمز مورد نظر خود را شرط قرار بدین و سپس یک پورت از میکرو را بعنوان خروجی قرار داده و مقدار ان را داخل شرط تعیین کنید.
                      وقتی داخل موبایل جمله ی صحیح رو ارسال کنید ، خروجی فعال میشه
                      char data[128];
                      int i;
                      interrupt [USART_RXC] void usart_rx_isr(void)
                      {
                      data[i]=UDR;
                      i++;
                      if(i==128)i=0;
                      }
                      و داخل حلقه
                      if(strstr(data,”pass”)PORTX=1;

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

    • سلام، از توجه شما سپاس گزارم.
      باودریت ماژول esp8266 به صورت پیش فرض بر روی ١١۵٢٠٠ تنظیم است و با کلاک داخلی میکرو نمیتوان با ماژول ارتباط برقرار کرد، برای این که نیاز به کریستال نداشته باشین، ابتدا باید ماژول را با استفاده از مبدل usb to ttl به کامپیوتر متصل کنید وبا استفاده از دستور AT+CIOBAUD=9600 باودریت ماژول را به ٩۶٠٠ تغیر دهید، سپس با فرکانس ٨ مگاهرتز داخلی میکرو می توانید ماژول را راه اندازی کنید.

    • سلام،
      اگر ماژول قبلا پروگرام نشده باشد بله با استفاده از پایه های Uart قابل استفاده در این پروژه می باشد، اما اگر ماژول قبلا پروگرام شده باشد دیگر قابل کنترل با AT Command نمی باشد.
      برد Wemos دارای خروجی های بیشتری نسبت به ماژول esp8266-01 می باشد و این قابلیت وجود دارد که بدون نیاز به میکروکنترلر AVR این پروژه رو پیاده سازی کنید.

    • با سلام
      کد داخل متن قرار دارد، ابتدا باید داخل سایت ثبت نام کنید تا به کد ها دسترسی داشته باشین.

  • سلام خسته نباشید دوست عزیز
    عجالتا بنده از این پروژه برای ارتباط وایرلس و ارسال عدد بین دو میکرو AVR میخوام استفاده کنم که کلاینت فقط فرستنده ه عدد هست و سرور اون اعداد رو گرفته و نتایج رو روی ال سی دی نمایش میده ، امکانش هست در مورد تغییراتی که باید انجام بدم راهنمایی بفرمایین.
    متشکرم.

    • با سلام، از توجه شما سپاس گزارم
      سعی میکنیم بزودی در آموزش جدید این این مورد را نیز منتشر کنیم.

  • با عرض سلام،بنده esp-01 را با میکرو avr راه انداختم با ارسال at command ها و درست همه کاری میکند.
    فقط یه سوال چرا وقتی “AT+CIPAP=”192.168.4.3 را میفرستم آی پی عوض نمیشود و ارور برمیگرداند بعضی ها می‌گفتند از ورژن فریمور ماژول هست آیا درست است یا راه حل دیگری دارد؟؟

      • سلام دوباره ،این موضوع حل شد،فریمور ماژول رو آپدیت کردم درست شد.
        حالا یک سوال من که با avr. و at command ها دارم با ماژول کار میکنم،چه طوری میتونم به مودم خونه وصلش کنم و از راه دور به ماژول همون فرمان ها را بدهم که در حالت ارتباط مستقیم بین گوشی و ماژول میدادم
        ممنون

  • با سلام،مشکل قبلی با آپدیت فریمور حل شد/مشکل الان من این است که چطوری با avr و at command ها بتونم ماژول رو از طریق مودم خانه و راه دور فرمان دهم

    • با سلام
      چرا با استفاده از AVR این کار را انجام دهید؟ ماژول ESP8266 خود یک میکروکنترلر قدرتمند است.

      • آخه من برنامه رو با avr نوشته بودم و کار می‌کنه همه پروژه فقط مونده راه انداختن یه وب سرور با میکرو

              • سلام،یک سوال دیگر،در آردینو که ماژول را راه می‌اندازم چرا کد wifi.localip() فقط یک آی پی مشخص به من میده ۱۹۲٫۱۶۸٫۴۳٫۴۱
                این آی پی را چه طوری میتوانم تغییر دهم؟؟
                ممنون

                • با سلام
                  در صورتی که ماژول در مد کاری Station قرار داشته باشد با استفاده از دستور “AT+CIPSTA=”ip ادرس IP ماژول را تغیر دهید.

  • سلام خسته نباشید …
    ممنون میشم کمکم کنید ، گوشی به وای فای وصل میشه ، ولی وقتی ۰۱ رو می خوام ارسال کنم نمیشه مدار رو هم چک کردم درسته

    • با سلام
      با اتصال پایه RX یک مبدل usb to ttl به پایه TX ماژول از صحیح بودن IP و Port اطمینان حاصل کنید.

  • سلام خسته نباشید …
    به وای فای وصل میتونم بشم ،ولی وقتی میرم توی نرم افزار ip و port رو وارد میکنم کانکت نمیشه
    ممنون میشم کمک کنید .

    • با سلام
      لطفا از متصل شدن موبایل به مآژول اطمینان حاصل کنید درصورتی که مشکلی در بخش کانکشن نبود ممکن است مشکل از برنامه باشد. در این صورت نرم افزار TCP/IP to Serial Terminal را دانلود کنید.

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

    • سلام و تشکر از شما
      موردی که مطرح کرده‌اید در زمینه تخصص بنده نیست. ولی از دیگر کاربران که در این‌خصوص‌ تخصص کافی دارند، تقاضا دارم تا در این بحث شرکت کنند.

  • سلام
    خروجی وای فای من بصورت
    +IPD,0,5:EEEEE
    به میکرو است میشه تنظیمات وای فای را طوری تنظیم کرد که IPD را نفرسته تا نیاز به کد نویسی در میکرو نباشه

  • سلام وقتتون بخیر
    بنده یک پروژه با Esp8266 دارم که حسابی کلافم کرده اگر امکتنش هست باتون ارتباط برقرار کنم
    متشکر

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

  • سلام وقت بخیر با ارسال دیتا مشکل دارم با دستور AT+CIPSEND=0,1 عدد ۱ را ارسال می کنم و ماژول گیرنده سرور دریافت رو انجام میده اما بصورت +IPD,0,1:1 و شما در کدویژن جوری برنامه نوشتید که فقط عدد دریافتی رو اگر بگیره شرط برقرار میشه در صورتی که عدد تنها نیست و بصورت +IPD,0,1:1 است !

    • با سلام
      ارسال بایستی به صورت هگز صورت بگیرد که عدد ۰x01 دریافتی با عدد های خود دستور متفاوت باشد. اما برای این که شما بتوانید راحت تر تشخیص دهید که چه عبارتی از سمت موبایل ارسال می شود. بایستی از دستور strstr استفاده کنید. این تابع که در کتابخانه string.h است، رشته ای را در یک رشته بزرگتر سرچ میکند.

  • سلام ممکن شماره تلفن خودتون بدید
    یه سوال داشتم
    من یه دیمر ۲۲۰
    با avr
    و برد وای فا esp8266
    لازم دارم

  • با سلام و خسته نباشید.
    من همین مراحل را انجام دادم تنها baud rate مودم رو به ۴۸۰۰ تغییر دادم و میکرو هم بدون کریستال خارجی با همین baud rate تنظیم شد. با نرم افزار socket protocol وصل می شم ولی وقتی ۰۱ را ارسال می کنم این پیغام رو میده:
    android.os.NetworkOnMainThreadException
    مشکل کجاست؟؟؟

      • با سلام. بله حالت connect در این نرم افزار بعد از اتصال مثله شکلی که در همین مقاله قرار داده شده به disconnect تبدیل میشه. فقط همین پیغام پس از تنظیم hex و فرستادن ۰۱ میاد.

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

  • سلام خسته نباشید.
    برای من بعضی وقتها وصل میشه به ماژول ولی اصلا دستور روشن و خاموش ال ای دی رو انجام نمیده . راهنمایی میفرمایید

    • با سلام
      با استفاده از یک مبدل USB To TTL چک کنید داده ها به درستی بین میکروکنترلر و ماژول ESP8266 انتقال پیدا می‌کند یا خیر.

  • برای من بعضی وقتها وصل میشه به ماژول ولی اصلا دستور روشن و خاموش ال ای دی رو انجام نمیده . راهنمایی میفرمایید