Jammin’ is a student-built IoT project that ties together an ESP32 sensor node and a JavaFX desktop app with a MariaDB/MySQL backend.
It measures light, motion, and sound, sends data over Wi-Fi, and provides role-based views (Director, Manager, Employee, Guard) for monitoring and control.
- ESP32 sensor node with:
- BH1750 light sensor (I²C)
- HC-SR501 motion sensor (white dome)
- LM393 (clap/noise trigger style)
- Status LEDs (red / blue / yellow)
- Wi-Fi data link + MariaDB/MySQL storage
- JavaFX desktop UI with multiple roles
- Clean configuration with local, non-committed secrets
Jammin'/
├── jammin/
│ ├── src/
│ │ ├── application/ # JavaFX controllers
│ │ └── model/ # Domain models & utilities
│ ├── config.example.properties
│ └── Jammin.json # Anonymized demo data
│
├── arduino/
│ ├── Jammin.ino # ESP32 sketch
│ ├── config.example.h # Wi-Fi/DB config template (do NOT commit real values)
│
├── hardware/
│ ├── JamminMachine.stl
│ └── JamminMachine (1).stl # 3D-printable case
│
└── media/
├── logo2d.png
├── logo3d.png
└── Jammin_final_product.jpg
| Component | Description | Function |
|---|---|---|
| ESP32 Dev Board | Wi-Fi + Bluetooth microcontroller | Main controller (sensors + Wi-Fi) |
| BH1750 Light Sensor | Digital luminosity sensor (I²C) | Measures ambient light |
| PIR Motion Sensor (HC-SR501) | White dome infrared sensor | Detects motion/presence |
| Analog Microphone Module (LM393) | Analog sound sensor | Detects loud noises/claps |
| LEDs (R / B / Y) | 5 mm indicators + resistors | Device/sensor status |
| Resistors (220 Ω–1 kΩ) | For LEDs | Current limiting |
| Jumper wires | M–M / M–F | Wiring |
| Breadboard or custom PCB | Optional | Prototyping |
| 3D-printed shell | hardware/*.stl |
Device enclosure |
3D print tip: PLA/PETG, 0.2 mm layer height, ~20 % infill.
- Duplicate
jammin/config.example.properties→jammin/config.properties. - Fill with your DB URL / user / password.
- Run the app (JavaFX).
- Duplicate
arduino/config.example.h→arduino/config.h. - Fill Wi-Fi and DB credentials.
- In Arduino IDE, select ESP32 board (e.g. ESP32 Dev Module) and upload.
Secrets are kept locally:
config.propertiesandconfig.hare gitignored.
Pin mapping can vary by board; confirm with
arduino/arduino.ino.
| Module | Typical Pins | Notes |
|---|---|---|
| BH1750 | SDA → GPIO 21, SCL → GPIO 22 |
I²C bus (default on ESP32) |
| PIR (HC-SR501) | OUT → GPIO XX |
Digital input; 5 V tolerant modules usually OK, prefer 3.3 V |
| Microphone (analog) | OUT → GPIO XX (ADC) |
Use an ADC-capable pin |
| LED Red / Blue / Yellow | GPIO XX / YY / ZZ via resistors |
If using PWM, ESP32 uses ledcWrite channels |
Replace the XX/YY/ZZ with the exact pins used in your sketch.
jammin/Jammin.json contains anonymized demo users / machines.
Usernames, passwords, and locations are placeholders — intended for local demos only.
Academic project built by a student team made by Víctor Martín, Mario Redondo & Javier da Silva .
Educational / demo purposes.

