ESP8266 - WebSocket

آموزش کار با ESP8266 – WebSocket

WebSocket تکنولوژی است که ارتباط TCP را باز نگه داشته. و باعث می شود که برای هر پیامی لازم نباشد یک ارتباط جدید TCP ایجاد کنیم.تا الان ما برای گرفتن و ارسال داده از، یا به ESP8266 خود، مجبور بودیم یک لینک را در آدرس بار مرورگر وارد کنیم. یا که این از تگ <form> با متد POST استفاده کنیم. ولی هربار که اطلاعاتی جدید بخواهد نمایش داده شود، صفحه refresh می شود.

برای جلوگیری از refresh صفحه راه های زیادی وجود دارد. استفاده از AJAX و XMLHTTP request یکی از این راه ها می‌باشد. ولی برای ارسال هر داده‌ای باید یک ارتباط جدید TCP ایجاد شود.

WebSocket

WebSocket یک پروتکل برای انتقال داده بین مرورگر و سرور است. داده بین سرور و مرورگر بصورت بسته هایی جابجا می‌شود، بدون اینکه ارتباط قطع شود. در JavaScript وقتی یک Socket ایجاد می‌کنیم، به چهار Event باید گوش بدیم.

  1.  open وقتی ارتباط ایجاد می شود.
  2. message وقتی پیغامی می‌رسد.
  3. error وقتی خطایی رخ بدهد.
  4. close وقتی ارتباط قطع می‌شود.

وقتی هم که بخواهیم چیزی ارسال کنیم، آنرا با socket.send(data) ارسال می کنیم.

وقتی یک WebSocket ایجاد می‌شود. مرورگر از سرور می‌پرسد که “آیا WebSocket را پشتیبانی می‌کنی؟” و سرور جواب می‌دهد “بله” . و بعد از این ارتباط با پروتکلی که، لزومی ندارد حتما HTTP باشه، ادامه پیدا می‌کند.

دانلود WebSocket برای آردوینو

برای WebSocket کتابخانه‌های زیادی وجود دارد. من کتابخانه‌ی WebSocket را از این لینک در GitHub دانلود کردم. می توانید از طریق Sketch > Include Library > Add .ZIP Library آن را به نرم افزار آردوینو اضافه کنید.

نمونه‌ی برنامه برای WebSocket

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

در اولین بخش که کتابخانه‌ها را به برنامه اضافه کرده‌ام. آبجکتها و متغیرهای گلوبالی را هم که قرار بوده داشته باشیم در اینجا ایجاد کرده‌ام. با بیشتر کدهای این برنامه قبلا آشنا شده‌ایم و فقط قسمت WebSocket جدید می‌باشد.

در این بخش سه فانکشن تعریف کرده‌ایم. دو فانکشن اولی را قبلا کار کرده‌ایم. برای مطالعه‌ی بیشتر به این پست مراجعه کنید.

در قسمت WebSocketEvent پیامی که از طریق WebSocket دریافت می شود، مدیریت می‌شود.

در این قسمت برای SetUp کردن قسمتهای مختلف برنامه فانکشن‌هایی ایجاد کرده‌ایم. برای SetUp وایفای به این پست مراجعه کنید.

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

قسمت متفاوت این برنامه با قبلی‌ها این است که، برای استفاده از WebSocket باید بخش مرورگر آن را هم داشته باشیم. بخش کلاینت آن را باید با زبان جاوااسکریپت بنویسیم.

پس اول کد HTML آن را قرار می دهیم.

بخش CSS آن:

قسمت جاوااسکریپت:

برای ما صفحه‌ای به شکل زیر ایجاد می‌شود.

WebSocket Flasher

WebSocket Flasher

برای آپلود فایلهای HTML و CSS و JavaScript بر روی ESP8266 خود به این پست مراجعه کنید.

دیدگاه ها :

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

نشانی ایمیل شما منتشر نخواهد شد.