آموزش ساخت صفحه ی وب ساده برای برد های مبنی بر ESP8266

در آموزش قبلی به آموزش تنظیم WiFi برد هایی نظیر NodeMCU، D1 Mini و Mini S1 مبنی بر هسته ی ESP8266 پرداختیم. در این آموزش با استفاده از یک Sketch ساده و نرم افزار Arduino صفحه ی وب ساده ای را به نمایش خواهیم گذاشت. هدف از این آموزش درک چگونگی ساخت صفحه و مبانی مرتبط با سرور برد ESP8266 است که در ادامه به آن ها بیشتر خواهیم پرداخت.

 

یکی از مزیت های استفاده از ESP8266 امکان نمایش صفحات وب به صورت مستقیم روی دستگاه های دارای WiFi است. محدودیتی در استفاده از محتوی نیست و صرفا به خلاقیت فرد بستگی دارد. همانطور که مشخص هست، نسخه ی کاربردی و پیچیده ای از این ویژگی در برد های کپی PS4 به کار رفته است و هم اکنون از آن استفاده می شود. همچنین امکان کنترل کردن پین های برد به وسیله ی لینک و امکان نمایش مقادیر دیتای روی صفحات وب از مهمترین مزایای این ویژگی است.

در اسکچ زیر به صورت بسیار ساده و خلاصه، صفحه ی وبی در نظر گرفته شده است که در دو سطر متن های "صفحه ی تست" و " ابوالفضل خزائی" را نمایش می دهد. توضیحات لازم به زبان فارسی داخل اسکچ ذکر شده است. دانلود اسکچ

/*

 AK ESP8266 station mode

*/

#include <ESP8266WiFi.h>

// تنظیمات شبکه ی خود را در این قسمت وارد کنید.

const char* ssid =      "ssid";      //نام شبکه

const char* password =  "password";  //رمز شبکه

WiFiServer server(80);

void setup()

{

 delay(1000);

 Serial.begin(115200);

 // در حال برقراری ارتباط با مودم یا روتر

 WiFi.begin(ssid, password);

 // نمایش وضعیت ارتباط

 Serial.println();

 Serial.print("Connecting");

 while (WiFi.status() != WL_CONNECTED)

 {

   delay(500);

   Serial.print(".");

 }

 // نمایش ارتباط موفقیت آمیز

 Serial.println("success!");

 // نمایش ایپی برد

 Serial.print("IP Address is: ");

 Serial.println(WiFi.localIP());

 // شروع سرور

 server.begin();

 Serial.println("Server started");

}

void loop() {

 // بررسی وضعیت بازدید کننده

 WiFiClient client = server.available();

 if (!client) {

   return;

 }

  

 // منتظر ارسال فرمان بازدید کننده

 Serial.println("new client");

 while(!client.available()){

   delay(1);

 }

  

 // خواندن اولین خط درخواست بازدید کننده

 String request = client.readStringUntil('\r');

 Serial.println(request);

 client.flush();

  

 // ارسال پاسخ یا صفحه ی وب مورد نظر

 client.println("HTTP/1.1 200 OK");

 client.println("Content-Type: text/html");

 client.println("");

 client.println("<!DOCTYPE HTML>");

 client.println("<html>");

 //تنظیم نوشته در وسط صفحه

 client.println("<center>");

 // صفحه ی تست

 client.println("صفحه ی تست");

 // ابوالفضل خزائی

 client.println("ابوالفضل خزائی");

 client.println("</center>");

 client.println("</html>");

 delay(1);

 // قطع ارتباط بازدید کننده

 Serial.println("Client disonnected");

 Serial.println("");

}