3 软件操作指引

3.1 按键

ED-GWL2110包含1个用户自定义按键,在设备内部,连接到CPU的GPIO23管脚,默认状态下为高电平,当按键按下时,该管脚为低电平。

可使用raspi-gpio命令进行查询按键对应GPIO的状态。

  • 按键未按下时,查询GPIO23管脚
raspi-gpio get 23
GPIO 23: level=1 fsel=0 func=INPUT

level为1表示GPIO23管脚为高电平。

  • 按键按下时,查询GPIO23管脚
raspi-gpio get 23
GPIO 23: level=0 fsel=0 func=INPUT

level为0表示GPIO23管脚为低电平。

3.2 LED指示灯

ED-GWL2110包含一个RGB三色LED指示灯,相连的GPIO管脚对应如下:

RGB LED管脚对应GPIO
蓝色GPIO11
绿色GPIO12
红色GPIO13

GPIO输出为低时,对应LED有效。

支持使用raspi-gpio命令进行查询GPIO的状态。

  • 配置参数为op,表示设置为输出;
  • 配置参数为dl,表示设备管脚为低电平;
  • 配置参数为dh,表示设置管脚为高电平。

LED显示为蓝色

sudo raspi-gpio set 11 op dl
sudo raspi-gpio set 12 op dh
sudo raspi-gpio set 13 op dh

LED显示为绿色

sudo raspi-gpio set 11 op dh
sudo raspi-gpio set 12 op dl
sudo raspi-gpio set 13 op dh

LED显示为红色

sudo raspi-gpio set 11 op dh
sudo raspi-gpio set 12 op dh
sudo raspi-gpio set 13 op dl

LED显示为黄色

sudo raspi-gpio set 11 op dh
sudo raspi-gpio set 12 op dl
sudo raspi-gpio set 13 op dl

3.3 配置以太网IP

出厂默认为自动获取IP地址,如果需要重新配置IP,可通过NetworkManager工具来配置。

提示

出厂默认的Desktop和Lite操作系统已使能NetworkManager,可直接使用NetworkManager进行配置。

3.3.1 Raspberry Pi OS(Desktop)

在Desktop版本的操作系统中,建议使用图形化的NetworkManager工具来配置IP。

提示

Desktop版本的操作系统已默认安装NetworkManager图形化工具

前提条件:

已使能Wi-Fi功能。

操作步骤:

  1. 左键单击桌面右上角的image-20240605110003439图标,在菜单中选择“Advanced Options→Edit Connections”。
image-20241126174225889
  1. 在弹出的Network Connections窗格中选中要修改的连接名称,再单击下方的设置按钮。
image-20240605110028929
  1. 在弹出的Editing Wired connection中选择IPv4 Settings配置页,按需设置IP地址。
  • 如果要将IP设置为静态IP,则设置Method为Manual,在Addresses中增加一个条目并输入对应的IP地址信息。
image-20240605110114834
  • 如果要将IP设置为自动获取,则仅需要将Method设置为Automatic(DHCP)。
image-20240605110124857
  1. 单击save返回至Network Connections,关闭页面。

  2. 在命令窗格中执行sudo reboot命令,重启设备。

3.3.2 Raspberry Pi OS(Lite)

在Lite版本的操作系统中,支持通过命令行来配置IP。

前提条件:

已使能NetworkManager。

操作步骤:

设置静态IP地址

  1. 获取分配的IP地址、子网掩码和网关地址,例如IP地址为192.168.1.101/24,网关IP为192.168.1.1。
  2. 获取待修改的连接的名称,例如e167c45f-efed-3f8d-89a5-f2430f92fae8,可在命令窗格中执行如下命令查询连接名称。
nmcli c
image-20240605110202394
  1. 在命令窗格执行如下命令,将对应连接的IP地址设置为已获取的IP地址。
sudo nmcli connection modify e167c45f-efed-3f8d-89a5-f2430f92fae8 ipv4.addresses 192.168.1.101/24 ipv4.method manual
  1. 执行如下命令,将网关IP设置为已获取的网关IP。
sudo nmcli connection modify e167c45f-efed-3f8d-89a5-f2430f92fae8 ipv4.gateway 192.168.1.1

