il faudra sans doute rajouter une RTC à la liste des courses (une DS3231 par exemple). ça permettra de gérer les plages horaires simplement.
Si l'Arduino retenu est un ESP32 et que vous avez accès au réseau WiFi, alors l'heure peut aussi s'obtenir par internet (en NTP). (attention dans ce cas le module est en 3.3V et donc il faudra adapter les tensions de pilotages des autres composants)