From c35b24adbe59585048481a98936736006197d277 Mon Sep 17 00:00:00 2001
From: mhby1g21 <mhby1g21@soton.ac.uk>
Date: Tue, 18 Feb 2025 10:49:39 +0000
Subject: [PATCH] wifi command test codes

---
 wifi-test/wifi-test.ino | 129 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 129 insertions(+)
 create mode 100644 wifi-test/wifi-test.ino

diff --git a/wifi-test/wifi-test.ino b/wifi-test/wifi-test.ino
new file mode 100644
index 0000000..27b672a
--- /dev/null
+++ b/wifi-test/wifi-test.ino
@@ -0,0 +1,129 @@
+#include <WiFiNINA.h>
+#include <Servo.h>
+
+// WiFi credentials
+const char ssid[] = "YourNetwork";    // Your network SSID
+const char pass[] = "YourPassword";    // Your network password
+int status = WL_IDLE_STATUS;
+
+// Server settings
+WiFiServer server(80);
+
+// Create servo objects
+Servo thumb;
+Servo index;
+Servo middle;
+Servo ring;
+Servo pinky;
+
+// Servo pins
+const int thumbPin = 2;
+const int indexPin = 3;
+const int middlePin = 4;
+const int ringPin = 5;
+const int pinkyPin = 6;
+
+void setup() {
+  Serial.begin(9600);
+  
+  // Initialize servos
+  thumb.attach(thumbPin);
+  index.attach(indexPin);
+  middle.attach(middlePin);
+  ring.attach(ringPin);
+  pinky.attach(pinkyPin);
+  
+  // Set initial positions
+  thumb.write(90);
+  index.write(90);
+  middle.write(90);
+  ring.write(90);
+  pinky.write(90);
+  
+  // Check for WiFi module
+  if (WiFi.status() == WL_NO_MODULE) {
+    Serial.println("Communication with WiFi module failed!");
+    while (true);
+  }
+
+  // Attempt to connect to WiFi network
+  while (status != WL_CONNECTED) {
+    Serial.print("Attempting to connect to Network: ");
+    Serial.println(ssid);
+    status = WiFi.begin(ssid, pass);
+    delay(10000);
+  }
+
+  Serial.println("Connected to wifi");
+  printWiFiStatus();
+  
+  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();
+            break;
+          } else {
+            currentLine = "";
+          }
+        } else if (c != '\r') {
+          currentLine += c;
+        }
+        
+        // Process commands
+        // Format: /finger/angle (e.g., /thumb/180)
+        if (currentLine.startsWith("GET /")) {
+          processCommand(currentLine);
+        }
+      }
+    }
+    client.stop();
+  }
+}
+
+void processCommand(String command) {
+  // Extract finger and angle from command
+  int firstSlash = command.indexOf('/');
+  int secondSlash = command.indexOf('/', firstSlash + 1);
+  int space = command.indexOf(' ', secondSlash);
+  
+  if (firstSlash != -1 && secondSlash != -1 && space != -1) {
+    String finger = command.substring(firstSlash + 1, secondSlash);
+    int angle = command.substring(secondSlash + 1, space).toInt();
+    
+    // Constrain angle between 0 and 180
+    angle = constrain(angle, 0, 180);
+    
+    // Move appropriate servo
+    if (finger == "thumb") thumb.write(angle);
+    else if (finger == "index") index.write(angle);
+    else if (finger == "middle") middle.write(angle);
+    else if (finger == "ring") ring.write(angle);
+    else if (finger == "pinky") pinky.write(angle);
+  }
+}
+
+void printWiFiStatus() {
+  Serial.print("SSID: ");
+  Serial.println(WiFi.SSID());
+
+  IPAddress ip = WiFi.localIP();
+  Serial.print("IP Address: ");
+  Serial.println(ip);
+
+  long rssi = WiFi.RSSI();
+  Serial.print("Signal strength (RSSI):");
+  Serial.print(rssi);
+  Serial.println(" dBm");
+}
\ No newline at end of file
-- 
GitLab