Giter VIP home page Giter VIP logo

xtoshiro / pavevibe Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 8.28 MB

PaveVibe: A georeferenced device leveraging ESP32, accelerometer, and GPS data to measure and map pavement quality, identifying defects for maintenance and infrastructure improvement.

License: GNU General Public License v3.0

Jupyter Notebook 48.94% C++ 51.06%
accelerometer data-analysis data-filtering data-integration esp32 georeferencing gps infrastructure iot qgis

pavevibe's Introduction

PaveVibe

PaveVibe is an innovative project designed to measure the quality of pavement surfaces and identify defects in a georeferenced manner using accelerometer and GPS data. By leveraging the capabilities of an ESP32 microcontroller, PaveVibe collects precise movement and location data, enabling detailed analysis of pavement conditions and the pinpointing of areas in need of maintenance.

Project Objective

The main objective of PaveVibe is to create a portable, efficient device that can detect and record pavement defects with precise geolocation information. This allows for a comprehensive mapping of pavement quality over large areas, providing valuable data for maintenance planning and infrastructure improvement efforts.

Features

  • Real-time Clock Synchronization: At startup, PaveVibe synchronizes the ESP32's internal RTC with GPS time. This ensures that even in the absence of GPS signals, the system retains accurate time information, which can be synchronized with smartphone apps like GPS Logger for enhanced data integrity.
  • Data Integration: The repository includes a Jupyter Notebook (tratamento e merge.ipynb) designed to merge the data collected by PaveVibe from the SD card with .gpx files from GPS Logger. This process automatically handles missing columns and merges entries based on date and time, followed by interpolation and expansion of GPS data for comprehensive analysis.
  • Advanced Data Filtering: Also featured is a Notebook (Filtros_SMA_Butterworth_COMP.ipynb) containing models for filtering accelerometer data using SMA (Simple Moving Average) and Butterworth filters, ensuring clean and reliable data for analysis.

Getting Started

To get started with PaveVibe, follow these steps:

  1. Hardware Setup: Assemble your ESP32 module and sensors according to the provided circuit diagram.
  2. Software Setup: Flash the ESP32 with the code found in the PaveVibe directory of this repository.
  3. Data Collection: Begin collecting pavement data. Ensure GPS Logger is running on your smartphone to gather GPS data simultaneously.
  4. Data Processing: Use the provided Jupyter Notebooks to merge and filter the collected data.

Configuration

The PaveVibe project allows for certain configurations to be adjusted to suit specific requirements. These configurations are set in the ESP32 code, found in the /PaveVibe directory.

Sampling Rate

One of the key configurable parameters in the PaveVibe project is the sampling rate, which dictates how frequently the device collects data from the accelerometer and GPS. By default, this is set to:

const int amostrasPorSegundo = 10; // Samples per second

Circuit Diagram

Circuit Diagram

This diagram illustrates the setup required for PaveVibe, showing connections between the ESP32, accelerometer, and GPS module.

Internal Organization

Internal Organization

This image shows the internal organization of the components within PaveVibe.

Final Project Version

Final Project Version

This image displays the final version of the PaveVibe project in its current state.

Data Visualization

Data in QGIS

A representation of how pavement quality data can be visualized using QGIS, offering insights into pavement conditions across different locations.

3D Printable Case

The PaveVibe project includes a 3D printable case for the device, which can be found in the 3D files directory as a .f3d file. This case is designed to protect the device and integrate all components effectively.

Repository Structure

  • /PaveVibe: Contains the ESP32 code for data collection.
  • tratamento e merge.ipynb: Jupyter Notebook for merging and preprocessing collected data.
  • Filtros_SMA_Butterworth_COMP.ipynb: Notebook for applying SMA and Butterworth filters to accelerometer data.
  • /3D files: Contains the .f3d file for printing the case in 3D.

License

PaveVibe is licensed under the GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007. For more details, see the LICENSE file in this repository.

Acknowledgments

Special thanks to everyone who contributed to PaveVibe, from initial concept through to implementation and data analysis. Your hard work and dedication are greatly appreciated.

pavevibe's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.