Project #15: Environment - GNSS GPS - Mk34

Project #15: Environment - GNSS GPS - Mk34

Web

https://www.donluc.com/?p=4564

Facebook

https://www.facebook.com/share/v/1EX66b24er/

YouTube

https://youtu.be/tz7YLELhnQ4

#DonLucElectronics #DonLuc #GNSS #IoT #Project #DFRobot #Fritzing #Programming #Electronics #Microcontrollers #Consultant

Gravity: GNSS GPS BeiDou Receiver Module

GNSS stands for Global Navigation Satellite System. The main GNSS systems include GPS, GLONASS, QZSS, and BeiDou. These satellite systems transmit signals to the earth, allowing the receiver to determine its own position by calculating the propagation time of the signals and the position of the receiving satellite, thus achieving functions such as positioning and navigation.

This GNSS BeiDou positioning module supports multi-satellite system joint positioning and provides high-precision, high-speed, and stable data such as longitude, latitude, time, and altitude. It is suitable for various outdoor positioning scenarios, such as vehicle positioning, item tracking, weather stations, and outdoor positioning.

This GNSS receiver module uses the GNSS positioning system and support satellite systems such as BeiDou, GPS, GLONASS, QZSS, etc. Compared with traditional single GPS positioning, joint positioning using multiple systems increases the number of visible and usable satellites, which improves positioning accuracy and speed. It can also achieve stable high-precision positioning even in complex environments, providing more accurate positioning data.

DL2510Mk01

1 x FireBeetle 2 ESP32-P4 AI
1 x IO Expansion Board
1 x Adafruit SHARP Memory Display Breakout - 1.3" 168x144 Monochrome
1 x Gravity: GNSS GPS BeiDou Receiver Module
1 x USB Battery Pack
1 x USB 3.1 Cable A to C

DL2510Mk01p

DL2510Mk01p.ino

CODE
/****** Don Luc Electronics © ******
Software Version Information
Project #15: Environment - GNSS GPS - Mk34
15-34
DL2509Mk01p.ino
DL2509Mk01
1 x FireBeetle 2 ESP32-P4 AI
1 x IO Expansion Board
1 x Adafruit SHARP Memory Display Breakout - 1.3" 168x144 Monochrome
1 x Gravity: GNSS GPS BeiDou Receiver Module
1 x USB Battery Pack
1 x USB 3.1 Cable A to C
*/

// Include the Library Code
// EEPROM Library to Read and Write EEPROM
// with Unique ID for Unit
#include "EEPROM.h"
// SHARP Memory Display
#include <Adafruit_SharpMem.h>
#include <Adafruit_GFX.h>
// GNSS
#include "DFRobot_GNSS.h"

// Use I2C for communication, but use the serial port for communication if the line of codes were masked 
#define I2C_COMMUNICATION 

// ESP32 user hardware uart
DFRobot_GNSS_I2C gnss(&Wire ,GNSS_DEVICE_ADDR);
String sDate = "";
String sUTC = "";
String sLat = "";
String sLon = "";


// SHARP Memory Display
// any pins can be used
#define SHARP_SCK  30
#define SHARP_MOSI 29
#define SHARP_SS   28
// Set the size of the display here, e.g. 144x168!
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168);
// The currently-available SHARP Memory Display (144x168 pixels)
// requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno
// or other <4K "classic" devices!  The original display (96x96 pixels)
// does work there, but is no longer produced.
#define BLACK 0
#define WHITE 1

// EEPROM Unique ID Information
#define EEPROM_SIZE 64
String uid = "";

// Software Version Information
String sver = "15-34";

void loop() {


  // isGNSS
  isGNSS();

  // isGNSS Display
  isDisplayGNSS();

  // Delay 1 Second
  delay( 1000 );

}

getDisplay.ino

CODE
// SHARP Memory Display
// SHARP Memory Display - UID
void isDisplayUID(){

  // text display
  display.clearDisplay();
  display.setRotation(4);
  display.setTextSize(2);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  // Don Luc
  display.println( "Don Luc" );
  // EEPROM
  display.setCursor(0,25);
  display.println( "EEPROM" );
  display.setCursor(0,55);
  display.println( uid );
  // Version
  display.setCursor(0,85);
  display.println( "Version" );
  display.setCursor(0,115);
  display.println( sver );
  display.refresh();
  delay( 100 );

}
// isGNSS Display
void isDisplayGNSS(){

  // text display Date and Time
  display.clearDisplay();
  display.setRotation(4);
  display.setTextSize(2);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  display.print( "Lan: " );
  display.println( sLat );
  display.setCursor(0,25);
  display.print( "Lon: " );
  display.println( sLon );
  display.setCursor(0,55);
  display.println( "UTC" );
  display.setCursor(0,85);
  display.println( sDate );
  display.setCursor(0,115);
  display.println( sUTC );
  display.refresh();
  delay( 100 );
  
}

