### ESP32控制LED 要使用ESP32來控制LED並透過Python發送命令,你需要準備以下幾個部分: 1. **硬體準備**: - ESP32開發板 - LED燈 - 適當的電阻(例如220歐姆) - 接線材料(如杜邦線) 2. **ESP32編程**: - 使用Arduino IDE或其他開發環境為ESP32編寫程式,讓它能接收指令並控制LED。 - 常見的通訊協議有Wi-Fi(使用HTTP或MQTT)或藍牙。這裡以Wi-Fi為例,可以設置ESP32作為一個Web服務器或客戶端。 3. **Python程式**: - 使用Python來編寫發送指令到ESP32的腳本。如果ESP32設為Web服務器,可以使用`requests`庫來發送HTTP請求。 以下是一個基本的實現方案: ### ESP32 程式碼範例 使用Arduino IDE編寫ESP32程式,讓它作為一個簡單的Web服務器,當收到特定HTTP請求時控制LED: ```cpp #include <WiFi.h> const char* ssid = "yourSSID"; const char* password = "yourPassword"; WiFiServer server(80); int ledPin = 2; // GPIO2 of ESP32 void setup() { pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } server.begin(); } void loop() { WiFiClient client = server.available(); if (client) { String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n') { if (currentLine.length() == 0) { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); client.println("<!DOCTYPE html><html>"); client.println("<body><h1>ESP32 LED Control</h1>"); client.println("<p><a href=\"/LED=ON\">Turn On LED</a></p>"); client.println("<p><a href=\"/LED=OFF\">Turn Off LED</a></p>"); client.println("</body></html>"); client.stop(); } else { if (currentLine.indexOf("GET /LED=ON") >= 0) { digitalWrite(ledPin, HIGH); } else if (currentLine.indexOf("GET /LED=OFF") >= 0) { digitalWrite(ledPin, LOW); } currentLine = ""; } } else if (c != '\r') { currentLine += c; } } } } } ``` ### Python 腳本範例 Python腳本使用`requests`庫來控制LED: ```python import requests def control_led(command): esp_ip = '192.168.1.100' # ESP32的IP地址 if command.lower() == 'on': requests.get(f'http://{esp_ip}/LED=ON') elif command.lower() == 'off': requests.get(f'http://{esp_ip}/LED=OFF') # 範例使用 control_led('on') ``` ### 操作步驟 1. 將ESP32連接至你的Wi-Fi網絡。 2. 確認ESP32的IP地址並更新到Python腳本中。 3. 編譯並上傳ESP32程式到開發板。 4. 運行Python腳本以控制LED。 這只是一個基本示範。實際應用中你可能需要考慮安全性、網絡穩定性等因素。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up