作者:forest-rain
1 概述
物联网终极目标是实现万物互联,帮助人类社会实现更高阶的智能化。IoT网关负责海量物联网端侧设备与物联网云端应用的沟通,发挥着承上启下的重要作用,是实现万物互联的关键一环。IoT网关已广泛应用于工业、农业、畜牧业、智能家居、智慧城市等等垂直行业。
LiteCoG(Lite Connect Gateway)是一款小型的、支持多种连接方式的IoT网关,当前的主体功能是一个单\双通道的LoRaWAN网关,北向采用以太网\WiFi\4G Cat1连接,南向通信采用LoRa通信,同时也可支持BLE\RS485等连接方式,具有远距离通信、低成本、方便部署、易扩展等特性,便于市场规模推广。旨在面向智能家居、智慧社区、智慧停车等局域网内、设备容量较小的物联网通信场景,同时由于具备良好的成本优势,也可以作为LoRaWAN网络的补盲设备。
当前实现万物互联所面临的问题与挑战:
如智能家居,目前智能家居还不是社会刚需,因此大规模推广对成本极其敏感,采用高性能的LoRa网关芯片(SX130x)方案,可以满足设计需求,但是成本承压,同时性能过剩。
如智慧社区,智慧社区是放大版的智能家居,也是一个缩小版的社会。随着我国人口日益老龄化,智慧养老社区的需求日益突显,如何解决空巢老人、孤寡老人的监护是我国当前社会面临的一个新难题。构建智慧社区所需庞大的启动资金是一个必须逾越的障碍。
如智慧停车,停车难一直是城市公共交通的长期挑战。海量的车,方便了出行,却受限于终点,通过物联网技术把分散的停车资源利用起来,是缓解停车难的可行方式。
LiteCoG网关基于RT-Thread操作系统,采用LoRa SX126X\SX127X来提供标准LoRaWAN接入能力,可以较大压缩BOM成本;借助LoRa调制的远距离通信能力、低功耗特性,在全屋\社区\小范围停车等应用领域,基本可以非常灵活的部署电池供电的智能设备,非常方便。同时借助RT-Thread强大的软硬件生态资源,可以极大加快产品开发效率,缩短产品上市时间。
-
- LoRaWAN单通道网关(lgwsc)
-
-
- 对接标准LoRaWAN服务器
-
-
-
-
-
- 利尔达 Unicore
- 腾讯云 loragw.qcloud.com
-
-
-
-
-
- Class A
- 支持lgwsc shell命令
-
-
-
- 支持网关参数配置
-
-
-
- 支持掉电存储功能
-
-
-
- 北向连接
-
-
-
-
- Ethernet
- WiFi
- 4G Cat1
-
-
2 开发环境
- 软件平台:
-
- RT-Thread版本:4.0.3
- 开发工具及版本:RT Thread Studio 2、MDK5
- PessimonUIBuilder 3.0设计器
- 硬件平台
-
- ART-Pi主板
-
-
- STM32H750
- AP6212
-
-
- ART-Pi 工业扩展板
-
-
- 以太网、485
-
-
- ART-Pi 多媒体扩展板
-
-
- 320*480 TFT屏幕
-
-
- LoRa多功能能扩展板(LRS007)
-
-
- SX1268 LoRa模块
- 1.3英寸 OLED液晶屏
-
3 RT-Thread使用情况概述
- RT-Thread内核:
- 组件(Compentont):
-
- FinSH控制台
-
- 设备驱动(Device Drivers)
-
-
- I/O 设备模型
-
-
-
- WIFI框架
-
-
-
- SPI框架
-
-
-
-
- 使用 SPI 框架来驱动SPI接口的设备(比如本文中的LoRa SPI模块)
-
-
-
- 网络(Network)
-
-
- 常用工具(Utilities)
-
-
-
-
- ulog日志
-
-
- 软件包
-
- AT设备软件包:at_device-latest;
-
- adbd-v1.1.1
-
- btstack-v0.0.1
-
- CmBacktrace-v1.4.0
-
- EasyFlash-v4.1.0
-
- fal-v0.5.0
-
- littlefs-v2.0.5
-
- JSON软件包 cJSON-latest
-
- 网络工具包 netutils-latest
- webclient软件包 webclient-latest
-
- webnet-v2.0.2
-
-
- web服务器
-
-
- loragw-packet-forward-latest
-
-
- 单通道lorawan网关软件包
-
-
- lora-radio-driver-latest
-
-
- lora radio驱动软件包
-
-
- multi-rtimer
-
-
- 低功耗硬实时定时模块
-
-
- ft6236-v1.0.0
-
-
- 触摸芯片ft6236驱动
-
-
- Persimmon柿饼库
- 其他
-
- ART-Pi SDK开发包
-
-
- sdk-bsp-stm32h750-realthread-artpi
-
4 系统设计
4.1 典型IoT系统应用框架
多功能单通道LoRaWAN网关(LiteCoG)用于连接物联网终端设备与云端服务器,起到了承上启下的作用。
4.2 硬件框架
多功能单通道LoRaWAN网关(LiteCoG)硬件主要由ART-Pi主板+ART-Pi工业扩展板+ART-Pi多媒体扩展板+4G Cat1模块扩展板(L610)+LoRa多功能扩展板(LRS007)组成。
通过不同的搭配,可满足不同应用场景。比如
-
- LoRaWAN室内网关(WiFi版本)
-
-
- ART-Pi主板+LoRa多功能扩展板(LRS007)应用于智能家居、智慧农业等室内场景
-
-
- LoRaWAN室内网关(WiF版本) 带中控屏
-
-
- ART-Pi主板+ART-Pi多媒体扩展板+LoRa多功能扩展板(LRS007)应用于智能家居、智慧社区等场景
-
-
- LoRaWAN室外网关(4G版本)
-
-
- ART-Pi主板+4G Cat1模块扩展板(L610)+LoRa多功能扩展板(LRS007)应用于智慧停车等室外场景
-
-
- LoRaWAN室内\外网关(以太网版)
-
-
- ART-Pi主板+ART-Pi工业扩展板+LoRa多功能扩展板(LRS007)应用于智慧工厂等场景
-
多功能单通道LoRaWAN网关(LiteCoG)北向支持WiFi、以太网、4G Cat1方式,根据实际应用场景选择。北向采用LoRa调试方式,实现LoRaWAN单通道接入功能。
对于智能家居等应用,若有中控屏需求,则可进一步使用触摸屏或者OLED来进行人机交互。
4.3 软件框架说明
多功能单通道LoRaWAN网关(LiteCoG)1.0主体功能之一是实现单通道的LoRaWAN网关,北向通信协议是基于UDP通信,南向通信协议是LoRaWAN,同时可以进一步扩展LiteCoG来实现边缘计算功能,即直接对LoRaWAN终端设备控制的能力,以便满足一些网没有外网、更高的实时等情况。其他功能还有网关参数配置,掉电保存、获取天气信息,OLED显示,柿饼UI显示等等
5 软件模块说明
- loragw-pkt-fwd单通道lorawan网关实现lorawan数据包转发功能
-
- static void thread_up(void)
-
-
- 接收到lorawan终端设备的lora上行消息
- 周期性获取状态信息
- 组帧成 PUSH_DATA(json格式),然后发送给lorawan服务器
-
-
- static void thread_down(void);
-
-
- 维持与lorawan服务器之间链路
- 接收并解析lorawan服务器的下行数据包(json),并加入JiT队列
-
-
- static void thread_jit(void);
-
-
- 周期性从 JiT 队列取报文并通过lora发送到lorawan终端设备
-
-
- static int lgwsc(int argc, char *argv[])
-
-
- shell命令,用于设置网关参数(eui、freq、datarate等)
- 参数掉电存储
-
- lora-radio软件包
-
- 实现lora芯片sx126x\sx127x射频驱动
-
-
- lora-radio-sx126x.c
-
-
-
-
- 对外提供了上层访问接口实现
-
-
-
-
- lora-spi-sx126x.c
-
-
-
-
- sx126x芯片的spi读写接口实现
-
-
-
-
-
-
- rt_device
-
-
-
-
-
- sx126x.c
-
-
-
-
- lora芯片sx126x底层驱动
-
-
- multi-rtimer软件包
-
- 实现硬实时定时模块,用于给lora-radio超时服务、给loragw-pkt-fwd提供较精确的下发定时器
- lorawan-ed-stack软件包
- 用于解析lorawan协议帧,实现LiteCoG本地对lorawan终端设备的直接控制
6 演示效果
视频:
7 代码地址在附件。
8 比赛感悟
参加此次比赛使我对RT-Thread操作系统有了一个相对全面的应用与认识。总体感受,RT-Thread是一个非常强大的RTOS,历经10多年的打磨与沉淀,很多方面已经比较成熟与完善。虽然行业内还有很多其他优秀的RTOS,但是RT-Thread更贴近于开发者,不断迭代创新,同时代码风格与文档、丰富组件与软件包也赢得了很多粉丝。
搭积木式开发,大大提高了开发效率,这得益于RT-Thread长期积累、十年磨一剑地持续迭代与智慧输出,提供了非常丰富的开源软件资源,就如同linux一样,很多轮子已经造好,rt-thread使得嵌入式的应用开发变得更简单与高效。RT-Thread软件包的形式,继承与发扬包管理器的理念,便于大家使用与贡献自己的代码与知识分享,也使得RT-Thread开源社区更为活跃。
星星之火可以燎原,充实自己,向大佬们学习,为开源社区添砖加瓦,贡献自己的一份绵薄之力。期望有朝一日,物联网行业可以借助rt-thread等RTOS生态,各行各业的小伙伴们一同携手并进,共同提升产品开发效率,进而提升整体行业效率,降低社会成本。
LiteCoG 1.0目前还只实现产品原型功能,还有很多需要进一步优化完善的地方,未来也期待跟小伙伴们一起持续优化与迭代为成熟稳定的产品。
最后感谢主办方提供的平台与参与活动的工作人员们的辛勤付出。