基于HaaS100实现LoRa点对点通信

1、前言

LoRa是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术。相较于传统通信技术,LoRa具备低门槛、远距离、长续航的优势,其在数字农业、智慧社区等领域具有很高的实用价值。更多LoRa介绍请参阅:www.semtech.com/lora. 笔者基于HaaS100实现了LoRa的点对点通信,本文将详细介绍下如何快速上手这套LoRa通信方案。

 

2、方案简介

image.png

本方案选取SX1268作为LoRa通信IC, HaaS100以外挂SX1268模组的形式实现数据的收发,HaaS100与SX1268模组通过SPI进行通信。软件主要参考Semtech官方驱动,将其移植到AliOS Things, 并做了HaaS100平台相应的适配。

 

3、环境搭建

实物展示

  • 准备两块HaaS100开发板。一块作通信发送方,另一块作通信接收方。
  • 准备两块SX1268的模组,分别连接到两块HaaS100上。连接线序如下图所示:

基于HaaS100实现LoRa点对点通信_第1张图片

 

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;

基于HaaS100实现LoRa点对点通信_第2张图片

  • 如果当前开发板是数据的接收方,则将宏开关TRANSMIT_MODE定义成TRANS_MODE_RX;

基于HaaS100实现LoRa点对点通信_第3张图片

 

  • 编译软件: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/

你可能感兴趣的:(HaaS解决方案,物联网,HaaS,lora,AliOS,Things,实时操作系统)