设置自动获取IP

  1. 获取待修改的连接的名称,例如e167c45f-efed-3f8d-89a5-f2430f92fae8,可在命令窗格中执行如下命令查询连接名称。
nmcli c
image-20240605110234146
  1. 执行如下命令,将对应连接的IP地址的方式设置自动获取IP。
sudo nmcli connection modify e167c45f-efed-3f8d-89a5-f2430f92fae8 ipv4.method auto

3.4 配置Wi-Fi (可选)

配置Wi-Fi

3.5 配置蓝牙 (可选)

配置蓝牙

3.6 配置 4G (可选)

配置4G

3.7 配置存储设备(SD卡)

配置存储设备

3.8 配置 RTC

配置RTC

3.9 GNSS

ED-GWL2110网关集成L76K GPS模块,其与CPU的UART0串口相连。模块通过NMEA 0183通用协议输出语句上报GNSS信息。

3.9.1 引脚配置

  • L76K GPS模块的WakeUp信号与GPIO4相连,拉低该管脚模块将进入待机模式,拉高或悬空该管脚模块将返回连续模式。
  • Reset信号与GPIO5相连,拉低该管脚并持续100ms将复位模块。
  • SET信号与GPIO6相连,用于配置卫星组合。
    • 当该管脚为悬空或高电平时,卫星组合为GPS和北斗;
    • 当管脚为低电平时,卫星组合为GPS和GLONASS。
编号SignalCM4 Pinout
1GPS_WakeUpGPIO4
2GPS_ResetGPIO5
3GPS_SetGPIO6

3.9.2 修改config.txt使能串口

  1. 执行如下命令,打开config.txt文件。
sudo nano /boot/config.txt
  1. 在文件的末尾在最后面添加“enable_uart=1”。

  2. 输入ctrl+o 保存配置文件,再按Enter,最后输入ctrl+x 退出配置文件。

3.9.3 查看GNSS信息

sudo cat /dev/ttyS0

显示GPS数据如下:

$BDGSV,3,1,11,04,29,117,20,10,,,19,16,75,160,,24,51,328,,0*4C
$BDGSV,3,2,11,25,,,27,26,,,21,34,12,198,,35,45,063,,0*76
$BDGSV,3,3,11,39,62,159,17,41,,,25,59,44,137,,0*7A
$GNRMC,053557.000,A,3027.47401,N,11424.34027,E,1.17,186.64,070223,,,A,V*05
$GNVTG,186.64,T,,M,1.17,N,2.17,K,A*2D
$GNZDA,053557.000,07,02,2023,00,00*4F
$GPTXT,01,01,01,ANTENNA OPEN*25
$GNGGA,053558.000,3027.47438,N,11424.34119,E,1,07,1.5,75.0,M,-14.1,M,,*52
$GNGLL,3027.47438,N,11424.34119,E,053558.000,A,A*4F
$GNGSA,A,3,07,08,16,31,195,,,,,,,,2.1,1.5,1.5,1*05
$GNGSA,A,3,04,39,,,,,,,,,,,2.1,1.5,1.5,4*39
$GPGSV,3,1,12,04,54,241,16,07,19,314,15,08,63,208,15,09,38,291,,0*67
$GPGSV,3,2,12,16,51,029,17,18,07,046,,21,08,175,,26,24,063,,0*6A
$GPGSV,3,3,12,27,77,065,,31,09,122,22,194,61,058,,195,46,125,21,0*66

NMEA 0183通用语句说明如下:

  • BDGSV:可视北斗卫星信息
  • $GNRMC:推荐的GNSS数据
  • $GNVTG:相对地面航向和速度信息
  • $GNZDA:时间和日期,UTC格式
  • $GPTXT:文本传送
  • $GNGGA:多星联合定位数据
  • $GNGLL:地理位置纬度和经度
  • $GNGSA:表示GNSS精度因子和有效卫星
  • $GPGSV:可视的GNSS卫星

3.9.4 使用u-center工具查看定位信息

3.9.4.1 安装串口转网络工具ser2net

sudo apt-get update
sudo apt-get install ser2net

启用ser2net服务

