Skip to content

IoT system combining an ESP32 sensor node (light, motion, sound) with a JavaFX desktop app and a MariaDB backend.

License

Notifications You must be signed in to change notification settings

victormarlor/Jammin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jammin logo

Jammin' — ESP32 + JavaFX IoT System

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.

Jammin final product


✨ Features

  • 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

🧱 Project Structure

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

🔧 Hardware Components (Bill of Materials)

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.


⚙️ Configuration

Java app (desktop)

  1. Duplicate jammin/config.example.propertiesjammin/config.properties.
  2. Fill with your DB URL / user / password.
  3. Run the app (JavaFX).

ESP32 sketch

  1. Duplicate arduino/config.example.harduino/config.h.
  2. Fill Wi-Fi and DB credentials.
  3. In Arduino IDE, select ESP32 board (e.g. ESP32 Dev Module) and upload.

Secrets are kept locally: config.properties and config.h are gitignored.


🧭 Wiring (check your sketch)

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.


🗄️ Demo Data

jammin/Jammin.json contains anonymized demo users / machines.
Usernames, passwords, and locations are placeholders — intended for local demos only.


🧑‍💻 Authors

Academic project built by a student team made by Víctor Martín, Mario Redondo & Javier da Silva .


📜 License

Educational / demo purposes.

About

IoT system combining an ESP32 sensor node (light, motion, sound) with a JavaFX desktop app and a MariaDB backend.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published