שרת אינטרנט ESP32 באמצעות Arduino IDE

Srt Yntrnt Esp32 B Mz Wt Arduino Ide



ESP32 הוא לוח מיקרו-בקר שיכול להתחבר למספר התקנים באמצעות פיני ה-GPIO שלו. יש לו מעבד כפול ליבה עם ממשק Wi-Fi ו-Bluetooth מובנה. שתי התכונות הללו הופכות את ESP32 ללוח מתאים לתכנון פרויקטי IoT. אחד המאפיינים העיקריים של לוח ה-ESP32 הוא היכולת שלו להתחבר לנקודת הגישה הקיימת. לא רק זה, אלא שהוא גם יכול ליצור את נקודת הגישה שלו, כך שמכשירים אחרים יכולים להתחבר אליו.

במאמר ESP32 זה, נחקור כיצד נוכל לחבר לוח ESP32 עם נקודת גישה ולעצב את שרת האינטרנט שלו. באמצעות שרת האינטרנט הזה, נשלוט על נוריות ומכשירי AC בעזרת מודול ממסר.

תוכן:

1. שרת אינטרנט ESP32

לשרת האינטרנט יש תוכנית מיוחדת שיכולה לעבד ולשלוח דפי אינטרנט ללקוחות אינטרנט. כדי לפתוח אתר, אנו משתמשים בדפדפן אינטרנט. דפדפן אינטרנט זה נקרא גם לקוח אינטרנט. האתר שאתה רוצה לראות מאוחסן במחשב אחר הנקרא שרת אינטרנט.







כדי לדבר זה עם זה, שרת האינטרנט ולקוח האינטרנט משתמשים בשפה משותפת הנקראת HTTP. כך זה עובד: לקוח האינטרנט מבקש משרת האינטרנט דף אינטרנט באמצעות בקשת HTTP. שרת האינטרנט שולח בחזרה את דף האינטרנט המבוקש. אם דף האינטרנט אינו קיים, תראה הודעת שגיאה.



ב-ESP32, אנו יכולים לעצב שרת אינטרנט, שכן ESP32 יכול לא רק להתחבר למכשירים אחרים ברשת אלא גם ליצור את שרת האינטרנט שלו ולהגיב לבקשות שהתקבלו. כל זה אפשרי מכיוון שה-ESP32 יכול לפעול בשלושה מצבים שונים:



  • תַחֲנָה
  • נקודת גישה
  • גם תחנה וגם נקודת גישה

אתה יכול לעיין במאמר זה כדי לקבל תובנה על כל שלושת המצבים של ESP32:





כיצד להגדיר נקודת גישה ESP32 (AP) באמצעות Arduino IDE

2. כיצד ליצור שרת אינטרנט ESP32 באמצעות Arduino IDE

כדי ליצור שרת אינטרנט ESP32 באמצעות Arduino IDE, אתה יכול לחבר את ESP32 לנקודת גישה וליצור כתובת IP עבור שרת האינטרנט. אתה יכול ליישם קצת HTML ו-CSS כדי לעצב את ממשק השרת שלך.



ברגע שהבנתם שנקודת הגישה של ESP32 עובדת, תוכלו לעצב בקלות שרת אינטרנט של ESP32 באמצעות קוד Arduino IDE. קוד שרת האינטרנט ESP32 משתמש בספריית ה-Wi-Fi ESP32. זה מקל על העבודה שלנו, שכן ספרייה זו מכילה את כל הפונקציות החשובות הדרושות לחיבור ESP32 לנקודת גישה.

בואו לעצב שרת אינטרנט ESP32 באמצעות קוד Arduino IDE.

3. קוד שרת אינטרנט ESP32

קוד שרת האינטרנט ESP32 כרוך בחיבור ESP32 עם נקודת הגישה וקבלת כתובת ה-IP של השרת. לאחר שתקבל את כתובת ה-IP, עליך להתחבר לאותה רשת כדי לגשת לשרת האינטרנט ESP32. משם אתה יכול לשלוט על נוריות ומכשירים אחרים.

פתח את Arduino IDE וחבר איתו את לוח ה-ESP32 שלך:

התקנת לוח ESP32 ב- Arduino IDE

לאחר חיבור לוח ה-ESP32, העלה את הקוד הבא ללוח שלך.

/**************

Linuxhint.com
שרת אינטרנט ESP32 לשליטה בנורות LED

***************/
// ייבא את הספרייה ל חיבור אינטרנט אלחוטי
#include
// הזן את שם ה-Wi-Fi והסיסמה שלך
const char * ssid = 'ESP32' ;
const char * סיסמה = '123456789' ;
// בחר את מספר היציאה ל שרת האינטרנט
שרת WiFiServer ( 80 ) ;
// צור משתנה לאחסון בקשת האינטרנט
כותרת מחרוזת;
// צור משתנים לאחסון מצב הפלטים
String output26State = 'כבוי' ;
String output27State = 'כבוי' ;
// הקצה את פיני הפלט למשתנים
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = מיליס ( ) ;
לא חתום ארוך הקודםTime = 0 ;
// בחר את זְמַן לְהַגבִּיל ל בקשת האינטרנט ב אלפיות השנייה
const long timeoutTime = 2000 ;
הגדרה בטלה ( ) {
Serial.begin ( 115200 ) ;
// הגדר את פיני הפלט כפי ש תפוקות
pinMode ( פלט26, פלט ) ;
pinMode ( פלט27, פלט ) ;
// כבה את היציאות
digitalWrite ( פלט26, נמוך ) ;
digitalWrite ( פלט27, נמוך ) ;
// התחבר לרשת ה-Wi-Fi
Serial.print ( 'מתחבר ל' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, סיסמה ) ;
// לַחֲכוֹת עד החיבור נוצר
בזמן ( WiFi.status ( ) ! = WL_CONNECTED ) {
לְעַכֵּב ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi מחובר.' ) ;
Serial.println ( 'כתובת ה - IP: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}

לולאה ריקה ( ) {
לקוח WiFiClient = server.available ( ) ; // חשבון ל לקוחות חדשים
אם ( לָקוּחַ ) { // אם לקוח מחובר,
currentTime = מיליליוס ( ) ;
previousTime = currentTime;
Serial.println ( 'לקוח חדש.' ) ; // הודע ליציאה הטורית
מחרוזת currentLine = '' ; // צור מחרוזת לאחסון נתוני הלקוח
בזמן ( לקוח.מחובר ( ) && currentTime - הקודםTime = 0 ) {
Serial.println ( 'GPIO 26 פועל' ) ;
output26State = 'עַל' ;
digitalWrite ( פלט26, גבוה ) ;
} אַחֵר אם ( header.indexOf ( 'קבל /26/off' ) > = 0 ) {
Serial.println ( 'GPIO 26 כבוי' ) ;
output26State = 'כבוי' ;
digitalWrite ( פלט26, נמוך ) ;
} אַחֵר אם ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 פועל' ) ;
output27State = 'עַל' ;
digitalWrite ( פלט27, גבוה ) ;
} אַחֵר אם ( header.indexOf ( 'קבל /27/off' ) > = 0 ) {
Serial.println ( 'GPIO 27 כבוי' ) ;
output27State = 'כבוי' ;
digitalWrite ( פלט27, נמוך ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS לסגנון הכפתורים
client.println ( '