Complete IoT Generator Dashboard and Develop Apps

Job ID: 39787733

Budget: $250 – $750 USD

IoT Generator Control Dashboard (Web + Mobile Apps)

Project Overview

We have an ESP32-based generator controller system that connects to our backend via WebSocket + MySQL.

We already have an old working web dashboard that is 95% functional (stable, with telemetry + controls).

We also have a new dashboard (better UI/UX) that is only 50% functional (missing telemetry + controls).

We need a freelancer to complete the new dashboard so it matches the old one’s functionality.

Then, build Android + iOS apps (React Native or Flutter preferred) that replicate the same dashboard for mobile users.

Current Tech Stack

Frontend: PHP, HTML/CSS/JS

Backend: Node.js WebSocket server

Database: MySQL (tables: Users, Devices, DeviceTypes, Registration)

Devices: ESP32 controllers sending telemetry via TCP/WebSocket



---

Workflow (what needs to work end-to-end)

1. User Login (PHP/MySQL Sessions)

Users log in with email + password.

Roles: Admin / Dealer / User with different access levels.



2. Device Management

Devices stored in MySQL (DeviceID, Name, DealerEmail, LastSeen, Type).

Users assigned to devices via Registration table.

Device types stored in DeviceTypes table.



3. Web Dashboard

Select a device → load its real-time telemetry and controls.

Telemetry values (via WebSocket):

V0 → Battery Voltage

V1 → AC Output Voltage

V2 → Engine Temperature

V3 → Runtime

V4 → Generator Status (ON/OFF)

V5 → Charging Mode (Bulk/Absorb/Float/Idle)

V6–V8 → User-set preferences (Low Battery, High Battery Cut, Bulk Setpoint)

V9 → Engine Control (Start/Stop button)


Graphs (Google Charts or alternative): Voltage, AC, Temp, Runtime trends.



4. WebSocket Integration

Browser connects to Node.js backend → AWS on EC2 Instance.

On connect, browser sends current DeviceID.

ESP32 telemetry updates UI live.

User controls (buttons/sliders) send commands back via virtualUpdate().



5. Settings Panel

User can adjust setpoints (V6–V8).

Changes sent live to ESP32 via WebSocket.



6. Status Indicators

Show ONLINE/OFFLINE based on heartbeat packets (PDC, PDDNULL).

LastSeen updated in MySQL.





---

Deliverables

1. Fix Web Dashboard (new UI/UX version)

Match all functionality of old site.

Remove hardcoded DeviceIDs → dynamic per logged-in user/device.

Ensure telemetry updates in real-time.

Ensure controls (Start/Stop, sliders, runtime adder) work properly.

Modularize JS (move WebSocket/virtualUpdate logic into update.js).



2. Mobile Apps (Android + iOS)

User login (same MySQL backend).

Device selection + live telemetry view.

Controls (Start/Stop, setpoints, runtime adder).

Graphs for telemetry trends.

Push notifications for events (optional bonus).

Skills Required

PHP, MySQL, Node.js

JavaScript (WebSocket, frontend updates, charting libraries)

Mobile app development (React Native or Flutter)

IoT/WebSocket communication experience a big plus