ser2net配置文件为/etc/ser2net.yaml,默认已配置/dev/ttyS0,波特率为9600,无校验,对应的TCP端口为2000。

connection: &con0096
    accepter: tcp,2000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS0,
              9600n81,local

3.9.4.2 检查ser2net端口转发服务

执行如下命令,查询ser2net是否已启动2000端口转发。

sudo netstat -ltnp | grep 2000
  • 如果已启动端口转发,将显示如下信息。
tcp6    0    0 :::2000         :::*           LISTEN    720/ser2net 
  • 如果无信息显示,则重启ser2net服务。
sudo systemctl restart ser2net 

配置定位

  1. 下载u-centeropen in new window工具并安装,如果提示缺少MSVCR120.dll文件,请安装vcredist_x86.exeopen in new window

  2. 打开u-center,选择“Receiver”→“Connection”→“Network connection”→“New…”。

image-20241218110541721
  1. 输入设备IP和端口号2000。
image-20241218110559954
  1. 配置完成后会显示GPS定位信息。
image-20241218110628670
  • 如果Fix Mode显示为No Fix,表示未能成功定位,一般是由于天线在室内的原因造成,请将模块或天线置于户外进行试验。
image-20241218110646278

注意

模块首次定位,在户外没有大型建筑遮挡的情况下,大概需要30秒才能定位成功,如果天气条件恶劣,可能需要更长的定位时间或无法定位。

3.10 LoRaWAN

ED-GWL2110支持LoRaWAN和开源服务平台ChirpStack,下文介绍具体的安装和配置。

提示

仅以US915 LoRa网关模块为例进行介绍。

3.10.1 Chirpstack客户端

设备在出厂时已安装firmware包、LoRa模块包以及chirpstack软件包,可通过dpkg -l | grep ed-命令检查对应的LoRa模块包。

如用户需要重新安装操作系统,请参考安装操作系统章节。

3.10.2 修改配置文件

3.10.2.1 修改json配置文件

  1. 执行如下命令,启动ed-lora.service
sudo systemctl enable --now ed-lora.service
  1. 执行如下命令,获取json配置文件的路径。
systemctl status ed-lora.service
image-20250304111246688
  1. 执行如下命令,打开json文件。
sudo nano /opt/ed-lora/conf/global_conf.json.US915
  1. 在文件底部删除 "gps_i2c_path": "/dev/i2c-1"
image-20250304111347653

3.10.2.2 修改chirpstack配置文件

  1. 执行如下命令,打开配置文件。
sudo nano /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
  1. 修改如下部分的内容:

    • 修改udp_bind = "0.0.0.0:1700"udp_bind = "0.0.0.0:1680"
    • 在gateway前添加网关型号:
      • 修改event_topic_template="gateway/{{ .GatewayID }}/event/{{ .EventType }}"event_topic_template="us915_0/gateway/{{ .GatewayID }}/event/{{ .EventType }}"
      • 修改command_topic_template="gateway/{{ .GatewayID }}/command/#"command_topic_template="us915_0/gateway/{{ .GatewayID }}/command/#"

    提示

    如果您使用EU868或CN470模块,请将前缀us915_0修改为eu868_0cn470_10

  2. 执行如下命令,重启对应的服务。

sudo systemctl daemon-reload
sudo systemctl restart chirpstack-gateway-bridge.service ed-lora.service

3.10.3 Chirpstack服务端

Chirpstack服务端可以部署在当前设备上,也可以部署在同一局域网内的设备上。本文档以在当前设备上部署为例。(如部署在局域网内的其它设备上,请修改3.10.2.2 修改chirpstack配置文件udp_bind0.0.0.0为该设备的IP)

  1. 部署Chirpstack服务端前,请执行如下命令安装docker-compose。
sudo apt install docker-compose -y
  1. 采用docker容器的方式部署ChirpStack服务端。
git clone https://github.com/chirpstack/chirpstack-docker.git
image-20250304111813364
  1. chirpstack-docker的docker-compose.yml进行配置。
cd chirpstack-docker
nano docker-compose.yml 
  1. chirpstack-gateway-bridge部分进行注释。
