基於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、環境搭建

image.png

實物展示

  • 準備兩塊HaaS100開發板。一塊作通信發送方,另一塊作通信接收方。
  • 準備兩塊SX1268的模組,分別連接到兩塊HaaS100上。連接線序如下圖所示:

接線圖.jpg

 

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、快速上手

  • 如果當前開發板是數據的發送方,則將宏開關TRANSMIT_MODE定義成TRANS_MODE_TX;

image.png

  • 如果當前開發板是數據的接收方,則將宏開關TRANSMIT_MODE定義成TRANS_MODE_RX;

image.png

 

  • 編譯軟件:aos make lora_demo@haas100 -c config && aos make;
  • 按照上述方式編譯發送方和接收方的image, 分別燒錄進兩塊HaaS100。連上串口就可以看到兩臺HaaS100在進行LoRa通信了:

image.png

6、附錄

如需更多技術支持,可加入釘釘開發者羣

更多技術與解決方案介紹,請訪問阿里雲AIoT首頁https://iot.aliyun.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章