در این راهنما، نحوه ایجاد و استفاده از «Serial Monitor» مبتنی بر وب را برای پروژه های ESP8266 NodeMCU خود با استفاده از کتابخانه WebSerial یاد خواهید گرفت.با استفاده از این رابط یک ترمینال سریال مبتنی بر وب برای دریافت پیام های دیباگ ایجاد می کنید، همچنین می توانید از طریق این مانیتور سریال مبتنی بر وب به ESP8266 پیام ارسال کنید.

مانیتور سریال مبتنی بر وب
اکثر افراد در پروژه های ESP8266 خود، از مانیتور سریال برای خروجی پیام های اشکال زدایی یا دیباگینگ استفاده می کنند که به درک بهتر اتفاقاتی که در میکروکنترلر می افتد کمک می کند.
برای این کار ابتدا شما یک ارتباط سریالی بین برد و رایانه خود ایجاد می کنید و سپس می توانید پیام ها را با استفاده از مانیتور سریال مشاهده کنید. با این حال، هنگامی که برد شما به رایانه شما متصل نیست، نمی توانید پیام های اشکال زدایی را ببینید.
یک راه حل برای این مشکل استفاده از یک مانیتور سریال مبتنی بر وب است که در این حالت ESP8266 میزبان وب سروری است که صفحه ای را برای مشاهده پیام ها مانند نمایشگر سریال معمولی ارائه می دهد. صفحه وب WebSerial همچنین به شما امکان می دهد داده ها را از صفحه وب به برد خود ارسال کنید.

برای این آموزش، از کتابخانه WebSerial استفاده می کنیم.
ویژگی های وب سریال
- روی WebSockets کار می کند.
- ارسال بیدرنگ یا زمان واقعی
- هر تعداد مانیتور سریال را می توان در مرورگر باز کرد.
- از AsyncWebserver برای عملکرد بهتر استفاده می کند.
توابع وب سریال
استفاده از WebSerial مشابه استفاده از مانیتور سریال است. توابع اصلی آن print() و println() میباشد:
print(): داده ها را روی مانیتور سریال مبتنی بر وب، بدون کاراکتر خط جدید (در همان خط) چاپ می کند.
println(): داده ها را روی مانیتور سریال مبتنی بر وب، با یک کاراکتر خط جدید (در خط بعدی) چاپ می کند.
نصب کتابخانه WebSerial
برای این پروژه، از کتابخانه WebSerial.h استفاده خواهیم کرد. برای نصب کتابخانه:
- در Arduino IDE خود، به Sketch > Include Library > Manage Libraries بروید…
- متن “WebSerial ” را جستجو کنید
- کتابخانه WebSerial توسط Ayush Sharma را نصب کنید.
همچنین باید ESPAsyncWebServer و کتابخانه های AsyncTCP را نصب کنید. برای دانلود فایل های کتابخانه ها روی لینک های زیر کلیک کنید.
برای نصب این کتابخانه ها روی لینک های قبلی کلیک کنید تا فایل های کتابخانه ها دانلود شوند. سپس، در Arduino IDE خود، به Sketch > Include Library > Add .ZIP Library بروید…
مثال ESP8266 WebSerial
این کتابخانه یک مثال ساده از ایجاد مانیتور سریال وب برای خروجی و دریافت پیام ارائه می دهد. ما مثال را کمی تغییر دادیم تا تعاملی تر شود.
این مثال Hello! به مانیتور سریال مبتنی بر وب هر دو ثانیه ارسال میکند. علاوه بر این، می توانید پیام هایی را از مانیتور سریال مبتنی بر وب به برد ارسال کنید. می توانید پیام ON را برای روشن شدن LED داخلی برد و یا پیام OFF را برای خاموش کردن آن ارسال کنید.
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/esp8266-nodemcu-webserial-library/
This sketch is based on the WebSerial library example: ESP8266_Demo
https://github.com/ayushsharma82/WebSerial
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <WebSerial.h>
#define LED 2
AsyncWebServer server(80);
const char* ssid = "REPLACE_WITH_YOUR_SSID"; // Your WiFi SSID
const char* password = "REPLACE_WITH_YOUR_PASSWORD"; // Your WiFi Password
void recvMsg(uint8_t *data, size_t len){
WebSerial.println("Received Data...");
String d = "";
for(int i=0; i < len; i++){
d += char(data[i]);
}
WebSerial.println(d);
if (d == "ON"){
digitalWrite(LED, LOW);
}
if (d=="OFF"){
digitalWrite(LED, HIGH);
}
}
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.printf("WiFi Failed!\n");
return;
}
Serial.println("IP Address: ");
Serial.println(WiFi.localIP());
// WebSerial is accessible at "<IP Address>/webserial" in browser
WebSerial.begin(&server);
WebSerial.msgCallback(recvMsg);
server.begin();
}
void loop() {
WebSerial.println("Hello!");
delay(2000);
}
قبل از آپلود کد در برد خود، فراموش نکنید که اطلاعات شبکه خود را وارد کنید.
در این مثال ESP8266 در حالت station قرار دارد. این مثال با کمی تغییرات در حالت اکسس پوینت نیز میتواند کار کند.
نتیجه
پس از درج اعتبار شبکه خود، می توانید کد را در برد خود آپلود کنید.
پس از آپلود، مانیتور سریال معمولی را با نرخ باود 115200 باز کنید. پس از چند لحظه آدرس IP برد مشاهده خواهد شد.

اکنون یک مرورگر در شبکه محلی خود باز کنید و آدرس IP ESP را به دنبال آن /webserial تایپ کنید صفحه WebSerial باید بارگیری شود. به عنوان مثال، در مورد من:
192.168.1.100/webserial

همانطور که می بینید،هر دو ثانیه متن Hello را چاپ می کند! علاوه بر این، می توانید دستورات را به ESP8266 ارسال کنید تمام دستوراتی که ارسال می کنید بر روی مانیتور سریال وب چاپ می شوند. برای کنترل LED داخلی می توانید دستورات ON و OFF را ارسال کنید.

این فقط یک مثال ساده بود که نشان می دهد چگونه می توانید از کتابخانه WebSerial برای ایجاد یک نمایشگر سریال مبتنی بر وب برای ارسال و دریافت داده استفاده کنید.
اکنون می توانید به راحتی با استفاده از کتابخانه WebSerial یک مانیتور سریال مبتنی بر وب به هر یک از پروژه های خود اضافه کنید.
جمع بندی
در این آموزش، نحوه ایجاد یک مانیتور سریال مبتنی بر وب را یاد گرفتید. این بیشتر زمانی به کار میاید که پروژه شما از طریق ارتباط سریال به رایانه شما متصل نباشد و همچنان می خواهید پیام های اشکال زدایی را مشاهده کنید. ارتباط بین مانیتور سریال مبتنی بر وب و ESP8266 از پروتکل WebSocket استفاده می کند.
راهنمای جامع پین های ESP8266 (کدام پین ها را میتوانیم استفاده کنیم؟)
شروع کار با ماژول ESP8266 (معرفی)
راه اندازی سنسور DS18B20 با ESP8266 در حالت تکی ، چندتایی و وب سرور (اینترنت اشیا)