Paso 5: El código
El bosquejo RainGauge.ino (integrado al final de este paso) está bien comentado y así me voy señalar tres secciones solamente.
Una parte cuenta el número de consejos de cubo de inclinación.
if(bucketPositionA==false && digitalRead(RainPin) == HIGH){ ... ... }
Otra parte comprueba tiempo y calcula la cantidad de lluvia
if(now.minute()==0 && first == true){ hourlyRain = dailyRain - dailyRain_till_LastHour; ...... ......
y otra parte borra la lluvia del día, a medianoche.
if(now.hour() == 0){ dailyRain = 0; .....