Máy chủ web ESP32 sử dụng Arduino IDE

May Chu Web Esp32 Su Dung Arduino Ide



ESP32 là bo mạch vi điều khiển có thể kết nối với nhiều thiết bị bằng các chân GPIO của nó. Nó có bộ xử lý lõi kép với giao diện Wi-Fi và Bluetooth tích hợp. Cả hai tính năng này làm cho ESP32 trở thành một bo mạch phù hợp để thiết kế các dự án IoT. Một trong những tính năng chính của bo mạch ESP32 là khả năng kết nối với điểm truy cập hiện có. Không chỉ vậy, nó còn có thể tạo điểm truy cập để các thiết bị khác có thể kết nối với nó.

Trong bài viết ESP32 này, chúng ta sẽ khám phá cách có thể kết nối bo mạch ESP32 với một điểm truy cập và thiết kế máy chủ web của nó. Sử dụng máy chủ web đó, chúng tôi sẽ điều khiển đèn LED và các thiết bị AC với sự trợ giúp của mô-đun rơle.

Nội dung:

1. Máy chủ web ESP32

Máy chủ Web có một chương trình đặc biệt có thể xử lý và gửi các trang web đến máy khách web. Để mở một trang web, chúng tôi sử dụng trình duyệt web. Trình duyệt web này còn được gọi là máy khách web. Trang web bạn muốn xem được lưu trữ trên một máy tính khác gọi là máy chủ web.







Để giao tiếp với nhau, máy chủ web và máy khách web sử dụng một ngôn ngữ chung gọi là HTTP. Đây là cách nó hoạt động: máy khách web yêu cầu máy chủ web cung cấp một trang web bằng yêu cầu HTTP. Máy chủ web sẽ gửi lại trang web được yêu cầu. Nếu trang web không hiện diện, bạn sẽ thấy thông báo lỗi.



Trong ESP32, chúng ta có thể thiết kế một máy chủ Web, vì ESP32 không chỉ có thể kết nối với các thiết bị khác qua mạng mà còn có thể tạo máy chủ web của nó và phản hồi các yêu cầu nhận được. Điều này hoàn toàn có thể thực hiện được vì ESP32 có thể hoạt động ở ba chế độ khác nhau:



  • Ga tàu
  • Điểm truy cập
  • Cả trạm và điểm truy cập

Bạn có thể xem bài viết này để hiểu rõ hơn về cả ba chế độ của ESP32:





Cách đặt điểm truy cập (AP) ESP32 bằng Arduino IDE

2. Cách tạo máy chủ web ESP32 bằng Arduino IDE

Để tạo máy chủ web ESP32 bằng Arduino IDE, bạn có thể kết nối ESP32 với Điểm truy cập và tạo địa chỉ IP cho máy chủ Web. Bạn có thể áp dụng một số HTML và CSS để thiết kế giao diện máy chủ của mình.



Khi bạn hiểu điểm truy cập ESP32 đang hoạt động, bạn có thể dễ dàng thiết kế máy chủ web ESP32 bằng mã Arduino IDE. Mã máy chủ web ESP32 sử dụng thư viện Wi-Fi ESP32. Điều này giúp công việc của chúng tôi dễ dàng hơn vì thư viện này chứa tất cả các chức năng quan trọng cần thiết để kết nối ESP32 với điểm truy cập.

Hãy thiết kế một máy chủ Web ESP32 bằng mã Arduino IDE.

3. Mã máy chủ web ESP32

Mã máy chủ web ESP32 liên quan đến kết nối ESP32 với điểm truy cập và nhận địa chỉ IP cho máy chủ. Sau khi nhận được địa chỉ IP, bạn phải kết nối với cùng một mạng để truy cập máy chủ web ESP32. Từ đó bạn có thể điều khiển đèn LED và các thiết bị khác.

Mở Arduino IDE và kết nối bo mạch ESP32 của bạn với nó:

Cài đặt board ESP32 trong Arduino IDE

Sau khi bảng ESP32 được kết nối, hãy tải mã sau lên bảng của bạn.

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

