Introduction: Visualization of GNSS Module Data on Map Using ESP8266 (Realtime)

About: Instructor | Artificial Intelligence | Embedded Systems | Blockchain

Where am I?

Tracking and visualizing location data is made seamless by combining an ESP8266 Wi-Fi module with a GPS module.

Hmmm, how does it work? The GNSS (GPS) module is like my beacon in the sky, picking up signals from satellites to pinpoint my exact location coordinates. Then, I got this ESP8266 Wi-Fi module, which acts as this bridge, you know, connecting us to the internet and making all the magic happen. And here's the kicker: I'm taking all that juicy location data and visualizing it right onto a map interface in real-time. It's like watching dots move around on a map, showing you exactly where something is at any given moment.

Step 1: Requirements

ESP8266 NodeMCU WiFi Programming Development Kit

Ublox-NEO-M8N GNSS Positioning Module

Step 2: System Architecture (Data Flow)

The system utilizes a GNSS module to gather precise location data in NEMA form (National Marine Electronics Association). This data is transmitted to an ESP8266 microcontroller via the UART communication protocol. The ESP8266, equipped with Wi-Fi connectivity, establishes a connection to the internet to access a real-time database (Google Firebase). The received location data is then written into the Firebase database. Subsequently, JavaScript is employed to retrieve this data from Firebase and pass it to a mapping API. Finally, the map API renders the location data onto a map, which is displayed in an HTML web view.

Step 3: GNSS Module & NodeMCU-ESP8266 Integration

GNSS Module Configuration:

  • Connect the GNSS M8N module directly to the ESP8266 module using UART communication.
  • Configure the GNSS module to utilize the desired GNSS constellations, update rate, output message format, and other parameters as needed.

ESP8266 Setup:

  • Set up the ESP8266 module to act as both the microcontroller and the Wi-Fi module.
  • Configure the ESP8266 to connect to a Wi-Fi network, providing internet access for data transmission.
  • Implement code on the ESP8266 to continuously read location data from the GNSS module over UART communication and process it accordingly.

Source Code

Step 4: Firebase (Realtime Database)

Real-Time Database Integration (Google Firebase):

  • Set up a Google Firebase account and create a real-time database to store the received location data.
  • Configure the ESP8266 to establish a connection to the Firebase database using appropriate authentication credentials.
  • Implement code on the ESP8266 to write the received location data to the Firebase database in real-time.

Begin by creating a Firebase project through the Firebase console, where you'll obtain your project-specific configuration details, including the API key, database URL, and other authentication parameters. Next, enable the real-time database service within your Firebase project. Define your database's rules to specify who has access to read and write data. These rules can be customized to suit your application's security and data privacy requirements. Once your database is set up, initialize Firebase within your application code, providing the necessary configuration parameters. You can then interact with the database using Firebase SDKs and APIs, such as Firebase Realtime Database SDK for web or mobile platforms.

Step 5: Selecting Map API

A map API, or Application Programming Interface, serves as a crucial tool for you to integrate interactive maps and geographic functionalities into your projects.

By leveraging map APIs offered by leading providers like Google Maps or Mapbox, developers can seamlessly incorporate features such as displaying maps, geocoding addresses, generating routes, and searching for points of interest. These APIs empower you to create dynamic and user-friendly applications that harness the power of spatial data.

Map API Integration:

  • Choose a map API such as Google Maps, Mapbox, or Leaflet.
  • Set up an account with the chosen map API provider and obtain an API key for authentication.
  • Implement JavaScript code to fetch location data from the Firebase database.
  • Use the map API's documentation to integrate the fetched location data and display it on a map interface within an HTML web view.
  • Customize the map interface as desired, adding markers, overlays, and other interactive elements to enhance user experience.

Maps APIs:

Google Maps API

Map box

Open-Source Map API:

Leaflet

Step 6: Web View (HTML, JavaScript)