Despertador con DS3231

Lo que debes tener en cuenta es no usar delays.
Aprende a usar millis() hay muchos ejemplos en cada foro si miras las ultimas dos paginas, respondemos eso dia por medio.
millis() te permite que algo se ejecute cuando tu quieres pero también deja que el resto de las cosas funcionen, dandote la sensación de que todo ocurre al mismo tiempo
Delay detiene la ejecución hasta que se cumple el tiempo indicado. Si le pones un delay de 5 seg, se detendrá el flujo del programa x 5 y si lo pones por 30 min hará lo mismo. COn millis() eso no pasa y cuando se cumplan los 30 min hará lo que deba hacer y responderá a tus sensores, a tus pulsadores, etc, etc.