متشکرم. کار کرد. دنبال راهی هستم که بدون کدهای ajax و با همون کدهای html بشه این کارو انجام داد. ajax ظاهرا خیلی پیچیده است و اصلا سر در نمیارم. در هر صورت ممنون. اگه راه دیگه ای پیدا کردم به اشتراک میذارم. اگر در مورد این ajax هم اطلاعات یا آموزش روان و ساده ای دارید که به درد کار با آردوینو بخوره ، لطفا منتقل بفرمایید.[/SIZE]
لینک زیر برنامه من هست برای انجام این وب سرور.
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 رو قرار بدم.
اگه اطلاعات دارید دریغ نفرمایید.