6 virtual implementation - A-Division-Even-2024-25/Repo-06 GitHub Wiki
Sl. No | Sprint No | Date | Part Name / Drawing | Name of the Consumables | Specification | Qty | Student Sign | Guide Sign | Store Incharge Sign |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | - | Project (Lymphatic Pump) | Acrylic sheet | 105 × 135 | 01 | ✓ | ✓ | ✓ |
2 | 1 | - | Project | Acrylic sheet | 85 × 85 | 02 | ✓ | ✓ | ✓ |
3 | 1 | - | Project | Acrylic sheet | 85 × 135 | 01 | ✓ | ✓ | ✓ |
4 | 1 | - | Project | M3×30 bolt | - | 04 | ✓ | ✓ | ✓ |
5 | 2 | - | Frame Box | Fevikwik | - | 01 | ✓ | ✓ | ✓ |
6 | 2 | - | Frame Box | Upper Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
7 | 2 | - | Frame Box | Squid Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
8 | 3 | - | Rod | Nylon Pipe | 8 mm Ø | 01 | ✓ | ✓ | ✓ |
9 | 3 | - | Rod | Squid Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
10 | 3 | - | Rod | Nylon Pipe | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
11 | 3 | - | Rod | Acrylic Pipe | 8 mm Ø | 01 | ✓ | ✓ | ✓ |
12 | 4 | - | Rod | Squid Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
13 | 4 | - | Rod | Steel Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
14 | 4 | - | Rod | Steel Rod | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
15 | 4 | - | Rod | Acrylic Pipe | 6 mm Ø | 01 | ✓ | ✓ | ✓ |
16 | 5 | - | Clamp | Nut | M3 | 02 | ✓ | ✓ | ✓ |
17 | 5 | - | Clamp | Clamp | U | 01 | ✓ | ✓ | ✓ |
18 | 5 | - | Clamp | Clamp | D | 01 | ✓ | ✓ | ✓ |
19 | 6 | - | - | Clamp | U | 01 | ✓ | ✓ | ✓ |
20 | 6 | - | - | Clamp | D | 01 | ✓ | ✓ | ✓ |
#include <WiFi.h>
#include <WebServer.h>
// WiFi credentials
const char* ssid = "YourWiFiSSID"; // Replace with your WiFi SSID
const char* password = "YourWiFiPassword"; // Replace with your WiFi password
// Pin definitions
#define RELAY_IN1 18 // Relay IN1 connected to D18
#define RELAY_IN2 13 // Relay IN2 connected to D13
#define IR_SENSOR 5 // IR sensor OUT connected to D5
// Web server on port 80
WebServer server(80);
// Motor states
enum MotorState { STOP, FORWARD, BACKWARD };
MotorState motorState = STOP;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Starting ESP32...");
pinMode(RELAY_IN1, OUTPUT);
pinMode(RELAY_IN2, OUTPUT);
pinMode(IR_SENSOR, INPUT);
digitalWrite(RELAY_IN1, HIGH);
digitalWrite(RELAY_IN2, HIGH);
Serial.print("Connecting to WiFi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
unsigned long startAttemptTime = millis();
const unsigned long timeout = 10000;
while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < timeout) {
delay(500);
Serial.print(".");
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("\nConnected to WiFi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("\nFailed to connect to WiFi. Check SSID, password, or signal strength.");
return;
}
server.on("/", handleRoot);
server.on("/forward", handleForward);
server.on("/backward", handleBackward);
server.on("/stop", handleStop);
server.begin();
Serial.println("Web server started");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
server.handleClient();
} else {
Serial.println("WiFi disconnected. Attempting to reconnect...");
WiFi.reconnect();
delay(5000);
}
if (digitalRead(IR_SENSOR) == LOW) {
stopMotor();
Serial.println("Obstacle detected, motor paused");
} else {
switch (motorState) {
case FORWARD:
forwardMotor();
Serial.println("No obstacle, resuming Forward");
break;
case BACKWARD:
backwardMotor();
Serial.println("No obstacle, resuming Backward");
break;
case STOP:
stopMotor();
break;
}
}
delay(100);
}
void handleRoot() {
String html = "<html><body><h1>Rope Walking Bot Control</h1>";
html += "<p><a href=\"/forward\"><button style=\"font-size:20px; padding:10px; margin:5px;\">Forward</button></a></p>";
html += "<p><a href=\"/backward\"><button style=\"font-size:20px; padding:10px; margin:5px;\">Backward</button></a></p>";
html += "<p><a href=\"/stop\"><button style=\"font-size:20px; padding:10px; margin:5px;\">Stop</button></a></p>";
html += "<p>Motor State: " + String(motorState == FORWARD ? "Forward (Anticlockwise)" : motorState == BACKWARD ? "Backward (Clockwise)" : "Stopped") + "</p>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void handleForward() {
if (digitalRead(IR_SENSOR) == HIGH) {
motorState = FORWARD;
forwardMotor();
Serial.println("Forward button pressed (should be anticlockwise)");
} else {
Serial.println("Obstacle detected, cannot start forward");
}
server.sendHeader("Location", "/");
server.send(303);
}
void handleBackward() {
if (digitalRead(IR_SENSOR) == HIGH) {
motorState = BACKWARD;
backwardMotor();
Serial.println("Backward button pressed (should be clockwise)");
} else {
Serial.println("Obstacle detected, cannot start backward");
}
server.sendHeader("Location", "/");
server.send(303);
}
void handleStop() {
motorState = STOP;
stopMotor();
Serial.println("Stop button pressed");
server.sendHeader("Location", "/");
server.send(303);
}
void forwardMotor() {
Serial.println("Forward: IN1 LOW, IN2 HIGH");
digitalWrite(RELAY_IN1, LOW);
digitalWrite(RELAY_IN2, HIGH);
}
void backwardMotor() {
Serial.println("Backward: IN1 HIGH, IN2 LOW");
digitalWrite(RELAY_IN1, HIGH);
digitalWrite(RELAY_IN2, LOW);
}
void stopMotor() {
Serial.println("Stop: IN1 HIGH, IN2 HIGH");
digitalWrite(RELAY_IN1, HIGH);
digitalWrite(RELAY_IN2, HIGH);
}