เว็บเซิร์ฟเวอร์ ESP32 โดยใช้ Arduino IDE

Web Seirfwexr Esp32 Doy Chi Arduino Ide



ESP32 เป็นบอร์ดไมโครคอนโทรลเลอร์ที่สามารถเชื่อมต่อกับอุปกรณ์หลายเครื่องได้โดยใช้พิน GPIO มีโปรเซสเซอร์แบบดูอัลคอร์พร้อมอินเทอร์เฟซ Wi-Fi และ Bluetooth ในตัว คุณสมบัติทั้งสองนี้ทำให้ ESP32 เป็นบอร์ดที่เหมาะสมสำหรับการออกแบบโครงการ IoT หนึ่งในคุณสมบัติหลักของบอร์ด ESP32 คือความสามารถในการเชื่อมต่อกับจุดเชื่อมต่อที่มีอยู่ ไม่เพียงเท่านั้น แต่ยังสามารถสร้างจุดเข้าใช้งานเพื่อให้อุปกรณ์อื่นสามารถเชื่อมต่อได้ด้วย

ในบทความ ESP32 นี้ เราจะสำรวจวิธีที่เราสามารถเชื่อมต่อบอร์ด ESP32 กับจุดเข้าใช้งานและออกแบบเว็บเซิร์ฟเวอร์ได้ เมื่อใช้เว็บเซิร์ฟเวอร์นั้น เราจะควบคุม LED และเครื่องใช้ไฟฟ้า 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 จากนั้นคุณสามารถควบคุมไฟ LED และอุปกรณ์อื่นๆ ได้

เปิด Arduino IDE และเชื่อมต่อบอร์ด ESP32 ของคุณด้วย:

การติดตั้งบอร์ด ESP32 ใน Arduino IDE

เมื่อเชื่อมต่อบอร์ด ESP32 แล้ว ให้อัปโหลดโค้ดต่อไปนี้ไปยังบอร์ดของคุณ

-

Linuxhint.com
เว็บเซิร์ฟเวอร์ ESP32 เพื่อควบคุมไฟ LED

-
- นำเข้าห้องสมุด สำหรับ การเชื่อมต่อ Wi-Fi
#รวม
- ป้อนชื่อ Wi-Fi และรหัสผ่านของคุณ
ถ่าน const - เอสเอส = 'ESP32' -
ถ่าน const - รหัสผ่าน = '123456789' -
- เลือกหมายเลขพอร์ต สำหรับ เว็บเซิร์ฟเวอร์
เซิร์ฟเวอร์ WiFiServer - 80 - -
- สร้างตัวแปรเพื่อจัดเก็บคำขอเว็บ
ส่วนหัวของสตริง;
- สร้างตัวแปรเพื่อจัดเก็บสถานะของเอาต์พุต
สตริงเอาต์พุต26สถานะ = 'ปิด' -
สตริงเอาต์พุต27สถานะ = 'ปิด' -
- กำหนดพินเอาท์พุตให้กับตัวแปร
const int เอาท์พุต26 = 26 -
const int เอาท์พุต27 = 27 -
currentTime แบบยาวที่ไม่ได้ลงนาม = มิลลิวินาที - - -
PreviousTime ยาวที่ไม่ได้ลงนาม = 0 -
- เลือก เวลา ขีด จำกัด สำหรับ คำขอทางเว็บ ใน มิลลิวินาที
const หมดเวลานานTime = 2000 -
การตั้งค่าเป็นโมฆะ - - -
อนุกรม.begin - 115200 - -
- ตั้งพินเอาท์พุต เช่น เอาท์พุท
​ พินโหมด - เอาท์พุต26, เอาท์พุต - -
​ พินโหมด - เอาท์พุต27, เอาท์พุต - -
- ปิดเอาต์พุต
ดิจิทัลเขียน - เอาท์พุต26, ต่ำ - -
ดิจิทัลเขียน - เอาท์พุต27, ต่ำ - -
- เชื่อมต่อกับเครือข่าย Wi-Fi
อนุกรม.พิมพ์ - 'การเชื่อมต่อกับ ' - -
Serial.println - เอสเอส - -
WiFi.เริ่มต้น - SSID, รหัสผ่าน - -
- รอ จนกระทั่ง มีการสร้างการเชื่อมต่อแล้ว
ในขณะที่ - WiFi.สถานะ - - - = WL_เชื่อมต่อแล้ว - -
ล่าช้า - 500 - -
อนุกรม.พิมพ์ - - - -
-
Serial.println - - - -
Serial.println - 'เชื่อมต่อ WiFi แล้ว' - -
Serial.println - 'ที่อยู่ IP: ' - -
Serial.println - WiFi.localIP - - - -
เซิร์ฟเวอร์.เริ่มต้น - - -
-

ห่วงเป็นโมฆะ - - -
ไคลเอนต์ WiFiClient = เซิร์ฟเวอร์พร้อมใช้งาน - - - - ตรวจสอบ สำหรับ ลูกค้าใหม่
ถ้า - ลูกค้า - - - หากลูกค้าเชื่อมต่ออยู่
เวลาปัจจุบัน = มิลลิวินาที - - -
เวลาก่อนหน้า = เวลาปัจจุบัน;
Serial.println - 'ลูกค้าใหม่' - - - แจ้งพอร์ตอนุกรม
สตริง currentLine = - - - สร้างสตริงเพื่อเก็บข้อมูลลูกค้า
ในขณะที่ - ลูกค้าเชื่อมต่อแล้ว - - - เวลาปัจจุบัน - เวลาก่อนหน้า = 0 - -
Serial.println - 'เปิด GPIO 26' - -
เอาท์พุท26สถานะ= 'บน' -
ดิจิทัลเขียน - เอาท์พุต26 สูง - -
- อื่น ถ้า - header.indexOf - 'รับ /26/ปิด' - - - 0 - -
Serial.println - 'ปิด GPIO 26' - -
เอาท์พุท26สถานะ= 'ปิด' -
ดิจิทัลเขียน - เอาท์พุต26, ต่ำ - -
- อื่น ถ้า - header.indexOf - 'รับ /27/เปิด' - - - 0 - -
Serial.println - 'เปิด GPIO 27' - -
เอาท์พุท27สถานะ= 'บน' -
ดิจิทัลเขียน - เอาต์พุต 27 สูง - -
- อื่น ถ้า - header.indexOf - 'รับ /27/ปิด' - - - 0 - -
Serial.println - 'ปิด GPIO 27' - -
เอาท์พุท27สถานะ= 'ปิด' -
ดิจิทัลเขียน - เอาท์พุต27, ต่ำ - -
-

ลูกค้า.println - '' - -
ลูกค้า.println - '<หัว><ชื่อเมตา=' วิวพอร์ต 'เนื้อหา=' ความกว้าง =ความกว้างของอุปกรณ์, ขนาดเริ่มต้น= 1 - - -
ลูกค้า.println - '<ลิงก์ rel=' ไอคอน 'href=' ข้อมูล:, - - -
- CSS เพื่อจัดสไตล์ปุ่ม
ลูกค้า.println - '