ساخت صفحه وب برای کنترل پایه از اینترنت با ESP8266 و آردوینو
ساخت صفحه وب برای کنترل پایه از اینترنت با ESP8266 و آردوینو
اما ابتدا اجازه دهید برخی از اصطلاحات ضروری را مرور کنیم:
- وب سرور – نرم افزار، سخت افزار یا ترکیبی از هر دو که حاوی فایل های مورد نیاز برای پردازش و ارائه صفحات وب است.
- وب کلاینت – هر دستگاهی که می تواند یک درخواست HTTP/Web را به یک وب سرور ارسال کند.
- سرور محلی – یک وب سرور که فقط در داخل LAN شما (شبکه محلی) قابل بازدید است.
- سرور جهانی – یک وب سرور که از طریق اینترنت WAN در هر نقطه ای از جهان قابل دسترسی است.
- HTTP POST – یک درخواست وب که داده ها را به سرور منتقل می کند.
- HTTP GET – یک درخواست وب که داده ها را از یک وب سرور دریافت می کند
- پورت فرواردینگ – حالت تنظیم روتر که ترافیک را از یک پورت WAN به یک دستگاه خاص در داخل LAN شما هدایت می کند
مدار کنترل ال ای دی از اینترنت با آردوینو
با استفاده از سیم های جامپر، قطعات را مطابق شکل زیر وصل کنید:

درست مانند قبل، ما از Arduino UNO برای برنامه ریزی ماژول ESP-01 استفاده می کنیم. برای انجام این کار، تراشه داخلی UNO را با اتصال پین RESET به GND غیرفعال می کنیم. ماژول ESP8266 را به عنوان برد در Arduino IDE تنظیم کنید. برای تنظیم ماژول ESP-01 در حالت برنامه نویسی، پایه GPIO0 را به GND وصل کنید. به طور مشابه، قبل از آپلود، پین RESET ماژول ESP-01 را به GND متصل و جدا کنید.
برای این پروژه ما به قطعات زیر نیاز داریم:
- آردوینو اونو
- ماژول ESP8266 ESP-01
- مقاومت 1 کیلو اهم
- 2 * مقاومت 2 کیلو اهم
- مقاومت 10 کیلو اهم
- ال ای دی
- برد بورد
- سیم های جامپر
قطعات مورد نیاز را از فروشگاه ویراتهیه کنید.
کد پروژه کنترل GPIO از طریق صفحه اینترنت
کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم. فقط به ESP8266WiFI.h نیاز داریم. این به همراه کتابخانه برد ESP8266 ارائه می شود، بنابراین نیازی به نصب آن نیست.
#include <ESP8266WiFi.h>
اطلاعات اتصال به مودم خانگی خود را اینجا وارد کنید.
const char* ssid = "WiFi name"; const char* password = "WiFi password";
شماره پورت وب سرور را روی 80 قرار دهید.
WiFiServer server(80);
در قسمت setup پین LED را به عنوان خروجی تنظیم کرده و آن را روی LOW مقداردهی اولیه کنید.
جالب اینجاست که LED داخلی ESP-01 به GPIO2 متصل است اما LOW فعال آن است. اگر پین GPIO2 را روی LOW تنظیم کنید، LED متصل به GPIO2 خاموش می شود در حالی که LED داخلی روشن می شود. تنظیمات سریال مانیتور انجام دهید. سریال مانیتور برای نمایش اطلاعاتی مانند آدرس IP ماژول ESP-01 استفاده می شود. همچنین به شناسایی خطاها کمک می کند.
در نهایت، راه اندازی وب سرور را با استفاده از server.begin() راه اندازی می کنیم.
void setup()
{
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected to WiFi");
Serial.print("IP: "); Serial.println(WiFi.localIP());
server.begin();
}
سپس در قسمت loop تابع ()server.available داریم. این تابع کلاینت های جدید را شناسایی می کند. وقتی هیچ موردی وجود ندارد دائماً مقدار false را بر میگرداند. برعکس، اگر کد یک کلاینت جدید را شناسایی کند، true میشود و به خط بعدی می رود.
WiFiClient client = server.available();
if (!client) {
return;
}
سپس منتظر می ماند تا کلاینت درخواستی را ارسال کند.
while(!client.available()){
}
درخواست را می خواند و سپس آن را روی نمایشگر سریال چاپ می کند. تابع client.flush() مطمئن می شود که تمام کاراکترهای خروجی ارسال شده اند.
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
/LED=ON و /LED=OFF نام درخواست هایی هستند که برای روشن و خاموش کردن LED استفاده می کنیم. بعداً آنها را در کد HTML خواهیم دید.