Skip to content

mdario971/ESP32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ESP32 Sensor Network Dashboard 🌐

A comprehensive IoT monitoring dashboard for ESP32 sensor networks with real-time data visualization, visual device configuration, and alert management.

License Node TypeScript

🌟 Features

Core Capabilities

  • Real-Time Monitoring: Live sensor data updates every 5-10 seconds
  • Multi-Device Support: Monitor unlimited ESP32 devices simultaneously
  • 7 Sensor Types: DHT11, DHT22, BME280, DS18B20, DS18B25, BH1750, LM393
  • Visual ESP32 Configurator: Generate Arduino code with visual pin mapping
  • ESP32-CAM Support: Configure and monitor camera-enabled ESP32 boards
  • Dark/Light Theme: Beautiful UI with theme toggle
  • Historical Data: View and analyze past sensor readings
  • Alert System: Set thresholds and get notifications

Supported Measurements

  • 🌑️ Temperature (Β°C)
  • πŸ’§ Humidity (%)
  • 🎈 Pressure (hPa)
  • πŸ’‘ Light Intensity (lux)
  • πŸ”Š Sound Level (0-100%)?

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • ESP32 development board(s)
  • Supported sensors (see list above)
  • Arduino IDE for ESP32 programming

Installation

  1. Clone the repository
git clone https://github.com/yourusername/esp32-sensor-dashboard.git
cd esp32-sensor-dashboard
  1. Install dependencies
npm install
  1. Start the development server
npm run dev
  1. Open the dashboard Navigate to http://localhost:5000 in your browser

Setting Up ESP32 Devices

  1. Use the Visual Configurator

    • Click "ESP32 Setup" in the dashboard
    • Select your board and sensor type
    • Configure pins visually
    • Download generated Arduino code
  2. Upload to ESP32

    • Open the .ino file in Arduino IDE
    • Install required libraries (listed in the code)
    • Configure WiFi credentials
    • Upload to your ESP32
  3. Monitor Data

    • Data will automatically appear in the dashboard
    • View real-time charts and historical data

πŸ“ Project Structure

β”œβ”€β”€ client/               # React TypeScript frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/       # Dashboard, Configurator, Alerts, etc.
β”‚   β”‚   β”œβ”€β”€ components/  # Reusable UI components
β”‚   β”‚   └── lib/         # Utilities and helpers
β”‚   └── public/
β”‚
β”œβ”€β”€ server/              # Express TypeScript backend
β”‚   β”œβ”€β”€ routes.ts        # API endpoints
β”‚   β”œβ”€β”€ storage.ts       # Data persistence layer
β”‚   └── index.ts         # Server entry point
β”‚
β”œβ”€β”€ shared/              # Shared TypeScript types
β”‚   └── schema.ts        # Data models and validation
β”‚
β”œβ”€β”€ arduino-esp32/       # Arduino sketches for ESP32
β”‚   β”œβ”€β”€ sensor-sketches/ # Individual sensor examples
β”‚   β”œβ”€β”€ camera-sketches/ # ESP32-CAM examples
β”‚   └── examples/        # Multi-sensor configurations

πŸ”Œ API Endpoints

Endpoint Method Description
/api/sensor-readings POST ESP32 devices post sensor data
/api/sensor-readings/latest GET Latest reading from each device
/api/sensor-readings GET All historical readings
/api/sensor-readings/device/:id GET Readings for specific device
/api/sensor-readings/range GET Readings within time range
/api/sensor-readings/:id PATCH Update a reading
/api/sensor-readings/:id DELETE Delete a reading

πŸ“‘ ESP32 Data Format

{
  "deviceId": "ESP32_001",
  "deviceName": "Living Room Sensor",
  "sensorType": "DHT22",
  "temperature": 24.5,
  "humidity": 60.2,
  "pressure": null,
  "light": null,
  "sound": null
}

🎨 Screenshots

Dashboard Features

  • Real-time sensor cards with latest readings
  • Interactive line charts for data trends
  • Historical data table with filtering
  • Time range selection (1h, 6h, 24h)
  • Device-specific views

ESP32 Configurator

  • Visual pin configuration
  • 16+ supported ESP32 board types
  • Automatic code generation
  • WiFi and server setup included

Camera Dashboard

  • Live feed monitoring
  • Resolution and FPS settings
  • Online/offline status tracking
  • Feed history table

πŸ› οΈ Technology Stack

Frontend

  • React 18 with TypeScript
  • TanStack Query for data fetching
  • Recharts for data visualization
  • Tailwind CSS for styling
  • Shadcn/UI component library
  • Lucide React icons

Backend

  • Express.js with TypeScript
  • Zod for validation
  • In-memory storage (upgradeable to PostgreSQL)
  • RESTful API design

Hardware

  • ESP32 microcontrollers
  • Arduino IDE for firmware
  • WiFi connectivity for data transmission

πŸ“š Documentation

For Users

For Developers

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Areas for Contribution

  • Additional sensor support
  • Data export features (CSV, Excel)
  • Mobile app development
  • MQTT integration
  • Machine learning predictions

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • ESP32 community for hardware support
  • React and TypeScript communities
  • Contributors and testers

πŸ“§ Contact

🚦 Status

🟒 Active Development - Regular updates and new features being added


Made with ❀️ for the IoT Community

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published