I have a few comments/questions:

- What is the point when measuring the voltage on the node between transistor and resistor? The Rds-on of the MOS is around 30mOhm, and with a current of roughly 0.5A this means a 15mV drop. Or a 0.3% of precision loss. Totally negligible

- What is the purpose of the resistive dividers (R1-R3 and R2-R4) to measure the voltage? Your max voltage is 4.3V, and you are not usign the internal voltage reference, so the max voltage you can measure is 5V. Why are you dividing it in half?

- Speaking of voltage references, are you sure that the 5V are stable? Even with the OLED? Personally I'd use the internal reference (and then you really need the R1-R3 voltage divider, but the resistors values should change)

- You shouldn't drive a MOSFET that way; you should add a resistor in series (e.g. 220 Ohm) to limit the current peak at power on/off

- Are you sure you can power the buzzer directly? (I couldn't find the data; what is the current it should get at 5V?)

Thank you for sharing anyway :)