Sistema de Asistencia con AS608

Me disculpo enormemente por demorarme tanto, nos centramos en otras cosas pensando que el código de arduino sería un poco menos complejo, ya veo el error...
De antemano, probé diferentes formas y al parecer no fui capaz de hacer una conexión entre el MEGA y el ESP8266, por lo cual me decanté por usar exclusivamente el ESP8266 junto al AS608, como me había comentado Surbyte; aunque proximamente agregaré un pequeño display para mostrar la información.
Tengo actualmente un código un poco simple para la lectura y el envío de datos; el envío se realizará mediante una conexión entre el ESP y PHP intermediario, pero el código me causó un error 301:

//(Hago pequeña aclaración, y pregunta: Mi host está comprado en hostinger.com. ¿Esto podría causar algún problema?) De antemano, agradezco si podrían comentar si hay alguna variable o qué podría estar mal, dado que no puedo encontrar el problema. Linda noche.

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFiMulti.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

//CREDENCIALES DE INTERNET
const char* ssid = "WIFI_ESP";
const char* psswrd = "ESP8266_bst";
WiFiClient client;

//DEFINICION DEL AS608 Y VARIABLES REFERIDAS A ÉL
#define FING_RX 14 //D5
#define FING_TX 12 //D6

SoftwareSerial mySerial(FING_RX, FING_TX);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

int FingerID = 0;
uint8_t id;

void setup() {
    Serial.begin(115200);
   
    WiFi.begin(ssid, psswrd);
    Serial.print("\nConectando a..."); Serial.print(ssid);
    while(WiFi.status() != WL_CONNECTED) {
        delay(700);
        Serial.print("/");
    }
    Serial.println("\n\nByteSync - TECH");
    Serial.println("\nConectado correctamente");
    Serial.println("Red: "); Serial.print(ssid);
    Serial.println("\nDireccion IP: "); Serial.print(WiFi.localIP());

    finger.begin(57600);
    Serial.println("\n\n\nDetectando el sensor");
    if (finger.verifyPassword()) {
        Serial.println("AS608 Detectado");
    } else {
        Serial.println("No se detecto el sensor");
        while(1) { delay(1); }
    }

    finger.getTemplateCount();
    Serial.println("El sensor cuenta con... "); Serial.print(finger.getTemplateCount()); Serial.println(" plantillas");
    Serial.println("esperando por una huella valida...");
}

void loop() {

    getFingerprintEnroll();

    FingerID = id;
    
    EnviarDatos(FingerID);

}

void EnviarDatos(int finger) {
    if(WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        String datos_a_enviar = "fingTemplate" + String(finger);

        http.begin(client, "http://bst-proyecto.com/ESP_Post.php");
        http.addHeader("Content-Type", "application/x-www-form-urlencoded");

        int codigo_respuesta = http.POST(datos_a_enviar);

        if(codigo_respuesta > 0) {
            Serial.println("Codigo HTTP: " + String(codigo_respuesta));
            if(codigo_respuesta == 200) {
                String cuerpo_respuesta = http.getString();
                Serial.println("\nRespuesta del servidor: ");
                Serial.println(cuerpo_respuesta);
            }
        } else {
            Serial.println("\nError enviado POST, codigo: ");
            Serial.println(codigo_respuesta);
        }

        http.end();

    } else {
        Serial.println("Error en la conexion WiFi");
    }

    delay(3000);

}


uint8_t getFingerprintEnroll() {

  int p = -1;
  Serial.println("Esperando una huella para guardar como... #"); Serial.println(id);

  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Imagen tomada");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Error de comunicacion");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Error con la imagen");
      break;
    default:
      Serial.println("Error desconocido");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Imagen convertida");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Imagen con movimiento");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Error de comunicacion");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("No se encontraron caracteristicas dactilares");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("No se encontraron caracteristicas dactilares");
      return p;
    default:
      Serial.println("Error desconocido");
      return p;
  }

  Serial.println("Retira tu dedo");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }
  Serial.print("ID "); Serial.println(id);
  p = -1;
  Serial.println("Coloca de nuevo el mismo dedo");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Imagen tomada");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Error de comunicacion");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Error de imagen");
      break;
    default:
      Serial.println("Error desconocido");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Imagen convertida");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Imagen con movimiento");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Error de comunicacion");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("No se encontraron caracteristicas dactilares");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("No se encontraron caracteristicas dactilares");
      return p;
    default:
      Serial.println("Error desconocido");
      return p;
  }

  // OK converted!
  Serial.print("Creando modelo para... #");  Serial.println(id);

  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.println("Coincidencia encontrada");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Error de comunicacion");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("No se encontro coincidencia");
    return p;
  } else {
    Serial.println("Error desconocida");
    return p;
  }

  Serial.print("ID "); Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    Serial.println("Huella almacenada");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Error de comunicacion");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("No se puede almacenar en esa ubicacion");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error escribiendo a la memoria");
    return p;
  } else {
    Serial.println("Error desconocido");
    return p;
  }

  return true;

}

Y al momento de ejecutar el código pasa lo siguiente:

EDIT:
Olvidé adjuntar el significado del error 301: Indica que el host ha sido capaz de comunicarse con el servidor, pero que el recurso solicitado ha sido movido a otra dirección permanentemente