Tutorial LoRa Point-to-Point Arduino
Tutorial LoRa Point-to-Point Arduino
Rangkai komponen di project board seperti pada gambar. Kemudian lakukan pengkabelan ke
masing-masing bagian dengan benar dan hati-hati untuk memastikan bahwa semua koneksi
komponen benar.
1. Rangkaian Transmitter
2. Rangkaian Receiver
Note: Pasang antena sebelum menyalakan modul LoRa untuk mencegah refleksi daya yang
dapat merusak rangkaian RF!
Buka aplikasi Arduino IDE, kemudian buat sketch baru dengan shortcut Ctrl+N atau melalui
menu File > New Sketch:
Lakukan pengaturan board target pada system Arduino IDE, dalam hal ini kita menggunakan
board ESP32 Dev Modul dengan cara berikut ini: Menu Tools > Board > esp32 > ESP32
Dev Modul:
Tambahkan library yang akan digunakan melalui menu: Sketch > Include Library >
Nama_Library. Dalam studi kasus ini library yang digunakan adalah SPI, LoRa, DHT,
Wire, Adafruit_GFX, dan Adafruit_SSD1306.
Jika belum memiliki library diatas maka install melalui Library Manager dengan mencari
nama library yang dibutuhkan.
Tuliskan kode program berikut pada sketch baru tersebut pada Arduino IDE:
1. Kode Transmitter, simpan kode ini dengan nama Node_Transmitter
#include <SPI.h>
#include <LoRa.h>
#include <DHT.h>
#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
[Link](9600);
while (!Serial);
[Link]();
void loop() {
float kelembapan = [Link]();
if (isnan(kelembapan)) {
[Link]("Gagal membaca sensor Kelembapan!");
return;
}
[Link]();
[Link](pesan);
[Link]();
[Link]("=================================");
[Link]("Mengirim: " + pesan);
[Link]("Waktu : ");
[Link](millis());
[Link]();
delay(2000);
}
#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26
void setup() {
[Link](9600);
while (!Serial);
if () {
[Link](F("OLED gagal diinisialisasi"));
while (1);
}
[Link]();
[Link](1);
[Link](WHITE);
[Link](0,0);
[Link]("LoRa RX Siap...");
[Link]();
void loop() {
int packetSize = [Link]();
if (packetSize) {
waktuTerima = millis();
int rssi = [Link]();
float snr = [Link]();
[Link]("=================================");
[Link]("Pesan : " + pesan);
[Link]("RSSI : "); [Link](rssi); [Link](" dBm");
[Link]("SNR : "); [Link](snr, 2); [Link](" dB");
[Link]("Waktu : "); [Link](waktuTerima); [Link]("
ms");
[Link]();
[Link]();
[Link](0, 0);
[Link]("Pesan: ");
[Link](pesan);
[Link]("RSSI: ");
[Link](rssi);
[Link](" dBm");
[Link]("SNR : ");
[Link](snr, 1);
[Link](" dB");
[Link]();
}
}
1. Rangkaian Relay
Tuliskan kode program berikut pada sketch baru tersebut pada Arduino IDE:
1. Kode Transmitter, simpan kode ini dengan nama Node_A_Transmitter
#include <SPI.h>
#include <LoRa.h>
#include <DHT.h>
#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
[Link](9600);
while (!Serial);
[Link]();
if () {
[Link]("LoRa Gagal Mulai");
while (1);
}
void loop() {
float suhu = [Link]();
float kelembapan = [Link]();
if (isnan(kelembapan)) {
[Link]("Gagal membaca sensor Kelembapan!");
return;
}
[Link]();
[Link](pesan);
[Link]();
delay(2000);
}
2. Kode Relay, simpan kode ini dengan nama Node_B_Relay
#include <SPI.h>
#include <LoRa.h>
#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26
void setup() {
[Link](9600);
[Link](CS_PIN, RST_PIN, DIO0_PIN);
if () {
[Link]("LoRa Gagal Mulai");
while (1);
}
[Link]("Node B (Relay) siap.");
}
void loop() {
int packetSize = [Link]();
if (packetSize) {
String pesanMasuk = "";
while ([Link]()) {
pesanMasuk += (char)[Link]();
}
[Link]("Pesan diterima dari A: " + pesanMasuk);
String pesanRelay;
if ([Link]("Relay:") == -1) {
pesanRelay = pesanMasuk + "|" + tagRelay;
} else {
pesanRelay = pesanMasuk + "|" + idNode;
}
delay(60);
[Link]();
[Link](pesanRelay);
[Link]();
#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26
void setup() {
[Link](9600);
while (!Serial);
if () {
[Link](F("OLED gagal diinisialisasi"));
while (1);
}
[Link]();
[Link](1);
[Link](WHITE);
[Link](0,0);
[Link]("Node C - Ready");
[Link]();
}
void loop() {
int packetSize = [Link]();
if (packetSize) {
String pesan = "";
while ([Link]()) {
pesan += (char)[Link]();
}
[Link]("=================================");
[Link]("Waktu: " + String(waktu) + " ms");
[Link]("Pesan diterima: " + pesan);
[Link]("RSSI: " + String(rssi) + " dBm");
[Link]("SNR : " + String(snr, 2) + " dB");
[Link]();
[Link](0, 0);
[Link]("Pesan:");
[Link](0, 10);
[Link](pesan);
[Link](0, 30);
[Link]("RSSI: ");
[Link](rssi);
[Link](" dBm");
[Link](0, 40);
[Link]("SNR : ");
[Link](snr, 1);
[Link](" dB");
[Link]();
}
}