EDIT: Eu já resolvi o problema usando este código que faz debounce... Funciona, só que eu nunca sei se é o mais apropriado
Debounce por hardware vs software é um assunto muito debatido, e uma boa maneira de começar uma flame war de forma disfarçada.
A maneira da moda de tratar os dados é enviar para uma bd "InfluxDB" e apresentar os dados num dashboard "Grafana". Metes tudo num servidor, que pode ser um RPi, e os resultados ficam 5* (aspas para os termos a meter no google).