0% menganggap dokumen ini bermanfaat (0 suara)
20 tayangan11 halaman

Tutorial LoRa Point-to-Point Arduino

Dokumen ini menjelaskan langkah-langkah untuk melakukan percobaan Point-to-Point dan Multi-Hop menggunakan modul LoRa dengan Arduino. Terdapat instruksi untuk merakit rangkaian transmitter dan receiver, serta kode program yang diperlukan untuk masing-masing node. Penekanan juga diberikan pada pentingnya memasang antena sebelum menyalakan modul LoRa untuk mencegah kerusakan pada rangkaian RF.

Diunggah oleh

Ferdilan Ramadhani
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
20 tayangan11 halaman

Tutorial LoRa Point-to-Point Arduino

Dokumen ini menjelaskan langkah-langkah untuk melakukan percobaan Point-to-Point dan Multi-Hop menggunakan modul LoRa dengan Arduino. Terdapat instruksi untuk merakit rangkaian transmitter dan receiver, serta kode program yang diperlukan untuk masing-masing node. Penekanan juga diberikan pada pentingnya memasang antena sebelum menyalakan modul LoRa untuk mencegah kerusakan pada rangkaian RF.

Diunggah oleh

Ferdilan Ramadhani
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Percobaan Point-to-Point

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]();

[Link](CS_PIN, RST_PIN, DIO0_PIN);


if (![Link](433E6)) {
[Link]("Gagal memulai LoRa!");
while (true);
}

[Link]("LoRa P2P Transmitter Siap.");


}

void loop() {
float kelembapan = [Link]();

if (isnan(kelembapan)) {
[Link]("Gagal membaca sensor Kelembapan!");
return;
}

String pesan = "ID:A | Kelembapan:" + String(kelembapan, 1) + " %";

[Link]();
[Link](pesan);
[Link]();

[Link]("=================================");
[Link]("Mengirim: " + pesan);
[Link]("Waktu : ");
[Link](millis());
[Link]();

delay(2000);
}

2. Kode Receiver, simpan kode ini dengan nama Node_Receiver


#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26

#define SCREEN_WIDTH 128


#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

unsigned long waktuTerima = 0;

void setup() {
[Link](9600);
while (!Serial);

[Link](CS_PIN, RST_PIN, DIO0_PIN);


if (![Link](433E6)) {
[Link]("Gagal memulai LoRa!");
while (true);
}

if (![Link](SSD1306_SWITCHCAPVCC, 0x3C)) {
[Link](F("OLED gagal diinisialisasi"));
while (1);
}

[Link]();
[Link](1);
[Link](WHITE);
[Link](0,0);
[Link]("LoRa RX Siap...");
[Link]();

[Link]("LoRa P2P Receiver Siap.");


}

void loop() {
int packetSize = [Link]();
if (packetSize) {

String pesan = "";


while ([Link]()) {
pesan += (char)[Link]();
}

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]();
}
}

Kemudian upload kode program melalui tombol Upload:


Percobaan Multi-Hop
Pada percobaan ini rangkaian Transmitter dan Receiver sama seperti pada percobaan
sebelumnya. Namun akan menambahkan sebuah node yaitu Node Relay yang berfungsi
sebagai perantara transmisi data.

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);

String idNode = "A";

void setup() {
[Link](9600);
while (!Serial);

[Link]();

[Link](CS_PIN, RST_PIN, DIO0_PIN);

if (![Link](433E6)) {
[Link]("LoRa Gagal Mulai");
while (1);
}

[Link]("Transmitter (Node A) Siap");


}

void loop() {
float suhu = [Link]();
float kelembapan = [Link]();
if (isnan(kelembapan)) {
[Link]("Gagal membaca sensor Kelembapan!");
return;
}

String pesan = "ID:" + idNode + " Kelembapan: " + String(kelembapan,1) + "


%";
[Link]("Mengirim ke B: " + pesan);

[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

String idNode = "B";


String tagRelay = "Via Node:" + idNode;

void setup() {
[Link](9600);
[Link](CS_PIN, RST_PIN, DIO0_PIN);
if (![Link](433E6)) {
[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]();

[Link]("Diteruskan ke C: " + pesanRelay);


}
}
3. Kode Receiver, simpan kode ini dengan nama Node_C_Receiver
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define CS_PIN 5
#define RST_PIN 14
#define DIO0_PIN 26

#define SCREEN_WIDTH 128


#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
[Link](9600);
while (!Serial);

[Link](CS_PIN, RST_PIN, DIO0_PIN);


if (![Link](433E6)) {
[Link]("LoRa Gagal Mulai");
while (1);
}
[Link]("Node C (Receiver) siap.");

if (![Link](SSD1306_SWITCHCAPVCC, 0x3C)) {
[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]();
}

int rssi = [Link]();


float snr = [Link]();

unsigned long waktu = millis();

[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]();
}
}

Kemudian upload kode program melalui tombol Upload:

Anda mungkin juga menyukai