نمایش نتایج: از 1 به 10 از 11

موضوع: کنترل led با وب سرور و push button

Hybrid View

  1. #1
    Senior Member
    تاریخ عضویت
    Apr 2016
    نوشته ها
    116
    نقل قول نوشته اصلی توسط mhrt نمایش پست ها
    اینکارو کردم اما جواب نمیده. مسئله اینجاست که یه رشته به عنوان readstring تو برنامه تعریف شده که هر چیزی که از سمت کلاینت (صفحه وب طرف کاربر) خونده میشه رو توی اون می ریزه. و با متد get اون رو در نوار آدرس مرورگر نشون میده. یعنی اگه کلید LED ON داخل صفحه وب رو فشار بدم، هر چیزی که در ازای این کلید تعریف شده باشه، در نوار آدرس مرورگر بعد از آدرس آی پی میاد. یعنی دائم داره اون کلید رو می خونه. سوال اصلی اینجاست که چطور میشه با زدن کلید فیزیکی این متغیر readstring رو تغییر داد.

    client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
    client.println("<a href=\"/?button1off\"\">Turn Off LED</a>");
    دو خط بالا مربوط به همون متد GET هست که با زدن دکمه های TURN on LED و TURN off LED ، عبارات متناظر با اون ها یعنی ?button1on و ?button1off جلوی آدرس آی پی در مرورگر ظاهر میشه.
    Arduino Web Server and Web Page LED Control using HTML Button and Physical Push Button Switch

  2. #2
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    14
    متشکرم. کار کرد. دنبال راهی هستم که بدون کدهای ajax و با همون کدهای html بشه این کارو انجام داد. ajax ظاهرا خیلی پیچیده است و اصلا سر در نمیارم. در هر صورت ممنون. اگه راه دیگه ای پیدا کردم به اشتراک میذارم. اگر در مورد این ajax هم اطلاعات یا آموزش روان و ساده ای دارید که به درد کار با آردوینو بخوره ، لطفا منتقل بفرمایید.[/SIZE]

  3. #3
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    14
    لینک زیر برنامه من هست برای انجام این وب سرور.

    test-web-page.rar - آپلود عکس و فایل رایگان

    اگه سریال مانیتور رو باز کنید خواهید دید که مقدار اول مقدار c (که از نوع char است ) و مقدار دوم مقدار readString است (که از نوع رشته یا string) می باشد. اگه با صفحه وب led رو روشن و خاموش کنیم مشکلی نیست. به محض اینکه کلید فشاری رو از روی برد بورد می زنم، led یه لحظه روشن میشه (در صورت خاموش کردن از قبل با وب) ولی چند ثانیه بعد خاموش میشه و بالعکس یعنی اگه خاموش کنیم چند ثانیه بعد روشن میشه. یعنی حالت قبل که ازصفحه وب گرفته بود رو دوباره می گیره.
    علت اینه که دوباره با دستور client.read ، اطلاعات کلاینت رو می خونه و اون رو توی c و در نهایت توی readString ذخیره میکنه. سریال مانیتور هم این رو نشون میده. البته یه لحظه مقدار readString تغییر میکنه ولی دوباره برمی گرده.
    به نظرتون مشکل کجاست؟ میشه کاری کرد که اطلاعات کلاینت پاک بشه یا با اطلاعاتی که خودمون قرار میدیم جایگزین بشه؟
    مقادیر شرط رو من خودم به این شکل قرار دادم.

    if ((L==1) && (ledstate==1)){
    readString ="GET /?led_control=2 HTTP/1.1";
    L=0;
    digitalWrite(LED, LOW);

    }
    if ((L==0) && (ledstate==0)){
    readString ="GET /?led_control=1 HTTP/1.1";
    L=1;
    digitalWrite(LED, HIGH);

    }

    عبارت داخل "" رو به این خاطر این انتخاب کردم که کاملا با مقدار سریال مانیتور یکی باشه. که البته فکر میکنم اینکار اشتباهه و باید فقط مقدار ?led_control=2 ?led_control=1 رو قرار بدم.

    اگه اطلاعات دارید دریغ نفرمایید.

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO