{"id":27366804,"url":"https://github.com/smashembedded/mpu6050-dashboard","last_synced_at":"2026-05-06T03:32:01.275Z","repository":{"id":287604795,"uuid":"960618429","full_name":"smashembedded/mpu6050-dashboard","owner":"smashembedded","description":"Real-time MPU6050 sensor dashboard with ESP32, WebSocket \u0026 Chart.js (PlatformIO)","archived":false,"fork":false,"pushed_at":"2025-04-12T18:40:07.000Z","size":300,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-24T16:51:29.650Z","etag":null,"topics":["arduino","chartjs","dashboard","esp32","freertos","fun","html5","iot","javascript","mpu6050","platformio","real-time","sensor","spiffs","websocket"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smashembedded.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-04T18:44:10.000Z","updated_at":"2025-04-12T18:40:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce45b99d-ee4f-484e-9b0a-b283bf553baa","html_url":"https://github.com/smashembedded/mpu6050-dashboard","commit_stats":null,"previous_names":["smashembedded/mpu6050-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smashembedded/mpu6050-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashembedded%2Fmpu6050-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashembedded%2Fmpu6050-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashembedded%2Fmpu6050-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashembedded%2Fmpu6050-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smashembedded","download_url":"https://codeload.github.com/smashembedded/mpu6050-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smashembedded%2Fmpu6050-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32677919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","chartjs","dashboard","esp32","freertos","fun","html5","iot","javascript","mpu6050","platformio","real-time","sensor","spiffs","websocket"],"created_at":"2025-04-13T06:40:06.639Z","updated_at":"2026-05-06T03:32:01.254Z","avatar_url":"https://github.com/smashembedded.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/smashembedded.png\" alt=\"Smash Embedded\" width=\"250\" height=\"auto\"/\u003e\n\n# MPU6050 IMU\n![PlatformIO](https://img.shields.io/badge/platformio-ready-orange)\n[![License](https://img.shields.io/github/license/smashembedded/mpu6050-dashboard)](./LICENSE)\n![GitHub stars](https://img.shields.io/github/stars/smashembedded/mpu6050-dashboard?style=social)\n\nA real-time ESP32 IMU dashboard using **MPU6050**, **WebSockets**, and **Chart.js**, built as a [PlatformIO](https://platformio.org/) project. It uses **FreeRTOS** under the hood to run sensor data acquisition on a dedicated core task.\n\n---\n\n## Preview\n\n\u003cimg src=\"images/dashboard.png\" alt=\"Dashboard\" width=\"1200\" height=\"auto\"/\u003e\n\nA real-time graph showing accelerometer and gyroscope data in action.\n\n---\n\n## ✨ Features\n\n## Features\n\n- FreeRTOS filtered MPU6050 data streaming.\n- Low-pass filter for smoothing noisy sensor data.\n- Dual-line chart visualization: Accel \u0026 Gyro.\n- Fast WebSocket communication using `ESPAsyncWebServer`.\n- Responsive Chart.js interface.\n- Structured as a PlatformIO project.\n\n---\n\n## Hardware Required\n\n- ESP32\n- MPU6050\n- Micro USB cable\n- WiFi network\n\n---\n\n## Wiring Diagram\n\n\u003cimg src=\"images/mpu6050-dashboad.fzz.png\" alt=\"Wiring Diagram\" width=\"150\" height=\"auto\"/\u003e\n\n---\n\n## Setup\n\n### 1. Clone the repo\n\n```bash\ngit clone https://github.com/smashembedded/mpu6050-dashboard.git\ncd mpu6050\n```\n\n### 2. Configure WiFi Credentials\n\nCreate a file at `include/wifi_credentials.h`\n\n```bash\n#pragma once\n#define WIFI_SSID     \"YourSSID\"\n#define WIFI_PASSWORD \"YourPassword\"\n```\n\n### 3. Upload the  Web Interface to SPIFFS\n\nMake sure your dashboard HTML is placed in `data/index.html`\n\n```bash\npio run --target uploadfs\n```\n\n### 4. Flash the Firmware\n\n```bash\npio run --target upload\n```\n\n### 5. Open Serial Monitor (optional)\n\n```bash\npio device monitor\n```\n\n### 6. Access the Dashboard\n\nAfter connecting to WiFi, open a browser to:\n\n```bash\nhttp://\u003cESP32_IP\u003e/\n```\n\nCheck the serial output for your device's IP address.\n\n---\n\n## How It Works\n\n- ESP32 reads and filters MPU6050 data at ~40Hz.\n- Accumulated in batches of 10 and sent via WebSocket.\n- Browser receives data as a JSON array and updates two real-time charts.\n\n---\n\n## Dependencies\n\nCheck `platormio.ini`:\n\n- ArduinoJson\n- ESP Async WebServer\n- AsyncTCP\n- Adafruit MPU6050\n- Adafruit Unified Sensor\n\n---\n\n## PlatformIO\n\nInstall the [PlatformIO IDE](https://platformio.org/install) (VS Code extension recommended)\n\n---\n\n## 🤝 Contributing\n\nContributions, bug reports and feature suggestions are welcome!  \nFeel free to open an issue or submit a pull request.\n\n---\n\n## Support\n\nGitHub Sponsors coming soon!  \n⭐ this repo or [follow me](https://github.com/tu-usuario) to stay updated.\n\n---\n\n## Contact\n\n[Reach out on [Twitter](https://twitter.com/tu_handle) or via [email](mailto:you@example.com).].\n\n---\n\n## License\n\n[Apache License 2.0](LICENSE) © Smash Embedded\nSee the [Apache License](https://www.apache.org/licenses/LICENSE-2.0) for full terms.\n\n---\n\n## Credits\n\n* [Chart.js](https://www.chartjs.org/) for interactive charting.\n* [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer).\n* [Adafruit MPU6050 Library](https://github.com/adafruit/Adafruit_MPU6050).\n* [Vanepp](https://forum.fritzing.org/u/vanepp/summary) for providing the ESP32 Fritzing model on the [forum](https://forum.fritzing.org/t/esp-32-de-30-pines/22637).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmashembedded%2Fmpu6050-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmashembedded%2Fmpu6050-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmashembedded%2Fmpu6050-dashboard/lists"}