Buongiorno a tutti,
mi sono creato un sistema di controllo/automazione con ESP32, dove ho collegato diversi sensori che lavorano tutti con segnali digitali (0 o 1).
E' possibile andare a memorizzzare gli stati di questi sensori per un certo periodo (ad esempio 1 settimana) e a richiesta andare a leggere il log e vedere quali di questi sensori hanno cambiato stato e per quanto tempo hanno mantenuto lo stato ?
Sarebbe bello visualizzare poi queste informazioni su un HMI che sto già utlizzando con l'ESP32 ?
Come suggerito da @nid69ita, le possibilità sono molteplici.
Per le opzioni 1-2 (quella che poi ti consente facilmente di usare anche l'HMI perché hai tutto in locale) io farei cosi:
Selezioni i segnali di cui ti interessa il tracing
crei un file .csv all'interno del filesystem dell'esp32 (esempio di riferimento questo oppure questo, io consiglio LittleFS come filesystem).
Ogni volta che uno di questo segnale cambia, aggiungi un record al file .csv con il timestamp (in formato unix time per semplificare) ed i valori dei segnali.
Fai girare un piccolo webserver sull'ESP32 che ti consente di recuperare/visualizzare il file .csv
Se invece pensi che ti possa essere utile salvarli in una memoria esterna, aggiungi la SD e la usi al posto di LittleFS.
Tieni conto che l'ESP32 ha il driver integrato SD/SDIO/MMC, che ti consiglio di usare (non servono librerie esterne per intenderci).
Per lo step 4, se sei poco pratico con HTML/JavaScript (che non so per quale ragione spesso intomirisce più del C++) ti posso dare una mano volentieri. Potresti visualizzare i dati in forma tabellare, o ancora meglio in forma di grafico.