2022年2月15日 星期二

[ARDUINO] SX1278 LoRa RA-01模組實驗

1. 硬體

SX1278 LoRa RA-01模組
模組與ARDUINO接線
DIO0:中斷輸出,可選用,只使用在接收回調(receive callback)模式
MOSI:SPI MOSI
NSS:SPI SS
MISO:SPI MISO
SCK:SPI SCK
RST:Reset
可使用LoRa.setPins(ss, reset, dio0)更改接腳位置

模組與ARDUINO接線
模組腳DIO0 - ARDUINO腳6
模組腳MOSI - ARDUINO腳11
模組腳SS - ARDUINO腳8
模組腳MISO -ARDUINO腳12
模組腳SCK - ARDUINO腳13
模組腳RST - ARDUINO腳7

2. 軟體

安裝LoRa程式庫

發送端程式
#include <SPI.h> #include <LoRa.h> int counter = 0; void setup() { Serial.begin(9600); while (!Serial); Serial.println("LoRa Sender"); LoRa.setPins(8, 7, 6); if (!LoRa.begin(433E6)) { Serial.println("Starting LoRa failed!"); while (1); } } void loop() { Serial.print("Sending packet: "); Serial.println(counter); // send packet LoRa.beginPacket(); LoRa.print("hello "); LoRa.print(counter); LoRa.endPacket(); counter++; delay(5000); }

接收端程式
#include <SPI.h> #include <LoRa.h> void setup() { Serial.begin(9600); while (!Serial); Serial.println("LoRa Receiver"); LoRa.setPins(8, 7, 6); if (!LoRa.begin(433E6)) { Serial.println("Starting LoRa failed!"); while (1); } } void loop() { // try to parse packet int packetSize = LoRa.parsePacket(); if (packetSize) { // received a packet Serial.print("Received packet '"); // read packet while (LoRa.available()) { Serial.print((char)LoRa.read()); } // print RSSI of packet Serial.print("' with RSSI "); Serial.println(LoRa.packetRssi()); } }

結果


接收端每隔5秒收到Hello


沒有留言:

張貼留言

使Arduino Nano Every在ARDUINO IDE支援ATmega4809 48pin包裝

軟體環境 ARDUINO IDE 2.3.2 板函式庫MegaCoreX 1.1.2, https://github.com/MCUdude/MegaCoreX ARDUINO IDE 選擇48pin,編譯時會產生以下錯誤 修正錯誤 修改C:\Users\<your_acc...