Podrías considerar un relé de 3.3VDC. Necesitaría conducir su bobina y esto significaría un solo circuito BJT. Esos relés son un par de dólares, más gastos de envío. Pero funcionaría, seguro. Y es una muy buena opción, en realidad.
Pero creo que otra posibilidad es que su BJT no fue impulsado suficientemente por su pin de E / S para mantener el solenoide de bloqueo de la puerta. En cambio, es probable que hayas oscilado porque no tenías suficiente corriente (o voltaje) disponible.
Ya que no proporciona NINGUNA información sobre su solenoide de cerradura de puerta, aparte de que hay una fuente adecuada de 12VDC para ello, solo hagamos un poco más de matanza con BJTs y sigamos con eso.
simular este circuito : esquema creado usando CircuitLab
Al buscar solenoides de cerradura de puerta que funcionan con 12 V, encontré que al menos algunos de ellos requieren aproximadamente 2.6 A para poder operar. Así que voy con eso como una suposición educada sobre sus necesidades. Francamente, creo que el circuito anterior seguramente funcionará para usted. Pero \ $ Q_1 \ $ probablemente caerá alrededor de \ $ 400mV \ $. Sin embargo, no creo que eso sea un problema para ti.
El circuito anterior está diseñado para usar el mínimo absoluto de piezas, si no está usando un relé (que, como he dicho anteriormente, y Roger ha mencionado sabiamente en su comentario). He agregado los requisitos de potencia de cada uno. parte, por lo que puede asegurarse de que obtiene las partes lo suficientemente valoradas. (El 2N3055 ya está clasificado mucho más de lo que necesita, por lo tanto, utilícelo sin cuestionarlo). Por ejemplo, \ $ R_1 \ $ se quemará alrededor de \ $ 500mW \ $, por lo que debe comprar uno que tenga una calificación de \ $ 1W \ $, al menos. \ $ Q_2 \ $ no será un problema. Incluso una parte TO-92 funcionará allí.
\ $ Q_2 \ $ operará de alguna manera saturado , por lo que requerirá algo de corriente base. Si tienes suerte, solo \ $ 2mA \ $ o menos. Pero incluso si esto es más como \ $ 5mA \ $ debería estar bien con su pin IO. \ $ R_1 \ $ establece la corriente base en \ $ Q_1 \ $ y está configurado para entregar \ $ 200mA \ $ o más. Si tiene varios valores de \ $ 1W \ $ resistencias, puede probar un \ $ 12 \ Omega \ $ o un \ $ 15 \ Omega \ $ allí también. O incluso más grande, si el pestillo de la puerta sigue funcionando bien. Lo he configurado bajo para comenzar, así que obtienes MUCHA corriente para conducir la base del 2N3055 BJT. Solo para asegurarnos.
También puedes medir la corriente cuando cambias el pestillo. Esa información ayudaría mucho a marcar en este circuito para adaptarse, mejor. Pero creo que el circuito anterior está demasiado construido como para que haga el trabajo.
Oh. Y el circuito está ENCENDIDO cuando conduce el PIN IO a BAJO. Cuando el pin IO es ALTO, entonces el circuito está apagado.
Y tengo curiosidad. ¿Cómo va a ser la Raspberry Pi mejor que un ser humano presionando el botón para dejar entrar a alguien? Lo que añade otra pregunta. ¿Preferiría un circuito que dispara la Raspberry Pi, pero donde el circuito mismo cronometra la duración y luego elimina automáticamente la energía para que la puerta ya no esté desbloqueada? (Sería muy sencillo agregar esa capacidad).