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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247716.html
標籤:其他
下一篇:STM32學習筆記(三)
