Unir dos sensores help

Hola comunidad soy nuevo, necesito una manito para un proyecto porfavor

les cuento necesito dos sensores el PIR y Ultrasonido trabajen como uno y que manden una señal para una cerradura eléctrica porfavor, nose como unir estas dos programaciones

el pir

const int PIRPin= 2;
 
void setup()
{
   Serial.begin(9600);
  pinMode(PIRPin, INPUT);
}
 
void loop()
{
  int value= digitalRead(PIRPin);
 
  if (value == HIGH)
  {
   Serial.println("prendido");
    delay(50);
   
  }
  else
  {
   Serial.println("apagado");
  }
  delay(100);
}

y el ultrasonico

#include <NewPing.h>
 
#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200
 
/Crear el objeto de la clase NewPing/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
 
void setup() {
  Serial.begin(9600);
}
 
void loop() {
  // Esperar 1 segundo entre mediciones
  delay(100);
  // Obtener medicion de tiempo de viaje del sonido y guardar en variable uS
  int uS = sonar.ping_median();
  // Imprimir la distancia medida a la consola serial
  Serial.print("Distancia: ");
  // Calcular la distancia con base en una constante
  Serial.print(uS / US_ROUNDTRIP_CM);
  Serial.println("cm");
}

No es posible unir dos códigos que utilizan delay() sin complicarse la vida .Ve a la sección de documentos y fíjate en los tutoriales de Millis()

Alguna otra programación que pueda hacerlas funcionar ?

Si, estudiar como programar y no soy irónico.
Estas pidiendo que te hagan la tarea, y sin saber programar no puedes poner dos sensores juntos.

Como se hace?

Se colocan juntos y listo. Se respeta las variables globales de ambos, lo relevante del setup, y lo mismo con el loop.
Con esta simple explicación lo deberías lograr.

Necesitas algo que demore la ejecución de una parte del código, entonces no uses delay() y en su reemplazo estudia y usa millis()

Ve a Documentación => Indice de temas tutoriales => millis()

hasta el momento va quedando:

const int PIRPin= 2;
const int Trigger = 12;   //Pin digital 2 para el Trigger del sensor
const int Echo = 11;   //Pin digital 3 para el Echo del sensor


long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros


void setup()
{
 Serial.begin(9600);
 pinMode(PIRPin, INPUT);
 
 Serial.begin(9600);//iniciailzamos la comunicación
 pinMode(Trigger, OUTPUT); //pin como salida
 pinMode(Echo, INPUT);  //pin como entrada
 digitalWrite(Trigger, LOW);//Inicializamos el pin con 0


 
}

void loop()
{
 int value= digitalRead(PIRPin);
 if (value == HIGH)
 {
    Serial.println("prendido");
 }
 else
 {
    Serial.println("apagado");
 }

 digitalWrite(Trigger, HIGH);
 delayMicroseconds(100);   //Enviamos un pulso de 10us
 digitalWrite(Trigger, LOW);
 
 t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
 d = t/10;                //escalamos el tiempo a una distancia en cm
 
 Serial.print("Distancia: ");
 Serial.print(d);         //Enviamos serialmente el valor de la distancia
 Serial.print("cm");
 Serial.println();
 delay(100); 
}

necesito saber si es posible agregarle el modulo ESP8266 y que pueda abrir la cerradura, hasta el momento va todo bien! si alguien ayuda es bienvenida su aporte

Por favor edita tu último código usando etiquetas

una duda es posible que el ESP8266 pueda enviar informacion a un servidor en especifico y aparte funcione con una app ?

Que el ESP8266 funcione con una app? No entiendo eso.
Si usas el ESP8266 puedes interactuar con una app via socket, sabes como? Pero también es fácil o mas facil hacer que el ESP8266 tenga una pequeña pagina y tu colocas la ip del esp8266 y entonces con el navegador del celular comandar lo que gustes. Eso es fácil tambien.

