通信模组
为了支持 LoRA、蓝牙、通用 2.4G 等模块,RHILEX 提供了一些插件模块的接口,以软件的形式将通信模块接入进来。这个特性被抽象为:通信模组。
支持模块
当前阶段支持以下常见模块:
- 妙享蓝牙 BLE 模组
- 亿百特 E32 LoRA 模组
- 亿百特 E43 2.4.G 模组
- 正点原子 ATK-01 LoRA 模组
RHILEX 将外部模块做了最大可能的兼容和抽象,一般来说,绝大部分通用串口通信模块,几乎可以无成本接入 RHILEX。如果有个性化的通信模块需要支持,请联系 RHILEX 团队开发对应的驱动。
环境参数
以下列出了支持的外部通信模块及其对应的标识:
[
# WIFI_SUPPORT: 支持无线局域网通信,用于高速数据传输和互联网接入。
'WIFI_SUPPORT',
# BLC_SUPPORT: 支持低功耗蓝牙通信,适用于近距离低速率数据交换和设备配对。
'BLC_SUPPORT',
# BLE_SUPPORT: 支持蓝牙低能耗技术,适合电池供电设备的低功耗数据传输。
'BLE_SUPPORT',
# ZIGBEE_SUPPORT: 支持 Zigbee 协议,一种低速短距离传输的无线网上协议,适用于智能家居和工业自动化。
'ZIGBEE_SUPPORT',
# RF24g_SUPPORT: 支持 2.4GHz 射频通信,常用于无线传感器网络和小型设备间的数据传输。
'RF24g_SUPPORT',
# RF433M_SUPPORT: 支持 433MHz 射频通信,具有较好的穿透能力和较远的传输距离,适用于远距离无线控制。
'RF433M_SUPPORT',
# MN4G_SUPPORT: 支持 4G 移动通信网络,提供高速移动宽带连接。
'MN4G_SUPPORT',
# MN5G_SUPPORT: 支持 5G 移动通信网络,提供更高的数据传输速度和更低的延迟。
'MN5G_SUPPORT',
# NBIoT_SUPPORT: 支持窄带物联网通信,专为大规模物联网设备设计的低功耗广域网络技术。
'NBIoT_SUPPORT',
# LORA_SUPPORT: 支持 LoRA 长距离低功耗无线通信技术,适用于广域物联网应用。
'LORA_SUPPORT',
# LORA_WAN_SUPPORT: 支持 LoRaWAN,一种基于 LoRA 技术的低功耗广域网络协议,用于物联网设备的长距离通信。
'LORA_WAN_SUPPORT',
# IR_SUPPORT: 支持红外线通信,常用于遥控器和短距离数据传输。
'IR_SUPPORT',
# BEEP_SUPPORT: 支持蜂鸣器信号,通常用于简单的音频提示或警报。
'BEEP_SUPPORT'
]
交互流程
输入请求
客户端发送一个 JSON 格式的请求,包含设备名称、主题和参数:
{
"name": "EC200A-4G-DTU",
"topic": "mn4g.ec200a.info.csq",
"args": ""
}
返回响应
服务器处理请求后,返回一个 JSON 格式的响应,包含状态码、消息和数据:
{
"code": 200,
"msg": "Success",
"data": {
"name": "EC200A-4G-DTU",
"topic": "mn4g.ec200a.info.csq",
"args": "",
"result": "{\"cops\":\"CMCC\",\"csq\":30,\"iccid\":\"11223344556677\"}"
}
}
响应中的 result
字段包含了具体的设备信息,如运营商、信号强度和 SIM 卡 ID。
命令行参数
启动的时候需要带上参数:
Linux
KEY=value
Windows
如果你想要在 Windows PowerShell 中启动一个名为 rhilex.exe
的程序,并传递一个名为 LORASUPPORT
的环境变量,其值为 atk01
,你可以使用以下命令:
Start-Process rhilex.exe -ArgumentList "LORASUPPORT=atk01"
这条命令会启动 rhilex.exe
,并传递一个名为 LORASUPPORT
的环境变量,其值为 atk01
。
如果你想要在 PowerShell 中设置这个环境变量,然后再启动程序,你可以这样做:
$env:LORASUPPORT = "atk01"
Start-Process rhilex.exe
在这个例子中,我们首先使用 $env:LORASUPPORT
变量前缀来设置环境变量 LORASUPPORT
,并将其值设置为 atk01
。然后,我们使用 Start-Process
命令来启动 rhilex.exe
。
请注意,环境变量在启动的程序中是全局可用的,这意味着所有通过 PowerShell 启动的程序都将继承这个环境变量。如果你想要设置这个环境变量,并且确保它只在启动的程序中可用,你可以使用 -Environment
参数来创建一个新的环境变量集:
$env:LORASUPPORT = "atk01"
Start-Process rhilex.exe -Environment "LORASUPPORT=atk01"
-Environment
参数来创建一个新的环境变量集,其中包含 LORASUPPORT
环境变量,其值为 atk01
。这个环境变量集将只在启动的 rhilex.exe
程序中可用。
其中 KEY 是模块的名称,value 是 ini 里面的配置,看下面案例,假设我们要启动一个 lora 模块。
配置
[transceiver.atk01]
# Address: Device is on COM3 serial port for communication
address = /dev/ttyUSB0
# io_timeout: Timeout for I/O ops (30 sec), prevents indefinite waiting
io_timeout = 30
# at_timeout: Timeout for AT cmds (200 ms), adjusts responsiveness
at_timeout = 200
# BaudRate: Data transfer speed set to standard 9600 baud
baudrate = 9600
# DataBits: Each character uses 8 bits for transmission
data_bits = 8
# Parity: parity ('N' 'O' 'D') check, if additional bits for error detection
parity = N
# Stopbits: Single stop bit (1) marks end of each character transmission
stop_bits = 1
# Transport Protocol: 1|2|3, goto homepage for detail
transport_protocol = 1
指令
$env:LORASUPPORT = "atk01"
Start-Process rhilex.exe -Environment "LORASUPPORT=atk01"
表示启用 [transceiver.atk01] 这个模块。
Linux 和 Windows 下命令行参数传递不同,请根据实际情况调整。