Questo progetto mira alla realizzazione di un fonometro (misuratore di decibel) utilizzando un microcontrollore ESP32. Il dispositivo misura il livello di rumore ambientale e lo visualizza su un display OLED. È dotato di un'interfaccia web per la configurazione remota dei parametri, come le soglie di allarme e la luminosità dei LED.
- Misurazione in Tempo Reale: Lettura continua del livello di decibel (dB) dall'ambiente.
- Display OLED: Visualizzazione chiara del valore dB attuale e delle informazioni di stato.
- Indicatori LED: Tre LED (verde, giallo, rosso) segnalano il superamento delle soglie di rumore preimpostate.
- Menu Interattivo: Un menu su display OLED, navigabile tramite pulsanti fisici, permette di modificare le impostazioni direttamente dal dispositivo.
- Configurazione Web: Server web integrato per modificare le impostazioni (soglie, luminosità, credenziali) tramite browser.
- Access Point WiFi: L'ESP32 crea un proprio Access Point (AP) per la prima configurazione, con un SSID univoco basato sull'indirizzo MAC.
- Configurazione Persistente: Le impostazioni vengono salvate sulla memoria flash (SPIFFS) e caricate all'avvio.
- Aggiornamenti OTA: Supporto per aggiornamenti firmware Over-the-Air (OTA) tramite la libreria ElegantOTA.
- Sicurezza: Accesso all'interfaccia web protetto da username e password.
- Microcontrollore: ESP32 (qualsiasi modello con WiFi e pin sufficienti).
- Sensore Audio: Un sensore di rilevazione del suono in decibel compatibile con I2C.
- Interfaccia mosfet: Modulo driver MOSFET a 4 canali con optoisolatori, utilizzato per il controllo PWM di strisce LED in bassa tensione
- 2x Moduli buck converter DC-DC impiegati per abbassare la tensione d’ingresso a 12V (per l’interfaccia che pilota le strisce LED) e a 5V (per l’ESP32).
- Display: Display OLED 0,96 pollici con interfaccia I2C.
- Indicatori: 12 LED a luce bianca da 3V.
- Pulsanti: 3x Pulsanti per la navigazione nel menu (Più, Meno, Invio).
- Alimentazione: Alimentatore 12V 42W 3,5A.
- Basette millefori: per il fissaggio dei componenti elettronici (LED e pulsanti)
- Circuito stampato: per l’ESP32 e per connettere ad esso i vari componenti.
- Connettori DC a pannello: per il collegamento all’alimentazione.
-
Clona il repository:
git clone https://gitlab.com/poggiolevante/fonometro.git cd fonometro
-
Installa le librerie: Apri l'Arduino IDE e installa le librerie elencate in
docs/installation.md
. -
Configura l'Hardware: Collega i componenti come descritto in
docs/hardware.md
. -
Compila e Carica: Apri
fonometro.ino
nell'Arduino IDE, seleziona la tua scheda ESP32 e la porta corretta, quindi carica lo sketch. -
Configurazione Iniziale:
- Cerca una nuova rete WiFi con un nome simile a
Fonometro-XX:XX:XX
. - Connettiti a questa rete.
- Apri un browser e vai all'indirizzo
http://192.168.1.1
. - Usa le credenziali di default (
admin
/admin
) per accedere e configurare il dispositivo.
- Cerca una nuova rete WiFi con un nome simile a
.
├── LICENSE.md # Licenza del progetto
├── README.md # Documentazione principale del progetto
├── fonometro/ # Codice sorgente
│ ├── fonometro.ino # File principale dello sketch Arduino
│ ├── config.json # File di configurazione
│ ├── dbmeter.ino # Funzioni per la lettura del sensore di decibel
│ ├── handle_menu.ino # Logica per la gestione del menu sul display
│ ├── lib.ino # Funzioni di utilità (gestione file, JSON)
│ ├── setup.ino # Codice per l'impostazione iniziale di pin, display, WiFi
│ ├── web_server.ino # Gestione del server web asincrono e delle API
│ └── data/
│ ├── index.html # Pagina principale dell'interfaccia web
│ ├── script.js # Logica JavaScript per l'interfaccia
│ └── style.css # Fogli di stile CSS
├── docs/ # Documentazione del progetto
│ ├── api.md # Documentazione delle API REST
│ ├── bill-of-materials.md # Lista dei componenti (BOM)
│ ├── configuration.md # Dettagli sulla configurazione
│ ├── hardware.md # Dettagli sull'hardware e collegamenti
│ ├── installation.md # Guida all'installazione
│ └── web-interface.md # Guida all'interfaccia web
└── img/ # Immagini del progetto
├── fonometro_interno.jpg
├── fonometro_vista_frontale.jpg
├── fonometro_vista_laterale.jpg
└── topologia.jpg
Questo progetto è rilasciato sotto la Licenza GNU AFFERO GENERAL PUBLIC LICENSE. Vedi il file LICENSE per maggiori dettagli.
Questo progetto è stato realizzato dai ragazzi di Poggiolevante:
- Giovanni Pompigna
- Francesco Sparascio