Menerima Data Temperatur dan Kelembapan melalui LoRa (Server Side)

Jabal Abdul Salam
3 min readJul 19, 2021

Proses penerimaan data temperatur dan kelembapan melalui LoRa sama halnya dengan proses pengiriman yang sudah kita bahas sebelumnya, namun yang membedakan hanya saja pada penggunaan perangkatnya. Disini kita tetap menggunakan LoRa Shield v1.4. namun kita tidak menggunakan DHT22 lagi, dikarenakan disini kita hanya menerima data yang dikirimkan oleh client side. Di bawah ini merupakan tampilan dari perangkat LoRa Shield v1.4.

LoRa Shield v1.4.

Hal pertama yang kita lakukan yaitu membuat rangkaiannya, berikut rangkaian untuk penerimaan data temperatur dan kelembapan melalui LoRa.

Rangkain Penerimaan Data Temperatur dan Kelembapan melalui LoRa

Rangkaian Penerimaan Data Temperatur dan Kelembapan melalui LoRa.

Setelah membuat rangkaian, langkah selanjutnya yaitu membuat kode yang akan dijalankan di arduino IDE.

Di bawah ini adalah tampilan dari kode yang kita gunakan untuk menjalankan proses penerimaan data temperatur dan kelembapan.

Kode Penerimaan Data Temperatur dan Kelembapan melalui LoRa.

#include <SPI.h>
#include <LoRa.h>
//Metentukan pin yang digunakan oleh modul transceiver
#define ss 5
#define rst 14
#define dio0 2
void terimaData() {
int packetSize = LoRa.parsePacket();
if (packetSize)
{
// menerima paket
Serial.println("");
Serial.println("...................................");
Serial.println("Menerima data: ");
//membaca paket
while (LoRa.available()) {
char incoming = (char)LoRa.read();
if (incoming == 'c')
{
Serial.print("Error");
}
else
{
Serial.print(incoming);
}
}
}
}
void setup() {
//initialize Serial Monitor
Serial.begin(115200);
while (!Serial);
Serial.println("LoRa Sender");
//setup LoRa transceiver module
LoRa.setPins(ss, rst, dio0);
//433E6 untuk Asia
//866E6 untuk Eropa
//915E6 untuk America Utara
while (!LoRa.begin(433E6)) {
Serial.println(".");
delay(500);
}
// Ubah sync word (0xF3) agar sesuai dengan penerima
// Sync word memastikan Anda tidak mendapatkan pesan LoRa dari transceiver LoRa lainnya
// berkisar dari 0-0xFF
LoRa.setSyncWord(0xF3);
Serial.println("Inisialisasi LoRa Siap");
}
void loop() {
terimaData();
}

Hampir sama seperti percobaan pengiriman data temperatur dan kelembapan, disini kita terlebih dahulu memanggil library yang digunakan. Di bawah ini adalah kumpulan library yang kita gunakan pada program pembacaan temperatur dan kelembapan.

#include <SPI.h>
#include <LoRa.h>

Library yang pertama yaitu SPI.h yang mana library ini berfungsi menangani komunikasi serial sinkron SPI (Serial Peripheral Interface) di Arduino. Serial sinkron merupakan protokol komunikasi data secara serial akan tetapi membutuhkan jalur clock untuk sinkronisasi antara transmitter dan receiver-nya. Secara khusus istilah ‘serial sinkron SPI’ ditujukan untuk tipe protokol komunikasi serial sinkron yang memiliki 3 jalur kabel yakni MISO (Master In Slave Out), MOSI (Master Out Slave In) dan SCLK (Serial Clock) yang notabenenya merupakan jalur kabel dari LoRa Shield.

Library selanjutnya yaitu LoRa.h yang berfungsi untuk mengirim dan menerima data dari LoRa.

Setelah memanggil library yang dibutuhkan, selanjutnya yaitu menentukan pin-pin mana yang kita gunakan pada perangkat. Berikut perintahnya.

//Metentukan pin yang digunakan oleh modul transceiver
#define ss 5
#define rst 14
#define dio0 2

Setelah penentuan pin dibuat, selanjutnya yaitu membuat sebuah fungsi untuk menerima data yang dikirimkan. Berikut fungsinya.

void terimaData() {
int packetSize = LoRa.parsePacket();
if (packetSize)
{
// menerima paket
Serial.println("");
Serial.println("...................................");
Serial.println("Menerima data: ");
//membaca paket
while (LoRa.available()) {
char incoming = (char)LoRa.read();
if (incoming == 'c')
{
Serial.print("Error");
}
else
{
Serial.print(incoming);
}
}
}
}

Di bagian pertama, kita membuat objek packetSize yang menentukan ukuran dari paket yang akan diterima. Di dalam objek tersebut paket yang dikirimkan di uraikan dengan perintah parsePacket().

Kemudian langkah selanjutnya yaitu membuat pengkondisian, apabila paketnya bernilai true, maka akan di lanjutkan perintah di bawahnya yaitu menampilkan teks. Kemudian membuat perulangan while apabila LoRa tersambung atau available maka variabel incoming akan menyimpan data-data yang dikirimkan dengan menggunakan perintah (char) LoRa.read();.

Setelah data ditampung, maka selanjutnya dibuatkan pengkondisian lagi, apabila datanya sama dengan c, maka akan ditampilkan pesan error. Namun apabila tidak, maka akan ditampilkan data yang dikirimkan.

Setelah fungsi terimaData() dibuat, langkah terakhir yaitu memanggil fungsi tersebut di dalam fungsi loop().

void loop() {
terimaData();
}

--

--