Dual Axis Mini CCTV Camera using ESP32 Cam | IOT Based Science Project / Harish Projects

Image
  Purchase Course Video👇 https://harishprojects.graphy.com/ Watch full Detailed Video👇 Project Code👇 #include "esp_camera.h" #include <Arduino.h> #include <WiFi.h> #include <AsyncTCP.h> #include <ESPAsyncWebServer.h> #include <iostream> #include <sstream> #include <ESP32Servo.h> #define PAN_PIN 14 #define TILT_PIN 15 Servo panServo; Servo tiltServo; struct MOTOR_PINS {   int pinEn;     int pinIN1;   int pinIN2;     } ; std::vector<MOTOR_PINS> motorPins = {   { 2 , 12 , 13 } , //RIGHT_MOTOR Pins (EnA, IN1, IN2)   { 2 , 1 , 3 } ,  //LEFT_MOTOR  Pins (EnB, IN3, IN4) } ; #define LIGHT_PIN 4 #define UP 1 #define DOWN 2 #define LEFT 3 #define RIGHT 4 #define STOP 0 #define RIGHT_MOTOR 0 #define LEFT_MOTOR 1 #define FORWARD 1 #define BACKWARD - 1 const int PWMFreq = 1000 ; /* 1 KHz */ const int PWMResolution = 8 ; const int PWMSpeedChannel = 2 ;...

Automatic food feeder Robot for Handicapped Person's Best Project / Harish Projects


                                                          Click Here to watch full video

                                            https://www.youtube.com/watch?v=QaJKs9xJkSk



                        ...............................................Arduino Code................................................


//Code written by Ryan Chan; it is pretty inefficient, but gets the job done, I challenge you to make it more efficient!


//*IMPORTANT CHANGES IN VERSION 2: LEDs 4 and 5 have been moved to pins 7 and 8 respectively; Buttons 1 and 2 have been moved to pins 12 and 13 respectively. This is to make wiring easier.


#include <Servo.h>


Servo servo1; //Servos

Servo servo2;

Servo servo3;


const int LED1 = 2; //LEDs

const int LED2 = 3;

const int LED3 = 4;

const int LED4 = 7;

const int LED5 = 8;


const int button1 = 12; //Buttons

const int button2 = 13;


int button1Presses = 0; //Button values

boolean button2Pressed = false;


const int pot1 = A0; //Potentimeters

const int pot2 = A1; 

const int pot3 = A2;


int pot1Val; //Potentimeter values

int pot2Val;

int pot3Val;

int pot1Angle;

int pot2Angle;

int pot3Angle;


int servo1PosSaves[] = {1,1,1,1,1}; //position saves

int servo2PosSaves[] = {1,1,1,1,1};

int servo3PosSaves[] = {1,1,1,1,1};


void setup() {

  servo1.attach(5); // Set up everything and will run once; attach servos and define the pin modes

  servo2.attach(6);

  servo3.attach(9);

  

  pinMode(LED1, OUTPUT);

  pinMode(LED2, OUTPUT);

  pinMode(LED3, OUTPUT);

  pinMode(LED4, OUTPUT);

  pinMode(LED5, OUTPUT);

  pinMode(button1, INPUT);

  pinMode(button2, INPUT);


  Serial.begin(9600);

}


void loop() {

  // put your main code here, to run repeatedly: 

  pot1Val = analogRead(pot1); // This will read the values from the potentimeters and store it...

  pot1Angle = map(pot1Val, 0, 1023, 0, 179); // ... and this will map the values from the potentiometers to values the servos can use and store it for later use

  pot2Val = analogRead(pot2); 

  pot2Angle = map(pot2Val, 0, 1023, 0, 179);

  pot3Val = analogRead(pot3);

  pot3Angle = map(pot3Val, 0, 1023, 0, 179);

  

  servo1.write(pot1Angle); // These will make the servos move to the mapped angles

  servo2.write(pot2Angle);

  servo3.write(pot3Angle);

  

  if(digitalRead(button1) == HIGH){ // This will check how many times button1 is pressed and save the positions to an array depending on how many times it is pressed; switch/case works like a if statement

    button1Presses++;

    switch(button1Presses){

      case 1:

        servo1PosSaves[0] = pot1Angle;

        servo2PosSaves[0] = pot2Angle;

        servo3PosSaves[0] = pot3Angle;

        digitalWrite(LED1, HIGH);

        Serial.println("Pos 1 Saved");

        break;

      case 2:

         servo1PosSaves[1] = pot1Angle;

         servo2PosSaves[1] = pot2Angle;

         servo3PosSaves[1] = pot3Angle;

         digitalWrite(LED2, HIGH);

         Serial.println("Pos 2 Saved");

         break;

      case 3:

         servo1PosSaves[2] = pot1Angle;

         servo2PosSaves[2] = pot2Angle;

         servo3PosSaves[2] = pot3Angle;

         digitalWrite(LED3, HIGH);

         Serial.println("Pos 3 Saved");

         break;

       case 4:

         servo1PosSaves[3] = pot1Angle;

         servo2PosSaves[3] = pot2Angle;

         servo3PosSaves[3] = pot3Angle;

         digitalWrite(LED4, HIGH);

         Serial.println("Pos 4 Saved");

         break;

       case 5:

         servo1PosSaves[4] = pot1Angle;

         servo2PosSaves[4] = pot2Angle;

         servo3PosSaves[4] = pot3Angle;

         digitalWrite(LED5, HIGH);

         Serial.println("Pos 5 Saved");

         break;

    }

  }


  if(digitalRead(button2) == HIGH){ // Pretty self-explnatory here

    button2Pressed = true;   

  }

  

  if(button2Pressed){ // if the boolean button2Press is true, then the servos will run though all their saved positions

    for(int i = 0; i < 5; i++){

        servo1.write(servo1PosSaves[i]);

        servo2.write(servo2PosSaves[i]);

        servo3.write(servo3PosSaves[i]);

        Serial.println(" potentimeter Angles: ");

        Serial.println(servo1PosSaves[i]);

        Serial.println(servo2PosSaves[i]);

        Serial.println(servo3PosSaves[i]);

        delay(1050);

      }

  }

  delay(300);



            ..........................................................Diagram....................................................................





Comments

Nimark said…
Contact number
9998971469

Popular posts from this blog

Smart Bridge - Automatic Hight increase when flooding | Best science Project

How to make Phone control RC car using Arduino #phoneControlCar

How to make Wifi Talking robot with arduino codes and Diagram best science project