getEEPROM.ino

CODE
// EEPROM
// isUID EEPROM Unique ID
void isUID() {
  
  // Is Unit ID
  uid = "";
  for (int x = 0; x < 7; x++)
  {
    uid = uid + char(EEPROM.read(x));
  }

}

getGNSS.ino

CODE
// GNSS
// isSetupGNSS
void isSetupGNSS(){

  // GNSS
  //while(!gnss.begin()){
    //Serial.println("NO Deivces !");
   // delay(1000);
  //}

  gnss.begin();
  
  // GNSS
  gnss.enablePower();      

/** Set the galaxy to be used
 *   eGPS              USE gps
 *   eBeiDou           USE beidou
 *   eGPS_BeiDou       USE gps + beidou
 *   eGLONASS          USE glonass
 *   eGPS_GLONASS      USE gps + glonass
 *   eBeiDou_GLONASS   USE beidou +glonass
 *   eGPS_BeiDou_GLONASS USE gps + beidou + glonass
 */
  gnss.setGnss(eGPS_BeiDou_GLONASS);

  // GNSS
  // gnss.setRgbOff();
  gnss.setRgbOn();
  
  
}
// isGNSS
void isGNSS(){

  // GNSS
  sTim_t utc = gnss.getUTC();
  sTim_t date = gnss.getDate();
  sLonLat_t lat = gnss.getLat();
  sLonLat_t lon = gnss.getLon();
  
  sDate = "";
  sUTC = "";
  sLat = "";
  sLon = "";

  // Latitude
  sLat = lat.latitudeDegree;
  // Longitude
  sLon = lon.lonitudeDegree;

  // Date
  sDate = date.year;
  sDate = sDate + "/";
  sDate = sDate + date.month;
  sDate = sDate + "/";
  sDate = sDate + date.date;

  // UTC
  sUTC = utc.hour;
  sUTC = sUTC + ":";
  sUTC = sUTC + utc.hour;
  sUTC = sUTC + ":";
  sUTC = sUTC + utc.minute;

}

setup.ino

CODE
// Setup
void setup()
{
 
  // Delay
  delay( 100 );

  // EEPROM Size
  EEPROM.begin(EEPROM_SIZE);
  
  // EEPROM Unique ID
  isUID();

  // Delay
  delay(100);

  // SHARP Display start & clear the display
  display.begin();
  display.clearDisplay();

  // Delay
  delay(100);

  // isSetupGNSS
  isSetupGNSS();

  // Delay
  delay( 100 );

  // Display - UID
  // Don Luc Electronics
  // Version
  // EEPROM
  isDisplayUID();
    
  // Delay 5 Second
  delay( 5000 );

}

People can contact us: http://www.donluc.com/?page_id=1927

Consultant, R&D, Electronics, IoT, Teacher and Instructor

-Programming Language
-Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc...)
-IoT
-Wireless (Radio Frequency, Bluetooth, WiFi, Etc...)
-Robotics
-Automation
-Camera and Video Capture Receiver Stationary, Wheel/Tank , Underwater and UAV Vehicle
-Unmanned Vehicles Terrestrial, Marine and UAV
-Machine Learning
-Artificial Intelligence (AI)
-RTOS
-Sensors, eHealth Sensors, Biosensor, and Biometric
-Research & Development (R & D)
-Consulting
-Etc...

Follow Us

Luc Paquin – Curriculum Vitae - 2025
https://www.donluc.com/luc/

Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
DFRobot: https://learn.dfrobot.com/user-10186.html
Elecrow: https://www.elecrow.com/share/sharepj/center/no/760816d385ebb1edc0732fd873bfbf13
TikTok: https://www.tiktok.com/@luc.paquin
Hackster: https://www.hackster.io/luc-paquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/

Don Luc

icon DL2510Mk01.zip 212KB Download(0)
License
All Rights
Reserved
licensBg
0