An integrated environmental monitoring system that collects and visualizes real-time data for light, sound, temperature, humidity, and pressure using the Grove Beginner Kit, Arduino, and Java with Firmata4J and JFreeChart.
The project aims to demonstrate how technology can contribute to sustainable smart city solutions.
π― Objective
To design and implement a smart system that monitors key urban environmental parameters β including noise, light intensity, temperature, humidity, and air pressure β while triggering visual or sound alerts and displaying real-time graphs for data-driven urban management.
- π‘οΈ Real-time measurement of temperature, humidity, and pressure
- π‘ Light sensor triggers LED when brightness exceeds threshold
- π Sound sensor generates alerts for excessive noise levels
- π Dynamic data visualization using JFreeChart
- π§ Multi-sensor data processing and event-driven responses
- π₯οΈ Integrated Java GUI for live graphing and logging
| Component | Description |
|---|---|
| Grove Light Sensor | Measures ambient light levels |
| Grove Sound Sensor | Detects noise intensity |
| Grove Temperature & Humidity Sensor | Monitors environmental conditions |
| Grove Pressure Sensor | Measures atmospheric pressure |
| LEDs | Provide visual output indicators |
| Arduino UNO (Grove Kit) | Central microcontroller |
| Laptop (Arduino IDE + IntelliJ) | Software processing and visualization |
Figure 1: Full setup with Grove kit, sensors, and laptop interface.
Languages & Tools
- Arduino IDE β Firmware programming
- Java (IntelliJ IDEA) β Data processing and visualization
- Firmata4J β Serial communication between Arduino and Java
- JFreeChart β Graph plotting for live sensor data
Key Files
| File | Description |
|---|---|
Main.java |
Main class controlling sound and light sensors |
SoundSensor.java |
Reads data from the sound sensor |
LightSensor.java |
Reads data from the light sensor |
LineGraph.java |
Displays real-time sound and light readings |
TemperatureAndHumiditySensor.java |
Monitors temperature and humidity |
AirPressureSensorExample.java |
Measures pressure and temperature |
SensorController.java |
Processes sensor input data |
DataProcessor.java |
Handles data computation and analysis |
GraphPanel.java |
Displays temperature, humidity, and pressure graphs |
Figure 2: Flowcharts showing event-driven logic for each sensor module.
Figure 3: Real-time sound level graph with threshold alerts.
Figure 4: Light intensity graph with LED activation feedback.
Figure 5: Temperature and humidity readings visualized in JFreeChart.
Figure 6: Pressure and temperature correlation graph.
- Verified sensor readings against known references
- Simulated sound and light changes for alert validation
- Ensured accurate data refresh in real-time graph displays
- π‘ Improved understanding of event-driven programming in Java
- π§ Enhanced skills in sensor integration and calibration
- π§ Gained experience in object-oriented software design
- π§° Strengthened debugging and testing techniques
Shivam Gupta
π B.Eng. Software Engineering @ York University
π§ [email protected]
π LinkedIn β’ Portfolio



