1、前言
LoRa是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术。相较于传统通信技术,LoRa具备低门槛、远距离、长续航的优势,其在数字农业、智慧社区等领域具有很高的实用价值。更多LoRa介绍请参阅:www.semtech.com/lora. 笔者基于HaaS100实现了LoRa的点对点通信,本文将详细介绍下如何快速上手这套LoRa通信方案。
2、方案简介
本方案选取SX1268作为LoRa通信IC, HaaS100以外挂SX1268模组的形式实现数据的收发,HaaS100与SX1268模组通过SPI进行通信。软件主要参考Semtech官方驱动,将其移植到AliOS Things, 并做了HaaS100平台相应的适配。
3、环境搭建
实物展示
- 准备两块HaaS100开发板。一块作通信发送方,另一块作通信接收方。
- 准备两块SX1268的模组,分别连接到两块HaaS100上。连接线序如下图所示:
4、软件介绍
- 本方案相关代码位于AliOS Things工程HaaS分支的application/example/lora_demo路径下:
https://github.com/alibaba/AliOS-Things/tree/dev_3.1.0_haas/application/example/lora_demo
- 代码概要如下:
application/example/lora_demo/
├── Config.in
├── aos.mk
├── demo.c
├── radio.c
├── radio.h
├── sx126x-board.h
├── sx126x-haas.c
├── sx126x.c
└── sx126x.h
-
- 其中demo.c是程序入口,负责lora初始化和数据收发接口的调用
- radio.c/sx126x.c是SX1268芯片的radio层驱动,负责将业务功能转换成对芯片寄存器的访问
- sx126x-haas.c基于AliOS Things实现了radio层所需的硬件接口,如GPIO, SPI以及定时器等
5、快速上手
- 下载最新HaaS代码: git clone https://github.com/alibaba/AliOS-Things.git -b dev_3.1.0_haas;
- 按通信角色修改application/example/lora_demo/demo.c 第18行;
- 如果当前开发板是数据的发送方,则将宏开关TRANSMIT_MODE定义成TRANS_MODE_TX;
-
如果当前开发板是数据的接收方,则将宏开关TRANSMIT_MODE定义成TRANS_MODE_RX;
- 编译软件:aos make lora_demo@haas100 -c config && aos make;
- 按照上述方式编译发送方和接收方的image, 分别烧录进两块HaaS100。连上串口就可以看到两台HaaS100在进行LoRa通信了:
6、附录
- HaaS100开发板:购买链接
- HaaS100开发板:快速上手
- SX1268 LoRa模块:购买链接
- SX1268芯片:数据手册
- Semtech:官方驱动
如需更多技术支持,可加入钉钉开发者群
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/