什么是LoRa
LoRa是美國Semtech(升特)公司2013年發布和推廣的一種基於擴頻技術的超遠距離、低功耗無線傳輸方案。這一方案改變了以往關於傳輸距離與功耗相矛盾的問題,為用戶提供一種簡單的能實現超遠距離、長電池壽命的無線技術。LoRa的頻率范圍從137MHz到1020MHz,LoRa 主要在全球免費頻段運行,如169MHz、433MHz、868MHz和915MHz。由於LoRa獨特的調制技術,接收靈敏度可達-148dBm,有168dB的鏈路預算。因此傳輸距離很遠,在城鎮可達3-5 Km , 郊區可達15 Km 以上。而其最大發射電流只有150mA左右,連續接收電流12mA左右,非常適合各種低功耗、遠距離傳輸的應用場景。
而其遠距離、低功耗、低成本的特性,也得到業界的廣泛認可。
我使用的是成都澤耀科技有限公司的AS32-TTL100模塊
LoRa模塊一對一
LoRa模塊一對一非常簡單,具體有以下幾個步驟:
1.USB串口連接LoRa模塊,給LoRa模塊上電
VCC---5V GND---GND
2.配置LoRa模塊(地址和信道)
1號模塊配置
2號模塊配置
3.拉低MD0和MD1讓模塊處於一般模式
MD0---GND
MD1---GND
4.一對一串口通訊
2號模塊發送
00 01 01 01 02 03
1號模塊接收數據
01 02 03 0D 0A[2020-09-13 06:08:47.902]
01 02 03 0D 0A[2020-09-13 06:08:52.122]
01 02 03 0D 0A[2020-09-13 06:08:54.019]
01 02 03 0D 0A[2020-09-13 06:08:55.690]
01 02 03 0D 0A[2020-09-13 06:08:56.314]
01 02 03 0D 0A[2020-09-13 06:08:56.834]
01 02 03 0D 0A[2020-09-13 06:08:57.187]
01 02 03 0D 0A[2020-09-13 06:08:57.426]
01 02 03 0D 0A[2020-09-13 06:08:57.612]
01 02 03 0D 0A[2020-09-13 06:08:57.810]
01 02 03 0D 0A[2020-09-13 06:08:57.946]
01 02 03 0D 0A[2020-09-13 06:08:58.098]
01 02 03 0D 0A[2020-09-13 06:08:58.266]
01 02 03 0D 0A[2020-09-13 06:08:58.418]
//去掉0D 0A換行符
01 02 03 01 02 03 01 02 03 01 02 03 01 02 03 01 02 03
LoRa模塊一對多 (第一種解決方案-單向通信)
LoRa模塊一對多的實現方式是主模塊通過輪詢修改通道獲取不同通道子模塊數據
優點:主模塊代碼邏輯簡單
缺點:主模塊通道個數決定從模塊個數,單向通信無法確定從模塊ID
1.如何設置主模塊信道
// 信道04
C0 00 02 1A 04 C0
// 信道03
C0 00 02 1A 03 C0
//第二位:模塊地址
//第四位:信道
2.具體流程
MD0和MD1拉高
MCU發送 C0 00 02 1A 00 C0
MD0和MD1拉低
MCU獲取00信道值
MD0和MD1拉高
MCU發送 C0 00 02 1A 01 C0
MD0和MD1拉低
MCU獲取01信道值
MD0和MD1拉高
MCU發送 C0 00 02 1A 02 C0
MD0和MD1拉低
MCU獲取02信道值
.........
3. 51單片機具體實現
// 我還沒開始寫呢
LoRa模塊一對多 (第二種解決方案-雙向通信)
LoRa模塊一對多的實現方式是主模塊發生指定從模塊指令,指定從模塊收到指令后返回給主模塊
優點:只要主模塊處理頻率足夠快,可以帶很多很多從模塊
缺點:業務邏輯比單向通訊復雜,子模塊需要接收主模塊命令並返回信息
LoRa模塊一對多 (第三種解決方案-廣播)
接收方通過切換地址和通道來獲取不同發送方的數據
B站:https://www.bilibili.com/read/cv7593287