Skip to main content
Glama

Chotu Robo Server

by vishalmysore
esp32Complex.ino4.09 kB
#include <WiFi.h> #include <WebServer.h> #include <ArduinoJson.h> #include <Servo.h> const char* ssid = "mywifi"; // const char* password = "mypass"; // WebServer server(80); // Define pins const int ledPin = 13; const int motorRightPWM = 6; const int motorRightDir = 7; const int motorLeftPWM = 8; const int motorLeftDir = 9; const int servoPin = 10; const int fanPin = 4; const int moistureSensorPin = A0; const int distanceTrigPin = 5; const int distanceEchoPin = 6; const int tempSensorPin = A1; // Servo setup Servo myServo; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); Serial.print("Connecting to Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nConnected to Wi-Fi!"); Serial.print("ESP32 IP Address: "); Serial.println(WiFi.localIP()); pinMode(moistureSensorPin, INPUT); pinMode(distanceTrigPin, OUTPUT); pinMode(distanceEchoPin, INPUT); pinMode(tempSensorPin, INPUT); // API Endpoints server.on("/status", HTTP_GET, []() { StaticJsonDocument<200> doc; doc["LED"] = digitalRead(ledPin); doc["RightMotor"] = analogRead(motorRightPWM); doc["LeftMotor"] = analogRead(motorLeftPWM); doc["Servo"] = myServo.read(); doc["Fan"] = digitalRead(fanPin); doc["Moisture"] = analogRead(moistureSensorPin); doc["Distance"] = getDistance(); doc["Temperature"] = getTemperature(); String response; serializeJson(doc, response); server.send(200, "application/json", response); }); server.on("/control", HTTP_POST, []() { StaticJsonDocument<200> doc; deserializeJson(doc, server.arg("plain")); if (doc.containsKey("led")) digitalWrite(ledPin, doc["led"].as<bool>() ? HIGH : LOW); if (doc.containsKey("rightMotor")) { int speed = doc["rightMotor"].as<int>(); analogWrite(motorRightPWM, speed); digitalWrite(motorRightDir, HIGH); } if (doc.containsKey("leftMotor")) { int speed = doc["leftMotor"].as<int>(); analogWrite(motorLeftPWM, speed); digitalWrite(motorLeftDir, HIGH); } if (doc.containsKey("servo")) { myServo.attach(servoPin); myServo.write(doc["servo"].as<int>()); delay(500); myServo.detach(); } if (doc.containsKey("fan")) digitalWrite(fanPin, doc["fan"].as<bool>() ? HIGH : LOW); server.send(200, "text/plain", "Success"); }); server.on("/move", HTTP_POST, []() { StaticJsonDocument<200> doc; deserializeJson(doc, server.arg("plain")); if (doc.containsKey("direction")) { String direction = doc["direction"].as<String>(); if (direction == "forward") moveForward(); else if (direction == "backward") moveBackward(); else if (direction == "left") rotateLeft(); else if (direction == "right") rotateRight(); } server.send(200, "text/plain", "Movement executed"); }); server.on("/speak", HTTP_POST, []() { String message = server.arg("plain"); Serial.print("Speaking: "); Serial.println(message); server.send(200, "text/plain", "Message spoken"); }); server.begin(); } void loop() { server.handleClient(); } void moveForward() { analogWrite(motorRightPWM, 255); analogWrite(motorLeftPWM, 255); digitalWrite(motorRightDir, HIGH); digitalWrite(motorLeftDir, HIGH); } void moveBackward() { analogWrite(motorRightPWM, 255); analogWrite(motorLeftPWM, 255); digitalWrite(motorRightDir, LOW); digitalWrite(motorLeftDir, LOW); } void rotateLeft() { analogWrite(motorRightPWM, 255); analogWrite(motorLeftPWM, 0); digitalWrite(motorRightDir, HIGH); digitalWrite(motorLeftDir, LOW); } void rotateRight() { analogWrite(motorRightPWM, 255); analogWrite(motorLeftPWM, 0); digitalWrite(motorRightDir, LOW); digitalWrite(motorLeftDir, HIGH); } long getDistance() { digitalWrite(distanceTrigPin, LOW); delayMicroseconds(2); digitalWrite(distanceTrigPin, HIGH); delayMicroseconds(10); digitalWrite(distanceTrigPin, LOW); long duration = pulseIn(distanceEchoPin, HIGH); return (duration * 0.034 / 2); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vishalmysore/choturobo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server