Explico bien, el ESP8266 lo tengo con una pagina web que es la direccion ip privada, ahora tengo un relay en la cerradura entonces el esp8266 deberia ir en el relay ? y necesito que envie a un servidor la informacion

Ej:
Lunes 08 se abrió 13 veces la puerta, tengo el servidor con la base de datos lista pero no puedo dejarla funcionando

Todo lo que estas haciendo lo puedes hacer con el ESP, pero si no compartes el código es dificil entender lo que intentas hacer.

Tienes un PIR y un ultrasónico mas un rele que controlaría el cerrojo.
Ademas quieres que eso se refleje en tu aplicación o mejor dicho que el ESP actuando como webserver permita que alguien con la ip pueda visualizar que esta ocurriendo.

Okay, muestranos eso en un código y de ahi trabajamos en solucionarlo.

Amigo, hasta el momento llevo esto

#include <ESP8266WiFi.h> 

//Credenciales del WiFi
const char* ssid = "Wifi_Casa";
const char* password = "password";  // no mostrar clave
 
int ledPin = D0;
WiFiServer server(80);
 
void setup() {
  Serial.begin(115200); //Reconteo 
  delay(10);
 
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
 
  // Conecto con la red WiFi en modo estación (STA)
  Serial.println();
  Serial.println();
  Serial.print("Conectando a ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi conectado");
 
  // Inicializo el servidor
  server.begin();
  Serial.println("Servidor iniciado");
 
  // Muestro la IP local asignada. URL del servidor
  Serial.print("Usa esta URL para conectar al servidor: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
 
}
 
void loop() {
  // Compruebo si hay un cliente disponible (una petición)
  WiFiClient client = server.available();
  if (!client) {
    return; // En caso de no haber un cliente, no hago nada
  }
 
  
  Serial.println("¡Nuevo cliente!");
  while(!client.available()){
    delay(1);
  }
 
  // Leo la primera linea de la petición del cliente
  String request = client.readStringUntil('\r'); // Leo hasta retorno de carro
  Serial.println(request); //Imprimo la petición
  client.flush(); //Limpio el buffer
 
  // Interpreto lo que he recibido
 
  int value = LOW;
  if (request.indexOf("/CERRADURA=ON") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/CERRADURA=OFF") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
 
// Pongo ledPin al valor que ha solicitado el cliente en la petición
 
  // Devuelvo la respuesta al cliente -> Todo ha ido bien, el mensaje ha sido interpretado correctamente
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  
  // A partir de aquí creo la página en raw HTML
  client.println("<!DOCTYPE HTML>"); 
  client.println("<html>");
 
  client.print("La CERRADURA está:  ");
 
  if(value == HIGH) {
    client.print("ON");
  } else {
    client.print("OFF");
  }
  client.println("

");
  client.println("<a href=\"/CERRADURA=ON\"\"><button>Abrir </button></a>"); // Los botones con enlace
  client.println("<a href=\"/CERRADURA=OFF\"\"><button>Apagar </button></a>
");  
  client.println("</html>");
 
  delay(1);
  Serial.println("Cliente desconectado"); // Nos desconectamos del cliente
  Serial.println("");
 
}

hasta el momento llevo esto, no se que esta bien o mal, la pagina me funciona al 100% el lunes pruebo de nuevo en la cerradura que no la tengo en mis manos, y la base de datos esta lista pero por desconocimiento no se donde agregar la linea o que esta demás en la programación.

Describe con mucho detalles que hardware tienes.
Y que es exactamente qué quieres conseguir.
He leido algo de pir y us, ahora vienes con un esp.

ya amigo, mira tengo un proyecto de una puerta que se abra automáticamente constara con dos sensores el Pir y ultrasonido, esa programación esta arriba lista, el relay esta instalado igual, pero necesito que se envié la información de cuantas veces se abrió a una base de datos y investigue y se necesita el modulo esp...
hasta el momento me falta la programación o ver como debo hacerla, no se si ahora se entendió un poco

Saludos amigo!

Pero los sketches de tus posts no tienen nada que ver con lo que describes ahora.