Estoy usando un ESP-12F para disparar mensajes mqtt cuando se presiona un botón. El circuito funciona como se espera; el botón físico reinicia el dispositivo que arranca, ejecuta el código y duerme profundamente por tiempo indefinido. Quiero agregar más de un botón (o disparador externo) pero quiero saber cuál despertó el dispositivo. Conecté varios botones momentáneos al circuito y todos hacen el trabajo de restablecer el dispositivo, pero no pude capturar qué botón se presionó.
Lalíneaamarillaeslapresióndemibotón(reiniciobajodelasunidades),tomaaproximadamente150ms.ElazulesunsimpledigitalWriteenelmétododeconfiguracióndeunprogramaenblanco.ParecequeelESP12tardaunos250mseniniciarseenlaconfiguracióndondepodríaleerelpin,peroparaentonceselbotónhavueltoasuestadooriginal.¿HayunamanerafácildeextenderelmínimoparaqueelICpuedaleerlo?
Esteestambiénunprogramavacío,unavezqueagregobibliotecas,etc.,seagreganotros50-100mssoloparallegaralaconfiguración,porloqueprobablementetendréqueextenderelestadodelbotónparadecir400msparaestarseguro.
Editar:Porlotanto,unproblemaconestediseñoesquesimantengoelbotónbajoparaintentarcapturarlo,yaqueestáconectadopararestablecerlo,enrealidadnoserestablece.Necesito"capturar" lo bajo y luego liberarlo, pero luego leerlo después del inicio.
Editar: El azul está conectado a un LED en un GPIO. Estoy usando esto para ver básicamente cuando el programa está en configuración () cambiando este nivel. La línea amarilla es el pin de reinicio, la parte baja inicial restablece el dispositivo y luego, cuando suelto el botón, vuelve a la posición alta mediante un pullup.