---
# System prepended metadata

title: 智慧家電簡章：ESP32 基於 Web 的遙控與互動系統

---

### 系統簡章：ESP32 基於 Web 的遙控與互動系統

這份簡章旨在詳細介紹一個利用 ESP32 微控制器和 Python 腳本建立的基於 Web 的互動系統，這個系統使得用戶能夠通過 HTTP GET 請求來遠程控制和與 ESP32 通訊。

#### ESP32 微控制器設定

##### 功能描述
此系統設定 ESP32 作為一個 HTTP 伺服器，用於接收和回應來自網路的請求。使用 WiFi 模組連接至指定無線網路，並在成功連接後，通過串列輸出其 IP 地址。

##### 主要特點
1. **WiFi 連接**：自動連接至預設的無線網路。
2. **HTTP 伺服器**：在端口 80 上啟動，接收關於特定端點的 GET 請求。
3. **消息處理**：接收含有消息的請求，並將消息內容透過串列輸出，同時回應確認消息。

##### 程式碼示例
```cpp
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  server.on("/", HTTP_GET, []() {
    String message = server.arg("message");
    Serial.println(message);
    server.send(200, "text/plain", "Received: " + message);
  });
  server.begin();
  Serial.println("HTTP server started");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
}
```
Arduino 程式碼
```python
#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "nga";
const char* password = "0958188700";


WebServer server(80);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  server.on("/", HTTP_GET, []() {
    String message = server.arg("message");
    Serial.println(message);
    server.send(200, "text/plain", "Received: " + message);
  });

  server.begin();
  Serial.println("HTTP server started");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  server.handleClient();
}

```

#### Python 腳本

##### 功能描述
Python 腳本作為客戶端，向 ESP32 發送包含特定消息的 HTTP GET 請求，並接收來自 ESP32 的回應。

##### 主要特點
1. **HTTP 請求**：使用 Python 的 `requests` 庫發送 GET 請求。
2. **靈活的參數傳遞**：可以通過 URL 參數傳遞消息給 ESP32。
3. **回應處理**：打印來自 ESP32 的回應。

##### 程式碼示例
```python
def send_message(ip, message):
    url = f"http://{ip}/"
    params = {'message': message}
    response = requests.get(url, params=params)
    print(f"Server responded: {response.text}")
```

#### 使用指南
1. **設定 ESP32**：編譯並上傳上述 Arduino 程式碼到 ESP32。確保設定的 WiFi 名稱和密碼正確，以便 ESP32 可以連接。
2. **運行 Python 腳本**：在電腦上執行 Python 腳本，確保與 ESP32 在同一 WiFi 網絡下，並將 `send_message` 函數中的 IP 地址替換為 ESP32 的實際 IP 地址。

這個系統能夠實現基本的遠程通訊和控制功能，適用於家庭自動化、基礎 IoT 學習和開發測試。

Python 程式碼
```python
import requests

def send_message(ip, message):
    url = f"http://{ip}/"
    params = {'message': message}
    response = requests.get(url, params=params)
    print(f"Server responded: {response.text}")

# 替换以下IP地址为ESP32的实际IP地址
send_message('192.168.0.42', 'Hello ESP32!')

```