# DFRobot_GNSS
**Repository Path**: dfrobot/DFRobot_GNSS
## Basic Information
- **Project Name**: DFRobot_GNSS
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-03-08
- **Last Updated**: 2024-10-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DFRobot_GNSS
- [English Version](./README.md)
这是一款支持多卫星系统,可多系统联合定位和单系统独立定位的GNSS定位模块。能快速获取经纬度、时间、高度等数据。多系统联合定位相比于传统单一的GPS定位,可见和可用卫星数目大幅增加,能够提高定位精度和定位速度,即使是在复杂城市环境中也能实现稳定的高精度定位。
Gravity: GNSS定位模块,具有I2C和UART两种数据输出类型,兼容Arduino、ESP32、树莓派等主流的主控设备。可用于车载导航、手持定位、物品追踪、气象站等室外定位场景。
 
## 产品链接(https://www.dfrobot.com.cn/goods-3652.html)
    SKU:TEL0157
## 目录
* [概述](#概述)
* [库安装](#库安装)
* [方法](#方法)
* [兼容性](#兼容性y)
* [历史](#历史)
* [创作者](#创作者)
## 概述
提供一个Arduino库给GNSS模块,此库具有以下功能:
  获取 gnss的数据
  获取 gnss的原始数据
## 库安装
这里提供两种使用本库的方法:
1.打开Arduino IDE,在状态栏中的Tools--->Manager Libraries 搜索"DFRobot_GNSS"并安装本库.
2.首先下载库文件,将其粘贴到\Arduino\libraries目录中,然后打开examples文件夹并在该文件夹中运行演示.
## 方法
```C++
/**
 * @fn getUTC
 * @brief 获取utc 标准时间
 * @return sTim_t 类型,表示返回的时分秒
 * @retval sTim_t.hour 时
 * @retval sTim_t.minute 分
 * @retval sTim_t.second 秒
 */
  sTim_t getUTC(void);
/**
 * @fn getDate
 * @brief 获取年月日等日期
 * @return sTim_t 类型,表示返回的年月日
 * @retval sTim_t.year 年
 * @retval sTim_t.month 月
 * @retval sTim_t.day 日
 */
  sTim_t getDate(void);
/**
 * @fn getLat
 * @brief 获取纬度
 * @return sLonLat_t 类型,表示返回的经纬度
 * @retval sLonLat_t.latDD   纬度 度(0-90)
 * @retval sLonLat_t.latMM   纬度 分后0-2位小数
 * @retval sLonLat_t.latMMMMM 纬度 分后2-7位小数
 * @retval sLonLat_t.latitude 包含7位小数的纬度值
 * @retval sLonLat_t.latDirection 纬度的方向
 */
  sLonLat_t getLat(void);
/**
 * @fn getLon
 * @brief 获取经度
 * @return sLonLat_t 类型,表示返回的经度
 * @retval sLonLat_t.lonDDD  经度 度(0-90)
 * @retval sLonLat_t.lonMM   经度 分后0-2位小数
 * @retval sLonLat_t.lonMMMMM 经度 分后2-7位小数
 * @retval sLonLat_t.lonitude 包含7位小数的经度值
 * @retval sLonLat_t.lonDirection 经度的方向
 */
  sLonLat_t getLon(void);
/**
 * @fn getNumSatUsed
 * @brief 获取使用的卫星数
 * @return uint8_t 类型,表示使用的卫星数
 */
  uint8_t getNumSatUsed(void);
/**
 * @fn getAlt
 * @brief 获取大地的高度
 * @return double 类型,表示大地的高度
 */
  double getAlt(void);
/**
 * @fn getSog
 * @brief 获取对地速度
 * @return speed 浮点型数据 (单位 节)
 */
  double getSog(void);
/**
 * @fn getCog
 * @brief 获取对地真航向
 * @return 浮点型数据 (单位 度)
 */
  double getCog(void);
/**
 * @fn setGnss
 * @brief 设置星系
 * @param mode
 * @n   eGPS              使用 gps
 * @n   eBeiDou           使用 beidou
 * @n   eGPS_BeiDou       使用 gps + beidou
 * @n   eGLONASS          使用 glonass
 * @n   eGPS_GLONASS      使用 gps + glonass
 * @n   eBeiDou_GLONASS   使用 beidou +glonass
 * @n   eGPS_BeiDou_GLONASS 使用 gps + beidou + glonass
 * @return NULL
 */
  void setGnss(eGnssMode_t mode);
/**
 * @fn getGnssMode
 * @brief 获取使用的星系模式
 * @return mode
 * @retval 1 使用 gps
 * @retval 2 使用 beidou
 * @retval 3 使用 gps + beidou
 * @retval 4 使用 glonass
 * @retval 5 使用 gps + glonass
 * @retval 6 使用 beidou +glonass
 * @retval 7 使用 gps + beidou + glonass
 */
  uint8_t getGnssMode(void);
/**
 * @fn getAllGnss
 * @brief 获取gnss的数据,回调接收
 * @return null
 */
  void getAllGnss(void);
/**
 * @fn enablePower
 * @brief 使能gnss的电源
 * @return null
 */
void enablePower(void);
/**
 * @fn disablePower
 * @brief 失能gnss的电源
 * @return null
 */
void disablePower(void);
/**
 * @fn setRgbOn
 * @brief 开启 rgb 灯
 * @return null
 */
void setRgbOn(void);
/**
 * @fn setRgbOn
 * @brief 关闭 rgb 灯
 * @return null
 */
void setRgbOff(void);
/**
 * @fn setCallback
 * @brief 设置回调函数类型
 * @param  * call 函数名
 * @return null
 */
  void setCallback(void (*call)(char *, uint8_t));
```
## 兼容性
MCU                | Work Well    |   Work Wrong    | Untested    | Remarks
------------------ | :----------: | :-------------: | :---------: | :----:
Arduino Uno        |      √       |                 |             |
Arduino MEGA2560   |      √       |                 |             |
Arduino Leonardo   |      √       |                 |             |
FireBeetle-ESP8266 |      √       |                 |             |
FireBeetle-ESP32   |      √       |                 |             |
FireBeetle-M0      |      √       |                 |             |
Micro:bit          |      √       | nonsupport uart |             |
## 历史
- 2022/8/15 - V0.0.1 版本
- 2022/10/26 - V1.0.0 版本
## 创作者
Written by ZhixinLiu(zhixin.liu@dfrobot.com), 2022. (Welcome to our website)