اطلاعیه

Collapse
No announcement yet.

دستورات آماده سازی esp8266

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

    دستورات آماده سازی esp8266

    سلام.یک سوال داشتم. من برای اینکه با آردوینو یک صفحه وب بسازم از چه دستوراتی استفاده کنم؟ ممنون.

    #2
    پاسخ : دستورات آماده سازی esp8266

    نوشته اصلی توسط asdsf نمایش پست ها
    سلام.یک سوال داشتم. من برای اینکه با آردوینو یک صفحه وب بسازم از چه دستوراتی استفاده کنم؟ ممنون.
    سلام.
    می تونید از کد زیر استفاده کنید. یکی از مثالهای خود آردوینو هست اما الان یادم نیست تو کدام شاخش بود.

    #include <ESP8266WiFi.h>
    const char* ssid = "XXX";
    const char* password = "XXX";

    WiFiServer server(80);

    void setup() {

    Serial.begin(115200);
    delay(10);

    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");

    server.begin();
    Serial.println("Server started");

    Serial.println(WiFi.localIP());
    }

    void loop() {

    WiFiClient client = server.available();
    if (!client) {
    return;
    }

    Serial.println("new client");
    while (!client.available()) {
    delay(1);
    }

    String req = client.readStringUntil('\r');
    Serial.println(req);
    client.flush();
    String s;

    s+= "<!DOCTYPE html>";
    s+= "<html>";
    s+= "<body>";
    s+= "<h1>My First Heading</h1>";
    s+= "<p>My first paragraph.</p>";
    s+= "</body>";
    s+= "</html>";

    client.print(s);
    delay(1);
    Serial.println("Client disconnected");}

    فقط بجای XXX اسم و پسورد مودمتون رو قرار دهید.
    جدیدترین ویرایش توسط digi-rx; ۲۱:۵۴ ۱۳۹۶/۱۰/۰۱.
    تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

    دیدگاه


      #3
      پاسخ : دستورات آماده سازی esp8266

      میشه خط به خط توضیح بدید؟ با کدهای HTML مشکلی ندارم.

      دیدگاه


        #4
        پاسخ : دستورات آماده سازی esp8266

        نوشته اصلی توسط asdsf نمایش پست ها
        میشه خط به خط توضیح بدید؟ با کدهای HTML مشکلی ندارم.
        خط 1 تعریف کتابخانه wifi مربوط به esp8266
        خط 2 و 3 تعریف متغیر مربوط به اسم و پسورد مودم وایفایتان
        خظ 5 تعریف سرور با پورت 80
        زمانی که شما در مرورگر کامپیوتر یا ... لینک مربوطه رو اجرا میکنید، درواقع کامپیوتر بعنوان یک کلاینت درخواستی رو به سرور میفرسته. این درخواست شامل نام یا IP سرور و پورت تعریف شده سرور می باشد. ما در این دستور ESP رو بصورت سرور و با پورت 80 تعریف کردیم. پورت 80 ، یک پورت پیش فرض برای مرورگرها ست و نیازی به نوشتن آن در انتهای URI در مرورگر نیست.
        خط 7 و 32
        در آردوینو اولین تابعی که اجرا میشه تابع setup هست و پس از اجرای کامل آن تابع loop اجرا خواهد شد. فرق این دو تابع در اینه که تابع setup فقط یکبار اجرا میشه اما تابع loop یک حلقه تکرار بینهایت است. درنتیجه ما دستوراتی که میخواهیم فقط یکبار اجرا شوند رو در تابع setup مینویسیم یا تابعشون رو صدا میزنیم و بقیه دستورات رو در تابع loop.
        خط 9 تعریف سرعت اتصال سریال برای بین برد و کامپیوتر برای اینکه بتونیم دستورات پرینت شده رو در پنجره سریال مونیتور ببینیم .
        خط 10 دستور تاخیر 10 ms
        بعد از روشن شدن یا ریست برد ، زمانیکه خط 9 اجرا میشه تا ارتباط سریال کامل فعال بشه و بوت هم تکمیل بشه یسری کاراکترهای نامفهوم یا بعضا اطلاعات مربوط به بوت و ماژول در پنجره سزیال مانیتور بنمایش درمیاد که ما برای اینکه اینطور نشه یه تاخیر به اندازه 10ms بعد از دستور خط 9 قرار دادیم.
        خط 12 و 13 دستور رفتن به خط بعدی (در پنجره سریال مانیتور)
        خط 14 و 15 دستور پرینت نام شبکه وایفای مودمی که در حال اتصال به آن می باشیم.
        اتصال به مودم به این دلیل است که با این روش کامپیوتر (کلاینت) رو با سرور (ESP) بکمک مودم و بصورت وایفای با هم شبکه می کنیم (ارتباط بینشون رو برقرار میکنیم. درواقع مودم برای ما نقش یک روتر رو بازی میکند.
        خط 17 اتصال به مودم با پارامترهای داده شده.
        توابع begin در آردوینو برای راه اندازی اولیه یا همان اینیشیالایز کلاس مربوطه با مقادیر موردنیاز آن بکار می رود.
        خط 19 تا24 یک حلقه برای اینکه اتصال به وایفای مودم چک بشه و تنها پس از اتصال پیغام اتصال داده و به خط بعدی برود.
        دستورات پرینت که بالا توضیح دادم رو دیگه خودتون متوجهید.
        خط 26 اجرای سرور
        خط 29 پرینت IP مربوط به esp
        شما باید این IP رو از پنجره سریال مانیتور کپی کرده و در پنجره مرورگر اجرا کنید . عددی مثل 192.168.1.35 در اینصورت درخواست به esp ارسال و صفحه html شما بارگذاری می گردد.
        خط 34 تا 42 در هر بار اجرای حلقه ، تعریف یک کلاینت و چک کردن اینکه آیا کلاینتی داریم و درخواستی از کلاینت داریم یا نه. اگر نداریم دوباره حلقه تکرار شود و اگر داریم دستورات بعدی را اجرا کند.
        خط 44 متن درخواست کلاینت (از ابتدای متن تا انتهای خط متن آن) را در یک متغییر ذخیره می کنیم.بعد نمایش می دهیم.
        کاراکتر \r کاراکتر مربوط به انتهای خط می باشد.
        خط 46 بافر مربوط به کلاینت را آزاد میکنیم. (فضا را آزاد میکنیم)
        خط 47 تا 55 یک متغیر تعریف و متن html را در آن برای ارسال ذخیره میکنیم.
        بهتر هست که تعریف این متغیر را بصورت سراسری (قبل از تابع setup) انجام داده و html را درون تابع setup در آن بریزیم. با این روش ، این عمل فقط یکبار اجرا شده و سرعتمان بالاتر می رود.
        منتها چون من متن خود مثال آردوینو رو اینجا گذاشتم ، اینکار انجام نشده بود.
        خط 57 ارسال متن html به کلاینت
        تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

        دیدگاه


          #5
          پاسخ : دستورات آماده سازی esp8266

          ممنون.خیلی لطف کردید.

          دیدگاه


            #6
            پاسخ : دستورات آماده سازی esp8266

            خواهش میکنم عزیز.
            آردوینو خیلی ساده و روان هست و خیلی سریع میتونید باهاش برنامه هاتون را توی هر سطحی از ساده تا خیلی پیشرفته بسازید. (اصلا اینو قبول ندارم که برای پروژه های حرفه ای آردوینو مناسب نیست چون قدرت این برنامه رو دیدم)
            فقط برای کار ماژولهای esp شما بایداطلاعات خودتان را زمینه طراحی html و انواع اقسام پروتکلهای ارتباطی واینترنتی بیشتر کنید. چون معمولا افراد برای پروژه های اینترنتی و شبکه سمت این ماژولها میان که خوب اطلاعات مذکور بدردشون خواهد خورد.
            تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

            دیدگاه


              #7
              پاسخ : دستورات آماده سازی esp8266

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

              دیدگاه


                #8
                پاسخ : دستورات آماده سازی esp8266

                نوشته اصلی توسط amir2640 نمایش پست ها
                سلام
                من میخوام برنامه ای بنویسم که در صورتی که دکمه ای فیزیکی که به عنوان ورودی به یکی از پایه های ماژول esp8266 وصل شده رو فشار بدم بر روی صفحه گوشی و یا هر دیوایس دیگری که توسط مدم به ماژول esp وصل شده است عبارتی را( مثلا سلام) نشون بده.
                من برای این که فقط عبارت سلام رو نشون بده از برنامه ای که یکی از دوستان در بالا نوشتن استفاده کردم ول متاسفانه هر کاری میکنم نمیتونم برا این شرط رو بذارم که بهش بگم در صورتی که من دستم رو روی دکمه فشار دادم این پیام رو نشون بده.
                سلام
                اگر دکمه رو تو برنامه تعریف کردید و فشرده شدنش رو تشخیص میده ، کافیه بجای خط 54 یک if بزارید که داخلش اون خط 54 قرار بگیره. در این صورت فقط زمانی اون متن چاپ میشه که شرط شما یعنی فشرده شدن دکمه برقرار باشه.
                تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

                دیدگاه


                  #9
                  پاسخ : دستورات آماده سازی esp8266

                  می بخشید من پست شما رو عجله ای خوندم جواب دادم ، اصل مشکل رو نگرفتم.
                  بله. این مشکل پیش میاد. دلیلش اینه:
                  فرض کنید شما الان دکمه را بفشارید. در اینصورت متغییر مربوط به دکمه یک لحظه true شده و سپس false میگردد. تا اینجا همه چی درست.
                  اما وقتی متغییر true میشود همان لحظه که مقدارش برای مرورگر فرستاده نمی شود !!! در نتجه بخاطر طولانی شدن زمان ، متفییر دوباره false میگردد (احتمالا. بستگی به برنامه داره)
                  درواقع وقتی صفحه html مربوطه لود یا رفرش میشه ، درخواست به esp ارسال و esp مقدار متغیرمربوطه رو چک و پاسخ رو ارسال میکنه.
                  شما می تونید کاری کنید که پس از زدن دکمه متغیر رو ذخیره کرده و تنها پس از ارسال مقدارش رو پاک کنید.
                  تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

                  دیدگاه


                    #10
                    پاسخ : دستورات آماده سازی esp8266

                    نوشته اصلی توسط digi-rx نمایش پست ها
                    می بخشید من پست شما رو عجله ای خوندم جواب دادم ، اصل مشکل رو نگرفتم.
                    بله. این مشکل پیش میاد. دلیلش اینه:
                    فرض کنید شما الان دکمه را بفشارید. در اینصورت متغییر مربوط به دکمه یک لحظه true شده و سپس false میگردد. تا اینجا همه چی درست.
                    اما وقتی متغییر true میشود همان لحظه که مقدارش برای مرورگر فرستاده نمی شود !!! در نتجه بخاطر طولانی شدن زمان ، متفییر دوباره false میگردد (احتمالا. بستگی به برنامه داره)
                    درواقع وقتی صفحه html مربوطه لود یا رفرش میشه ، درخواست به esp ارسال و esp مقدار متغیرمربوطه رو چک و پاسخ رو ارسال میکنه.
                    شما می تونید کاری کنید که پس از زدن دکمه متغیر رو ذخیره کرده و تنها پس از ارسال مقدارش رو پاک کنید.
                    ممنون از وقت ارزشمندتون دوست عزیز

                    امکانش که در صورت امکان یکم بیشتر توضیح بدید که چگونه باید این کاری رو که گفتید رو انجام بدم ؟
                    و یا این که جسارتا اگر امکتنش هست و خیلی وقتتون رو نمیگیره بفرمایید که کجای برنامه چه دستوری رو باید اضافه کنم ؟
                    پیشاپیش سال نو همگی مبارک

                    دیدگاه


                      #11
                      پاسخ : دستورات آماده سازی esp8266

                      به پیامی که روی موبایل ، بنا به شرایطی ظاهر میشه پوش نوتیفیکیشن گفته میشه .

                      خوشبختانه آردوینو کتابخونه بسیار خوبی برای این کار داره .

                      سرنخ رو به شما میدم کمی سرچ کنید بقیه کار دستتون میاد ، منابع انگلیسی بهتر ولی فارسی هم هست .

                      برای شروع شما باید در سایت one signal عضو بشید ، این خدمات رایگان هست اما محدودیت هایی هم داره . یک اپلیکیشن هم داره باید روی موبایل نصب کنید ، یک شناسه به شما میده که در برنامه مثال کتابخونه آردوینو باید کپی کنید .
                      مثال بسیار ساده ست و در حلقه ست آپ ، اقدام به ارسال نوتیفیکیشن در گوشی می*کنه که شما باید شرط فشرده شدن یک دکمه رو با این کد ترکیب کنید. .

                      سایت ifttt هم سر بزنید قابلیت های جالبی داره میتونید با هم ترکیب کنید

                      دیدگاه


                        #12
                        پاسخ : دستورات آماده سازی esp8266

                        ممنون از راهنماییتون دوست عزیز

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

                        دیدگاه


                          #13
                          پاسخ : دستورات آماده سازی esp8266

                          نوشته اصلی توسط amir2640 نمایش پست ها
                          ممنون از وقت ارزشمندتون دوست عزیز
                          امکانش که در صورت امکان یکم بیشتر توضیح بدید که چگونه باید این کاری رو که گفتید رو انجام بدم ؟
                          و یا این که جسارتا اگر امکتنش هست و خیلی وقتتون رو نمیگیره بفرمایید که کجای برنامه چه دستوری رو باید اضافه کنم ؟
                          پیشاپیش سال نو همگی مبارک
                          خواهش می کنم عزیز
                          لطفا کد تغییر دادتون رو بزارید تا با هم بررسیش کنیم.
                          منم سالی سرشار از خوبی و سلامتی رو برای شما و همه دوستان عزیزم آرزومندم


                          -------------------------
                          خیر عزیز. دوست من جناب Masood Ashoori بزرگوار ، اشتباه برداشت کردن منظور شما رو (یا شایدم من اشتباه میکتم)
                          منظور ایشون از پوش نوتیفیکیشن، اون نوار پایین کشیدنی بالای صفحه موبایل هست که بعضی مواقع مثل آمدن sms و یا پست تلگرام و ... یه حالت اطلاغ دادن همراه با صدا یا ویبره میده.
                          بنظرم شما فقط همون میخواهید تو مرورگر براتون پیغام بیاد که تو تمام دستگاهها دیده میشه.

                          آقای آشوری عزیز، راه ساده تری هم برای پوش نوتیفیکیشن وجود داره. اگه نیاز داشتید بفرمایید تا بفرستم. (فقط اگه میشه و تمایل داشتید بمونه برای بعد از عید که بتونم بگردم تو کدهام]
                          جدیدترین ویرایش توسط digi-rx; ۲۰:۰۲ ۱۳۹۶/۱۲/۲۸.
                          تاپیک ویدیوهای آموزشی حواشی آردوینو و ESP

                          دیدگاه


                            #14
                            پاسخ : دستورات آماده سازی esp8266

                            ممنون دوست گرامی

                            برنامه ای که دارم استفاده میکنم برای فرستادن یک متن با اجازتون همون برنامه ای هست که خودتون ضحمتش رو در پست شماره 2 ای تاپیک کشیدید

                            بله همینطور که شما اشاره کردید من بیشتر دنبال یک برنامه ای هستم که هر دستگاهی که به مرورگر وصل بشه بتونه اگر من کلید رو فشار بدهم پیغام رو روی صفحه ببینه ، ایشالا بعد از تعطیلات اگر وقت داشتید ممنون میشم در این زمینه بنده رو راهنمایی بفرمایید.
                            جدیدترین ویرایش توسط amir2640; ۲۳:۲۴ ۱۳۹۶/۱۲/۲۸.

                            دیدگاه


                              #15
                              پاسخ : دستورات آماده سازی esp8266

                              درود هر دو بزرگوار .
                              خب به پیامی که توی نوار نوت ظاهر بشه و احیانا صدا هم داشته باشه بهش پوش گفته میشه دیگه ؟؟! نوع دیگه که نداریم .
                              دقیقا باید اپ نصب باشه تا از سرور دستور نوت و متن رو بگیره .

                              اگر روش دیگه که مد نظرتون هست بفرمایید ممنون میشم .

                              اما موضوع آخر . اگر کاربر به مرورگر وصل بشه پیام رو روی صفحه ببینه ، اگر مرورگر بسته باشه چکار کنه :/ برای همین چون ذکر کردند پیام روی گوشی ظاهر بشه حالت استند بای رو هم در نظر بگیریم چیزی جز نوت نداریم که .
                              جدیدترین ویرایش توسط Masood Ashoori; ۱۵:۱۸ ۱۳۹۶/۱۲/۲۹.

                              دیدگاه

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