services:
  chirpstack:
    image: chirpstack/chirpstack:4
    command: -c /etc/chirpstack
    restart: unless-stopped
    volumes:
      - ./configuration/chirpstack:/etc/chirpstack
    depends_on:
      - postgres
      - mosquitto
      - redis
    environment:
      - MQTT_BROKER_HOST=mosquitto
      - REDIS_HOST=redis
      - POSTGRESQL_HOST=postgres
    ports:
      - "8080:8080"

#  chirpstack-gateway-bridge:
#    image: chirpstack/chirpstack-gateway-bridge:4
#    restart: unless-stopped
#    ports:
#      - "1700:1700/udp"
#    volumes:
#      - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
#    environment:
#      - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/event/{{ .EventType }}
#      - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/state/{{ .StateType }}
#      - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/command/#
#    depends_on:
#      - mosquitto

  chirpstack-gateway-bridge-basicstation:
    image: chirpstack/chirpstack-gateway-bridge:4
    restart: unless-stopped
    command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-eu868.toml
    ports:
      - "3001:3001"
    volumes:
      - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
    depends_on:
      - mosquitto

  chirpstack-rest-api:
    image: chirpstack/chirpstack-rest-api:4
    restart: unless-stopped
    command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
    ports:
      - "8090:8090"
    depends_on:
      - chirpstack

  postgres:
    image: postgres:14-alpine
    restart: unless-stopped
    volumes:
      - ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
      - postgresqldata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=chirpstack
      - POSTGRES_PASSWORD=chirpstack
      - POSTGRES_DB=chirpstack

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    command: redis-server --save 300 1 --save 60 100 --appendonly no
    volumes:
      - redisdata:/data

  mosquitto:
    image: eclipse-mosquitto:2
    restart: unless-stopped
    ports:
      - "1883:1883"
    volumes:
      - ./configuration/mosquitto/config/:/mosquitto/config/

volumes:
  postgresqldata:
  redisdata:

提示

用户可通过修改mosquitto部分配置mqtt服务。

image-20250304111836072

3.10.4 启动chirpstack服务端

执行如下命令,在部署chirpstack服务端的设备上启动chirpstack服务端。

sudo docker-compose up -d
image-20250304112256226

3.10.5 登录chirpstack服务管理界面

3.10.5.1 浏览器登录

  1. 在PC端浏览器输入服务器的IP地址端口号:http://localhost:8080,
image-20250304112410051
  1. 在登录界面输入用户名和密码。

提示

默认的用户名为admin,默认密码为admin

image-20250304112429606

3.10.5.2 获取LoRa网关ID

  1. 执行如下命令,查看对应的LoRa文件。
systemctl status ed-lora.service
image-20250304112546393
  1. 执行如下命令,查看LoRa网关的ID。
cat /opt/ed-lora/conf/global_conf.json.US915 | grep gateway
image-20250304112617922

提示

在chirpstack服务端添加LoRa网关时,需要填加对应的网关ID。

3.10.5.3 添加LoRa网关

  1. 在PC端浏览器打开chirpstack管理界面,单击“Gateway” -> “Add gateway”。
image-20250304112705047
  1. 单击“add”。
image-20250304112719943
  1. 填入设备对应的Gateway ID,并设置Name,然后单击“Submit”。如果网络连接正确,稍等片刻即可看到添加的网关变为Online状态。
image-20250304112800072image-20250304113009408

3.10.5.4 添加设备配置

单击“Device Profile” -> “Add device profile”,补充设备信息。

image-20250304113533937

3.10.4.5 添加应用

单击“Applications” -> “Add application”。

image-20250304113603291

3.10.4.6 添加设备

LoRa终端产品的DevEUIAppKey均由LoRa终端设备制造商提供。

  1. 单击“Application” -> “your application” -> “Add device”,添加LoRa终端设备。
image-20250304113701794image-20250304113737496image-20250304113911279
  1. 等待几分钟后,可看到设备变成online状态。
image-20250304113940478

3.11 加密芯片

ED-GWL2110板载ATECC608加密芯片,它连接到i2c-1总线,器件默认地址为0x60。

atecc: https://github.com/wirenboard/atecc-util

atecc -b 1 -c 'serial'