🔹 वेबसॉकेट का उपयोग क्यों करें?
- HTTP अनुरोधों से अधिक तेज़ (पृष्ठ को पुनः लोड करने की आवश्यकता नहीं है)
- कोई फ़्रीज़ नहीं (Arduino ओवरलोड नहीं होता है)
- तुरंत प्रतिक्रिया बटन क्लिक करते समय.
📌 1️⃣ Arduino R4 WiFi कोड
इससे एक पोर्ट 81 पर WebSocket सर्वर नियंत्रण करने के लिए:
✅ एसजी90 सर्वो मोटर
✅ 28BYJ-48 स्टेपर मोटर
#include <WiFiS3.h>
#include <WebSocketsServer.h>
#include <Servo.h>
#include <Stepper.h>
// Wi-Fi Settings
const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASS";
// Create WebSocket server
WiFiServer server(80);
WebSocketsServer webSocket = WebSocketsServer(81);
// Motors
Servo myServo;
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
// WebSocket event handler
void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
String message = (char*)payload;
Serial.println("Command: " + message);
if (message == "servo_up") myServo.write(180);
if (message == "servo_down") myServo.write(0);
if (message == "stepper_left") myStepper.step(-50);
if (message == "stepper_right") myStepper.step(50);
}
void setup() {
Serial.begin(115200);
myServo.attach(6);
myStepper.setSpeed(10);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi!");
Serial.println(WiFi.localIP());
// Start WebSocket server
server.begin();
webSocket.begin();
webSocket.onEvent(webSocketEvent);
}
void loop() {
webSocket.loop(); // Keep WebSocket connection active
}
🔹 2️⃣ वेब नियंत्रण के लिए HTML + जावास्क्रिप्ट
इससे वेबसॉकेट के माध्यम से मोटर्स को नियंत्रित करने के लिए बटनों वाला एक सरल वेब पेज तैयार हो जाता है।
<!DOCTYPE html>
<html>
<head>
<script>
var ws = new WebSocket("ws://YOUR_IP_ADDRESS:81/");
function sendCommand(command) {
ws.send(command);
}
</script>
</head>
<body>
<h2>WiFi Motor Control</h2>
<button onclick="sendCommand('servo_up')">Servo Up</button>
<button onclick="sendCommand('servo_down')">Servo Down</button><br><br>
<button onclick="sendCommand('stepper_left')">Stepper Left</button>
<button onclick="sendCommand('stepper_right')">Stepper Right</button>
</body>
</html>
🔹 बदलें YOUR_IP_ADDRESS IP एड्रेस के साथ जिसे Arduino वाई-फाई से कनेक्ट होने के बाद सीरियल मॉनिटर में प्रिंट करता है।
🔹 वेबसॉकेट क्यों?
✅ तत्काल मोटर नियंत्रण – कोई देरी नहीं.
✅ कोई फ़्रीज़ नहीं - Arduino HTTP अनुरोधों से अतिभारित नहीं होता है।
✅ शांत संचालन - पृष्ठ को पुनः लोड करने की आवश्यकता नहीं है।