GPS

本页介绍 MikroTik RouterOS 中的 GPS 配置与监控,涵盖通道选择、坐标格式、GPS 初始化字符串等属性,以及带 data-age 等参数的监控命令。

GPS

本节涵盖 GPS 跟踪示例。可使用本节将 RouterOS GPS 数据发送到 HTTP 端点、MQTT Broker 与 IoT 平台。

摘要

软件包要求: gps 子菜单: /system/gps 标准: GPS, NMEA 0183, Simple Text Output Protocol

全球定位系统(GPS)用于确定 GPS 接收器的精确位置。

配置属性

属性说明
channel(integer [0..4294967295];默认:0)设备使用的端口通道
coordinate-format(dd | dms | ddmm;默认:dms)使用的坐标格式:"十进制角度"、"度分秒" 或 "NMEA 格式 DDDMM.MM[MM]"
enabled(yes | no;默认:no)是否启用 GPS
gps-antenna-select(external | internal;默认:internal)取决于型号。如果设备安装了内置天线,可选择内置天线。
init-channel(integer [0..4294967295];默认:)执行初始化字符串的通道
init-string(string;默认:)用于 GPS 初始化的 AT 初始化字符串
port(string;默认:)GPS 接收器所连接的 USB/串行端口名称
set-system-time(yes | no;默认:no)是否将路由器日期与时间设置为从 GPS 接收的时间。

监控状态

命令: /system/gps/monitor

该命令用于监控从 GPS 接收器收到的数据。

参数:

警告

从 7.1rc3 固件版本开始,新增了名为 "data-age"(以秒为单位)的参数。该参数显示自设备收到最后一条 NMEA 消息以来经过的时间。 | 属性 | 说明 | | :-- | :-- | | date-and-time(date) | 从 GPS 收到的日期与时间 | | latitude(none | string) | 以 DM(度分十进制)格式表示的纬度 | | longitude(none | string) | 以 DM(度分十进制)格式表示的经度 | | altitude(none | string) | 基于 GPS 数据的海拔 | | speed(none | string) | GPS 单元的当前移动速度 | | destination-bearing(none | string) | 从当前位置指向已配置目标航点的方位 | | true-bearing(none | string) | 相对于真北的当前航向 | | magnetic-bearing(none | string) | 相对于磁北的当前航向 | | valid(yes | no) | | | satellites(integer) | 设备可见的卫星数量。 | | fix-quality(integer) | 信号质量 | | horizontal-dilution(decimal) | 水平精度因子(HDOP); | | data-age(integer) | 自设备收到最后一条 NMEA 消息以来经过的时间 |

基础示例

检查端口使用情况,因为同一时间只能有一个实例使用串行端口:

[admin@MikroTik] /port/print
Flags: I - inactive 
 #   DEVICE NAME                     CHANNELS USED-BY                   BAUD-RATE
 0          serial0                         1 Serial Console            auto    

如果只有一个端口且已被控制台使用,请在控制台菜单中释放它:

[admin@MikroTik] > /system/console/print 
Flags: X - disabled, U - used, F - free
 #   PORT                                                                       TERM                                                                     
 0 U serial0                                                                    vt102 

[admin@MikroTik] > /system/console/disable 0   

针对你的设备调整端口设置(LtAP mini 请保留 "auto"):

[admin@MikroTik] /port> set 0 baud-rate=4800 parity=odd
[admin@MikroTik] /port> print detail 
Flags: I - inactive 
 0   name="usb1" used-by="" channels=1 baud-rate=4800 data-bits=8 parity=odd stop-bits=1 flow-control=none

启用 GPS:

[admin@MikroTik] /system/gps> set enabled=yes port=usb1
[admin@MikroTik] /system/gps> print 
          enabled: yes
             port: usb1
          channel: 0
     init-channel: 0
      init-string:
  set-system-time: no

监控状态:

[admin@MikroTik] /system/gps> monitor  
        date-and-time: 2021-09-07 08:26:26
             latitude: 56.969689
            longitude: 24.162471
              altitude: 25.799999 m
                speed: 0.759320 km/h
  destination-bearing: none
         true-bearing: 185.500000 deg. True
     magnetic-bearing: 0.000000 deg. Mag
                valid: yes
           satellites: 6
          fix-quality: 1
  horizontal-dilution: 1.3

LtAP 的端口与 GPS 设置

/port/set serial1 baud-rate=115200
/system/gps/set port=serial1 channel=0 enabled=yes

我们还编写了一篇关于实时 GPS 跟踪的深入文章,使用脚本与 Web 服务器:GPS 跟踪。

故障排查

请注意,有时需要在 /port 菜单中更改波特率设置,才能让 RouterOS 识别 GPS 模块。

LtAP mini 内置低增益 GPS 天线,为获得更好体验,建议使用额外的 外置天线。

在 GPS 菜单中切换内置与外置天线:

[admin@MikroTik] > /system/gps/set gps-antenna-select=external

在某些支持 GPS 的调制解调器上,需要发送多条初始化命令才能持续进行 GPS 监控。例如华为卡需要发送 "AT^WPDST=1,AT^WPDGP" 初始化字符串以实现持续监控。