Linuxhint.com
Máy chủ web ESP32 để điều khiển đèn LED

**************/
// Nhập thư viện Kết nối wifi
#include
// Nhập tên và mật khẩu Wi-Fi của bạn
const char * ssid = 'ESP32' ;
const char * mật khẩu = '123456789' ;
// Chọn số cổng máy chủ web
Máy chủ WiFiMáy chủ ( 80 ) ;
// Tạo một biến để lưu trữ yêu cầu web
Tiêu đề chuỗi;
// Tạo các biến để lưu trữ trạng thái của đầu ra
Chuỗi đầu ra26State = 'TẮT' ;
Đầu ra chuỗi27State = 'TẮT' ;
// Gán các chân đầu ra cho các biến
const int đầu ra26 = 26 ;
const int đầu ra27 = 27 ;
dòng điện dài không dấuTime = millis ( ) ;
chưa ký dài trướcThời gian = 0 ;
// Chọn thời gian giới hạn yêu cầu web TRONG mili giây
const thời gian chờ dàiTime = 2000 ;
thiết lập vô hiệu ( ) {
Nối tiếp.bắt đầu ( 115200 ) ;
// Đặt các chân đầu ra BẰNG kết quả đầu ra
​ pinChế độ ( đầu ra26, ĐẦU RA ) ;
​ pinChế độ ( đầu ra27, ĐẦU RA ) ;
// Tắt đầu ra
  digitalWrite ( đầu ra26, THẤP ) ;
  digitalWrite ( đầu ra27, THẤP ) ;
// Kết nối với mạng Wi-Fi
Nối tiếp.print ( 'Đang kết nối tới ' ) ;
Serial.println ( ssid ) ;
WiFi.bắt đầu ( ssid, mật khẩu ) ;
// Chờ đợi cho đến khi kết nối được thiết lập
trong khi ( WiFi.status ( ) ! = WL_CONNECTED ) {
trì hoãn ( 500 ) ;
Nối tiếp.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'Wifi đã được kết nối.' ) ;
Serial.println ( 'Địa chỉ IP: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
máy chủ.bắt đầu ( ) ;
}

vòng lặp trống ( ) {
Máy khách WiFiClient = server.available ( ) ; // Kiểm tra khách hàng mới
nếu như ( khách hàng ) { // Nếu một máy khách được kết nối,
thời gian hiện tại = mili ( ) ;
thời gian trước đó = thời gian hiện tại;
Serial.println ( 'Khách hàng mới.' ) ; // Thông báo cổng nối tiếp
Chuỗi hiện tạiLine = '' ; // Tạo một chuỗi để lưu trữ dữ liệu khách hàng
trong khi ( client.connected ( ) && Thời gian hiện tại - Thời gian trước đó = 0 ) {
Serial.println ( 'GPIO 26 bật' ) ;
đầu ra26Trạng thái = 'TRÊN' ;
              digitalWrite ( đầu ra26, CAO ) ;
} khác nếu như ( tiêu đề.indexOf ( 'NHẬN /26/giảm' ) > = 0 ) {
Serial.println ( 'Tắt GPIO 26' ) ;
đầu ra26Trạng thái = 'TẮT' ;
              digitalWrite ( đầu ra26, THẤP ) ;
} khác nếu như ( tiêu đề.indexOf ( 'NHẬN /27/vào' ) > = 0 ) {
Serial.println ( 'GPIO 27 bật' ) ;
đầu ra27Trạng thái = 'TRÊN' ;
              digitalWrite ( đầu ra27, CAO ) ;
} khác nếu như ( tiêu đề.indexOf ( 'NHẬN /27/giảm' ) > = 0 ) {
Serial.println ( 'Tắt GPIO 27' ) ;
đầu ra27Trạng thái = 'TẮT' ;
              digitalWrite ( đầu ra27, THẤP ) ;
}

khách hàng.println ( '' ) ;
khách hàng.println ( '' ) ;
khách hàng.println ( '' ) ;
// CSS để tạo kiểu cho các nút
khách hàng.println ( '