0% found this document useful (0 votes)
5 views2 pages

Arm Esp32

This document is an Arduino sketch that connects an ESP32 microcontroller to Wi-Fi and Firebase to control three servos based on data retrieved from a Firebase Realtime Database. It includes setup for Wi-Fi credentials, Firebase configuration, and servo initialization, followed by a loop that continuously reads servo positions from Firebase and updates the servos accordingly. Error handling is implemented for Firebase data retrieval, and a delay is included to prevent excessive requests.

Uploaded by

readerzx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views2 pages

Arm Esp32

This document is an Arduino sketch that connects an ESP32 microcontroller to Wi-Fi and Firebase to control three servos based on data retrieved from a Firebase Realtime Database. It includes setup for Wi-Fi credentials, Firebase configuration, and servo initialization, followed by a loop that continuously reads servo positions from Firebase and updates the servos accordingly. Error handling is implemented for Firebase data retrieval, and a delay is included to prevent excessive requests.

Uploaded by

readerzx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

#include <Arduino.

h>
#include <WiFi.h>
#include <FirebaseESP32.h>
#include <addons/TokenHelper.h>
#include <addons/RTDBHelper.h>
#include <ESP32Servo.h> // Include ESP32Servo library

// Wi-Fi credentials
#define WIFI_SSID "Josuah"
#define WIFI_PASSWORD "josuah20"

// Firebase configuration
#define API_KEY "AIzaSyCyK28pwVSdR2AHQ_l8-m23GEWNl0M14j0"
#define DATABASE_URL "https://blinkingled-71b93-default-rtdb.asia-
southeast1.firebasedatabase.app/"

// User credentials
#define USER_EMAIL "[email protected]"
#define USER_PASSWORD "mikedacanay6"

// Firebase objects
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;

// Servo objects and pins


Servo servo1;
Servo servo2;
Servo servo3;

const int servo1Pin = 12;


const int servo2Pin = 13;
const int servo3Pin = 14;

void setup()
{
Serial.begin(115200);

// Attach servos to their respective pins


servo1.attach(servo1Pin, 500, 2400); // Specify pulse width range for ESP32
servo2.attach(servo2Pin, 500, 2400); // Adjust if needed for specific servos
servo3.attach(servo3Pin, 500, 2400);

// Set initial positions


servo1.write(90); // Neutral position
servo2.write(90); // Neutral position
servo3.write(90); // Neutral position

// Connect to Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.println("Connected to Wi-Fi");
// Firebase setup
config.api_key = API_KEY;
config.database_url = DATABASE_URL;

auth.user.email = USER_EMAIL;
auth.user.password = USER_PASSWORD;

// Monitor token generation


config.token_status_callback = tokenStatusCallback;

Firebase.begin(&config, &auth);
Firebase.reconnectNetwork(true);
}

void loop()
{
// Read the position for Servo 1 from Firebase
if (Firebase.getInt(fbdo, "/servo1"))
{
int position1 = fbdo.intData();
Serial.println("Servo 1 Position: " + String(position1));
servo1.write(position1); // Move servo to specified position
}
else
{
Serial.println("Error reading /servo1: " + fbdo.errorReason());
}

// Read the position for Servo 2 from Firebase


if (Firebase.getInt(fbdo, "/servo2"))
{
int position2 = fbdo.intData();
Serial.println("Servo 2 Position: " + String(position2));
servo2.write(position2); // Move servo to specified position
}
else
{
Serial.println("Error reading /servo2: " + fbdo.errorReason());
}

// Read the position for Servo 3 from Firebase


if (Firebase.getInt(fbdo, "/servo3"))
{
int position3 = fbdo.intData();
Serial.println("Servo 3 Position: " + String(position3));
servo3.write(position3); // Move servo to specified position
}
else
{
Serial.println("Error reading /servo3: " + fbdo.errorReason());
}

delay(1000); // Avoid spamming Firebase


}

You might also like