اطلاعیه

Collapse
No announcement yet.

ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

    درود بر اساتید ، یه برد آردوینو دارم که چند تا سنسور مختلف بهش وصله و البته ماژول esp8266 رو هم تونستم توسط کد زیر بهش وصل کنم و یک ال ای دی رو روشن و خاموش کنم توسط سوکت، الان کاری که میخام بکنم اینه که اطلاعات سوکت رو بتونم از طریق این ماژول ارسال کنم ازدوستان اگه کسی می تونه راهنمایی کنه ممنون میشم
    میخوام مثلا وقتی که حرف D رو فرستادم برای آردوینو ، اطلاعات سه یا چهار سنسور را برام بفرسته
    #include <SoftwareSerial.h>


    SoftwareSerial ESP8266(10, 11);//10==>TX , 11==>RX
    String mychar;//for store the esp8266 serial input




    //String WifiName = "wifi name"; //for join to wifi modem
    //String WifiPass = "wifi password";


    /************************************************** **************/
    /* INIT */
    /************************************************** **************/
    void setup()
    {
    Serial.begin(115200);
    ESP8266.begin(115200);
    pinMode(13, OUTPUT);
    initESP8266();
    }
    /************************************************** **************/
    /* LOOP */
    /************************************************** **************/
    void loop()
    {
    while(ESP8266.available())
    {
    mychar = ESP8266.readString();
    if(mychar.length()>1){
    Serial.print(mychar);
    int colonPosition = mychar.indexOf(':');
    switch(mychar.charAt(colonPosition+1)){
    case 'a' :
    Serial.println('a');
    digitalWrite(13, HIGH);
    break;
    case 'b' :
    Serial.println('b');
    digitalWrite(13, LOW);
    break;
    case 'c' :
    ESP8266.println("AT+CIPCLOSE=0");
    break;
    default:
    break;
    }
    ESP8266.flush();
    mychar="";
    }
    }
    }
    /************************************************** **************/
    /* SETUP THE ESP8266 */
    /************************************************** **************/
    void initESP8266()
    {
    Serial.println("********************************** ************************");
    Serial.println("**************** SETTING UP WIFI MODULE ***************");
    Serial.println("********************************** ************************");
    SendToESP8266("AT+RST");
    WaitForESP8266(2000);
    Serial.println("********************************** ************************");
    // SendToESP8266("AT+CWMODE=3");
    // WaitForESP8266(5000);
    // Serial.println("********************************** ************************");
    // SendToESP8266("AT+CWJAP=\""+ WifiName + "\",\"" + WifiPass +"\"");
    // WaitForESP8266(10000);
    // Serial.println("********************************** ************************");
    SendToESP8266("AT+CIFSR");//for sow the ip address thedefault is 192.168.4.1
    WaitForESP8266(1000);
    Serial.println("********************************** ************************");
    SendToESP8266("AT+CIPMUX=1"); //enable multiple connection
    WaitForESP8266(1000);
    Serial.println("********************************** ************************");
    SendToESP8266("AT+CIPSERVER=1,9999"); //open port 9999
    WaitForESP8266(1000);
    Serial.println("********************************** ************************");
    Serial.println("***************** INITIALISATION COMPELETE ****************");
    Serial.println("********************************** ************************");
    Serial.println("");
    }


    /************************************************** **************/
    /* SEND AT COMMAND TO ESP8266 */
    /************************************************** **************/
    void SendToESP8266(String commande)
    {
    ESP8266.println(commande);
    }
    /************************************************** **************/
    /* WAIT FOR RESPONSE TIME ESP8266 */
    /************************************************** **************/
    void WaitForESP8266(const int timeout)
    {
    String reponse = "";
    long int time = millis();
    while( (time+timeout) > millis())
    {
    while(ESP8266.available())
    {
    char c = ESP8266.read();
    reponse+=c;
    }
    }
    Serial.print(reponse);
    }

    #2
    پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

    دوستان اگر کسی اطلاعاتی داره خواهشا بگه

    دیدگاه


      #3
      پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

      درود . تحت وب اطلاعات رو میگیرید؟ نقش esp چیه ؟ کاراکتر d رو از serial ارسال کنید ؟ لطفاً خواستتون رو مطرح کنید تا بشه راهنمایی کرد . این برنامه جالبی نیست کلا

      دیدگاه


        #4
        پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

        پروژه ما به این صورته که یه برد آردوینو با چند تا سنسور (4 تا) داریم و چند تا هم دیوایس داریم (6تا) ، میخایم توسط اندروید و esp8266-ex هم اطلاعات سنسور ها رو بفرستیم روی دستگاه اندرویدی و هم از دستگاه اندرویدی فرمان بگیریم که مثلا فلان دیوایس رو روشن یا خاموش کن ، طبق کد بالا می تونیم اطلاعات رو از اندروید به آردوینو انتقال بدیم اما موفق نشدیم اطلاعات آردوینو را برای اندروید ارسال کنیم.

        دلیل: ادغام دو پست برای جلوگیری از اسپم

        یا بهتره اینجوری بگم این کدی که قرار دادم وقتی از گوشی اندروید حرف a رو برای آردوینو میفرستم ، دیوایسم را روشن میکنه ، وقتی حرف b رو میفرستم ، دیوایسم را خاموش میکنه ، الان میخام مثلا اگر از گوشی حرف x را فرستادم برای آردوینو، اطلاعات سنسور را برای اندروید ارسال کنه ، در پایان از شما ممنونم که وقت گذاشتید و میذارید و اگر احساس میکنید این راه راه درستی نیست یا جواب نمیده اگر راه دیگه ای هم بفرمایید ممنون میشم.

        دیدگاه


          #5
          پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

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

          دیدگاه


            #6
            پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

            تعداد سنسورها 4 تا که البته در آینده ممکنه بیشتر هم بشه ، تعداد دستگاههایی که خاموش و روشن میشه هشت تا که باز هم ممکنه در آینده زیاد تر بشه، اپلیکشن اندرویدش را هم خودم طراحی کردم و میکنم ، از نظر پیاده سازی ترجیح میدم اپلیکشن باشه ولی اگر شما طبق تجربیاتتون وب را ترجیح میدید میام بسمت وب

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            سنسور نور دما رطوبت و مونوکسید که ممکنه بیشتر هم بشه
            جدیدترین ویرایش توسط Sajad123123; ۱۷:۵۷ ۱۳۹۷/۱۰/۰۵.

            دیدگاه


              #7
              پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

              سلام. شما از esp بعنوان یک ماژول واسط استفاده کردید. یعنی با دستورات at-command باهاش ارتباط می گیرید.
              از لحاظ نرم افزاری اگر بخوام راهنمایی کنم بهتره که esp رو بعنوان یک برد آردوینوی دیگر درنظر بگیرید:
              در مرحله اول باید بین این دو برد آردوینو یک ارتباط دوطرفه از طریق همان ارتباط سریال برقرار کنید. بدین معنی که یک عبارت رو از برد آردوینو به esp بفرستید و برعکس.
              در مرحله دوم ماژول esp رو که باهاش توی مرحله یک (برای ارتباط با برد آردوینو ) با زبان آردوینو برنامه نوشتید رو کدهای ارتباط وایفایش رو با آردوینو بنویسید (نه با at-command) و اضافه کنید به برنامش که نمونه کدهاش تو اینترنت زیاد هست.
              بعد از این دو مرحله کافیه اطلاعات سنسورها رو از برد آردوینو (از طریق سریال) بفرستید روی esp و به esp هم بگید هرموقع اطلاعات جدید گرفتی با وایفای بفرست.
              این روش مزیتش اینه که دیگه درگیر at- command نمیشید و برنامه نویسی تماما با زبان آردوینو هست و بصورت مرحله ای. در هر مرحله اگر مشکل پیش بیاد نمونه سورس آماده براش زیاده در حالی که با at-command اینطور نیست.
              تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

              دیدگاه


                #8
                پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

                درود بر شما و ممنون از راهنماییتون ،حقیقتش هرچقدر سرچ کردم و مثال گرفتم نتونستم راه اندازیش کنم ، امکانش هست راهنمایی بیشتری بفرمایید؟

                دیدگاه


                  #9
                  پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

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

                  دیدگاه


                    #10
                    پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

                    درود. در مرحله بعد شما فعلا روی ماژول ، توسط آردوینو کد بزنید ، اطلاعات یک سنسور رو روی وب سرور ارسال کرده نتیجه رو ببینید ، بعد تلاش کنید با اپلیکیشن مذکور ارتباط برقرار کنید ، بعد از این مراحل برد آردوینو رو ترکیب کنید ، برای شروع

                    دیدگاه


                      #11
                      پاسخ : ارسال و دریافت اطلاعات از برد آردوینو و ماژول esp8266-ex

                      شما در ابتدا بکمک لینکی که آقای مهندس آشوری لطف کردند فریمور آردوینو رو روی esp نصب و یک برنامه (مثلا یک چشمک زن ساده) رو روی esp برای امتحان اینکه فریمور نصب شده اجرا کنید. بعد بدنبال مراحل بالا بروید.


                      همانطور که گفتم برای هر دو مرحله ای که قبلا گفتم نمونه کد زیاد هست.
                      مثلا دو ویدیو رو که لینک سورس کدهاش هم زیر ویدیو هست رو لینکش رو قرار میدم:
                      ارتباط دوطرفه دو آردوینو (یکی برد آردوینو و دیگری برد esp) لینک 1
                      ارتباط دوطرفه دو آردوینو (یکی برد آردوینو و دیگری برد esp) لینک 2
                      همچنین می توانید از مثالهای خود کتابخانه SoftwareSerial مربوط به esp هم استفاده کنید:
                      سایت گیت هاب این کتابخانه


                      دلیل: ادغام دو پست برای جلوگیری از اسپم

                      البته بجز ارتباط سریال راههای دیگه ای هم مثل ارتباط I2C و .. هست. اما هیمن ارتباط سریال هم برای پروژه تون جواب میده.
                      تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

                      دیدگاه

                      لطفا صبر کنید...
                      X