This project uses the ESP32 microcontroller paired with the MAX9814 microphone to detect and monitor sound levels. Detected sound data is sent via MQTT to the AWS IoT broker and stored in DynamoDB. A Next.js frontend application visualizes this data in real-time.
Check out the live website here!
ESP32 MAX9814 MQTT AWS IoT DynamoDB Next.js recharts
- ESP32 Microcontroller:
- Responsible for sensing data from the microphone and communicating with the AWS IoT broker.
- MAX9814 Microphone:
- A high-quality microphone with auto-gain control, allowing for consistent sound level detection.
- AWS IoT Broker:
- Middleware that receives data from the ESP32 and interfaces with DynamoDB.
- DynamoDB:
- A NoSQL database provided by AWS to persistently store sound data.
- Next.js Application:
- A real-time frontend application that fetches and visualizes data from DynamoDB.
- The MAX9814 microphone listens for sound.
- Once sound is detected, the ESP32 reads the decibel level and packages this data.
- The ESP32 initiates an MQTT publishing request to the AWS IoT broker with the sound data.
- The AWS IoT broker, upon receiving the data, stores it in a DynamoDB table.
- The Next.js frontend application periodically dispatches GET requests to fetch the latest sound data entries from DynamoDB.
- The frontend visualizes this data using the
rechartslibrary, updating in real-time.
- Node.js and npm installed.
- An AWS account with appropriate permissions for DynamoDB and IoT.
- ESP32 with the Arduino IDE set up.
