//-------------------------------------------------------------------------
// 2023/07/06
//
// S James Parsons Jr
// www.sjamesparsonsjr.com
//
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// +++ Libraries +++
#include "WiFi.h"
#include "ESPAsyncWebServer.h"
#include <Wire.h>
#include <Adafruit_MPU6050.h> //#include <MPU9250.h>
#include <ESP32Servo.h> // Include library for ESP32
#include <Adafruit_Sensor.h>
//-------------------------------------------------------------------------
// +++ Variables +++
// ESP32 Pins
const int pinServo = 2;
const int pinTachometer = 19;
const int pinMPUclock = 21;
const int pinMPUdata = 22;
const int pinESC = 34;
// Wi-Fi
const char* ssid = "Wokwi-GUEST";// <-- Add to EEPROM
const char* password = "";
AsyncWebServer server(80); // Create AsyncWebServer object on port 80
// Accelerometer
Adafruit_MPU6050 mpu;
const int VIBRATION_THRESHOLD = 1000;
int setRPM = 255; // Max ESC speed. <-- REMOVE ??? esc.writeMicroseconds(2000);
// Tachometer
int calculatedRPM;
//int pid;
unsigned long millisBefore;
volatile int objects;
// Servo
const int servoPin = 2;
Servo servo;
int lidPosition = 0;
// ESC
Servo ESC;
//-------------------------------------------------------------------------
// +++ Functions +++
//-------------------------------------------------------------------------
// +++ Setup +++
void setup() {
Serial.begin(9600);
Serial.println("Centrifuge 0001");
Serial.println("Version alpha");
//setupESC();
setupServo();
//setupMPU();
}
//-------------------------------------------------------------------------
// +++ Loop +++
void loop() {
delay(2000);// 2 second delay
//setServoPos(90);
//setESC(180);
//Serial.println(getMPU());
// Tachometer
//detachInterrupt(0); //detaches the interrupt while calculating
}