Memulai komunikasi sederhana dengan LoRa Ra-02 SX1278 dan Arduino
LoRa (Long Range) merupakan teknologi frekuensi radio nirkabel yang dibuat oleh perusahaan Semtech. Teknologi LoRa ini biasa digunakan untuk mengirimkan sebuah informasi dua arah dalam jarak jauh dengan jangkauan hingga 15 KM menggunakan daya yang cukup kecil. Pada artikel kali ini kita akan belajar bagaimana berkomunikasi dengan module LoRa.
Spesifikasi:
- Communication distance: 15 KM
- Sensitivity: down to -148dBm
- Programmable bit rates: up to 300kbps
- RSSI dynamic range: 127dB
- Wireless frequency: 433-525 MHz
- Working voltage: 1.8-3.7v
- Working temperature: -40-+80 ℃
Wiring Diagram
Wiring diagram koneksi antara LoRa dengan Arduino bisa dilihat pada gambar berikut.
Rangkaian diatas dibuat dua kali dengan konfigurasi pin yang sama masing-masing untuk Transmitter dan Receiver.
Tabel 1. Wiring LoRa Ra-02 SX1278 Transmitter dan Receiver
Arduino Uno | LoRa Ra-02 SX1278 |
3.3V | 3.3V |
GND | GND |
NSS | D10 |
DIO0 | D2 |
SCK | D13 |
MISO | D12 |
MOSI | D11 |
RST | D9 |
Diagram alir pada Gambar 2 merupakan proses pengiriman pesan pada Arduino Uno menggunakan LoRa Ra-02 SX1278 sebagai transmitter. Pertama – tama sistem akan memastikan apakah transmitter mengirimkan pesan pada frekuensi 433 MHz, jika tidak maka sistem akan menampilkan pesan “Starting LoRa failed!” pada serial monitor. Jika sistem bekerja pada frekuensi 433 MHz maka sistem akan mulai mengirimkan data dalam bentuk paket (data yang dimaksud adalah data per huruf).
Diagram alir pada Gambar 3 merupakan proses penerimaan pesan pada Arduino Uno menggunakan LoRa Ra-02 SX1278 sebagai receiver. Seperti pada transmitter¸ receiver perlu memastikan apakah sistem bekerja pada frekuensi 433 MHz. Frekuensi tersebut bisa diubah dari rentang 433 MHz hingga 525 MHz asalkan frekuensi transmitter dengan receiver sesuai. Jika frekuensi pada receiver berada pada 433 MHz maka sistem akan memulai menerima data dalam bentuk paket (data yang dimaksud adalah data per huruf).
Kode program Transmitter (Pemancar)
Kode program berikut berfungsi untuk mengirimkan pesan yang akan dikirimkan melalui LoRa Ra-02 SX1278 sebagai transmitter atau sender pada frekuensi 433 MHz.
#include <SPI.h> #include <LoRa.h> int counter = 0; void setup() { Serial.begin(9600); while (!Serial); Serial.println("LoRa Sender"); 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(1000); }
Kode program Receiver (Penerima)
Kode program berikut berfungsi untuk menerima pesan yang telah dikirimkan melalui LoRa Ra-02 SX1278 pada frekuensi 433 MHz. Pesan yang telah dikirimkan, akan diterima oleh LoRa Ra-02 SX1278 receiver dan ditampilkan pada serial monitor Arduino.
#include <LoRa.h> void setup() { Serial.begin(9600); while (!Serial); Serial.println("LoRa Receiver"); if (!LoRa.begin(433E6)) { Serial.println("Starting LoRa failed!"); while (1); } } void loop() { int packetSize = LoRa.parsePacket(); if (packetSize) { // received a packet Serial.print("Received packet :"); // read packet while (LoRa.available()) { Serial.print((char)LoRa.read()); } Serial.println(""); } }
Percobaan Komunikasi