SMS GRATIS BERBASIS LORA

 

SMS GRATIS BERBASIS LORA



Andian Sidiq Permana1 Zakiyya Fathan Mubina2

Program Studi D-3 Teknik Elektronika, Politeknik Negeri Semarang.
Jl. Prof. H. Sudarto, SH, Tembalang, Semarang, Indonesia

1 sidiqian46@gmail.com

2zakiyamubina12@gmail.com

Abstrak – Komunikasi adalah cara manusia bertukar pikiran dan berbagi informasi, untuk itu komunikasi adalah hal penting dalam kehidupan manusia. Sudah banyak alat komunikasi yang menggunakan sinyal gsm dan sinyal internet, tapi alat tidak bisa digunakan ketika alat tersebut digunakan ditempat yang sulit mendapat sinyal , Oleh karena itu kami membuat alat komunikasi yang bisa digunakan dimanapun. Alat ini menggunakan aplikasi Bluetooth serial untuk memasukan pesan, diproses didalam mikrokontroller Arduino uno dan dikirim menggunakan Lora. Lalu alat penerima bekerja secara terbalik. Hasil perancangan alat ini adalah sebuah alat yang dapat membantu komunikasi antara 2 orang yang dapat dimanfaatkan dikawasan pedalaman yang sulit mendapat sinyal.

Kata kunci: Komunikasi,Arduino uno,Lora

Abstract – Communication is a way for humans to exchange ideas and share information, for that communication is important in human life. There are already many communication tools that use GSM signals and internet signals, but the tools cannot be used when these devices are used in places where it is difficult to get a signal, that's why we make communication tools that can be used anywhere. This tool uses a serial Bluetooth application to enter messages, is processed in the Arduino Uno microcontroller and sent using Lora. Then the receiver works in reverse. The result of the design of this tool is a tool that can help communication between 2 people which can be used in remote areas where it is difficult to get a signal.

Keywords: Communication, Arduino uno, Lora

I.           PENDAHULUAN

1.1              LATAR BELAKANG

Komunikasi adalah cara manusia bertukar pikiran dan informasi, akan tetapi komunikasi tidak dapat dilakukan secara jarak jauh atau akan terganggu apabila ada suara yang lebih keras. Oleh karena itu dibuatlah alat alat untuk memudahkan untuk berkomunikasi. Sebuah alat yang bisa membuat 2 orang dapat berkomunikasi dari jarak jauh dan tidak terganggu jika ada suara keras yaitu telepon. Seiring berjalannya waktu telepon semakin berkembang, semakin kecil, semakin

mudah dibawa, semakin jauh dapat bekerja. Saat ini telepon genggam sudah canggih dengan ukurannya yang dapat dimasukan saku dan praktis, tidak sulit digunakan. Akan tetapi sering kali telepon genggam tidak bisa digunakan ditempat seperti hutan,dataran tinggi seperti gunung atau perkebunan dan daerah pedalaman. Oleh karena itu kami membuat alat komunikasi sederhana berbasis lora yang dapat digunakan dimanapun termasuk tempat yang sulit mendapat sinyal internet dan GSM.

1.2              RUMUSAN MASALAH

Dari latar belakang tersebut diperoleh rumusan masalah sebagai berikut :

1.      Bagaimana cara membuat alat komunikasi berbasis lora?

2.      Bagaimana cara kerja alat komunikasi berbasis lora?

1.3              TUJUAN

Tujuan dari pembuatan alat adalah sebagai berikut :

1.      Membuat alat yang dapat digunakan untuk berkomunikasi jarak jauh

2.      Mencari tahu seberapa jauh alat dapat bekerja

1.4              BATASAN MASALAH

1.      Alat ini hanya bisa digunakan 2 pengguna

2.      Alat ini memiliki batas jarak kerja

II.               TINJAUAN PUSTAKA

Penjelasan dan uraian teori penunjang yang digunakan dalam membuat alat ini diperlukan untuk mempermudah pemahaman tentang cara kerja rangkaian maupun dasar-dasar perencanaan pembuatan alat

A.Bluetooth HC-05

HC-05 Adalah sebuah modul Bluetooth SPP (Serial Port Protocol) yang mudah digunakan untuk komunikasi serial wireless (nirkabel) yang mengkonversi port serial ke Bluetooth. HC-05 menggunakan modulasi bluetooth V2.0 + EDR (Enchanced Data Rate) 3 Mbps dengan memanfaatkan gelombang radio berfrekuensi 2,4 GHz.



B. Aplikasi Bluetooth Serial

Sebuah aplikasi android  yang digunakan untuk memasukan dan menampilkan pesan yang dapat dibuat pada web MIT Inventor atau download di playstore.



C.Arduino Uno

Arduino Uno adalah salah satu development kit mikrokontroler yang berbasis pada ATmega28. Arduino Uno board memilki 14 pin digital input/output, 6 analog input, sebuah resonator keramik 16MHz, koneksi USB, colokan power input, ICSP header, dan sebuah tombol reset.



D. Lora SX1278

Komponen Lora yang digunakan adalah Lora sx1278. LoRa adalah protokol lapisan fisik yang menggunakan modulasi spektrum spread dan mendukung komunikasi jarak jauh dengan biaya bandwidth yang sempit. Ini menggunakan bentuk gelombang pita sempit dengan frekuensi pusat untuk mengirim data, yang membuatnya kuat untuk interferensi.



III.           PERANCANGAN ALAT

 

3.1              KOMPONEN YANG DIGUNAKAN

Masukan  : Bluetooth, Lora

Pemroses : Arduino Uno

Keluaran  : Bluetooth, Lora

 

3.2              DIAGRAM ALIR



3.3              DIAGRAM BLOK





3.4              DIAGRAM PENGAWATAN



3.5              PROGRAM

/*

Program rangkaian 1

 

*/

#include <SPI.h>            

#include <LoRa.h>

 

byte msgCount = 0;           

byte localAddress = 0xBB;    

byte destination = 0xFF;     

 

 

String outgoing;             

String Mymessage;            

 

int calling;               

 

void setup() {

  Serial.begin(9600);                  

  Serial.println("LoRa Duplex");

 

  if (!LoRa.begin(433E6)) {          

    Serial.println("LoRa init failed. Check your connections.");

    while (true);                      

  }

 

  Serial.println("LoRa init succeeded.");

 

}

 

void loop() {

 

   if(Serial.available()>0)

   {

    //read data

    Mymessage=Serial.readString();

    sendMessage(Mymessage);

    delay(100);

    Mymessage = "";

   }

 

 

    

  onReceive(LoRa.parsePacket());

  }

 

 

 

 

 

void sendMessage(String outgoing) {

  LoRa.beginPacket();                 

  LoRa.write(destination);            

  LoRa.write(localAddress);        

  LoRa.write(msgCount);                

  LoRa.write(outgoing.length());       

  LoRa.print(outgoing);              

  LoRa.endPacket();                    

  msgCount++;                         

}

 

void onReceive(int packetSize) {

  if (packetSize == 0) return;         

 

  // read packet header bytes:

  int recipient = LoRa.read();    

  byte sender = LoRa.read();           

  byte incomingMsgId = LoRa.read();    

  byte incomingLength = LoRa.read();  

 

  String incoming = "";

 

  while (LoRa.available()) {

    incoming += (char)LoRa.read();

  }

 

  if (incomingLength != incoming.length()) {   // check length for error

    //Serial.println("error: message length does not match length");

    ;

    return;                          

  }

 

  // if the recipient isn't this device or broadcast,

  if (recipient != localAddress && recipient != 0xFF) {

   // Serial.println("This message is not for me.");

    ;

    return;                          

  }

 

  // if message is for this device, or broadcast, print details:

  //Serial.println("Received from: 0x" + String(sender, HEX));

  //Serial.println("Sent to: 0x" + String(recipient, HEX));

  //Serial.println("Message ID: " + String(incomingMsgId));

 // Serial.println("Message length: " + String(incomingLength));

 // Serial.println("Message: " + incoming);

//  Serial.println("RSSI: " + String(LoRa.packetRssi()));

//  Serial.println("Snr: " + String(LoRa.packetSnr()));

// Serial.println();

   String q = getValue(incoming, ',', 0);

    // Serial.println("q: " + q);

 

calling = q.toInt();

    //Serial.println(q);

if(calling== 45)

{

 

 Serial.print("you Have Message");

 calling = 0; 

   

  }

 

  else

  Serial.println(q);

}

String getValue(String data, char separator, int index)

{

    int found = 0;

    int strIndex[] = { 0, -1 };

    int maxIndex = data.length() - 1;

 

    for (int i = 0; i <= maxIndex && found <= index; i++) {

        if (data.charAt(i) == separator || i == maxIndex) {

            found++;

            strIndex[0] = strIndex[1] + 1;

            strIndex[1] = (i == maxIndex) ? i+1 : i;

        }

    }

    return found > index ? data.substring(strIndex[0], strIndex[1]) : "";

}

 /*

Program rangkaian 2


*/

#include <SPI.h>             

#include <LoRa.h>


byte msgCount = 0;            

byte localAddress = 0xFF;     

byte destination = 0xBB;      



String outgoing;              

String Mymessage;             


int calling;                


void setup() {

  Serial.begin(9600);                   

  Serial.println("LoRa Duplex");


  if (!LoRa.begin(433E6)) {           

    Serial.println("LoRa init failed. Check your connections.");

    while (true);                       

  }


  Serial.println("LoRa init succeeded.");


}


void loop() {


   if(Serial.available()>0)

   {

    //read data

    Mymessage=Serial.readString();

    sendMessage(Mymessage);

    delay(100);

    Mymessage = "";

   }



     

  onReceive(LoRa.parsePacket());

  }






void sendMessage(String outgoing) {

  LoRa.beginPacket();                  

  LoRa.write(destination);             

  LoRa.write(localAddress);         

  LoRa.write(msgCount);                 

  LoRa.write(outgoing.length());        

  LoRa.print(outgoing);               

  LoRa.endPacket();                     

  msgCount++;                          

}


void onReceive(int packetSize) {

  if (packetSize == 0) return;          


  // read packet header bytes:

  int recipient = LoRa.read();     

  byte sender = LoRa.read();            

  byte incomingMsgId = LoRa.read();     

  byte incomingLength = LoRa.read();   


  String incoming = "";


  while (LoRa.available()) {

    incoming += (char)LoRa.read();

  }


  if (incomingLength != incoming.length()) {   // check length for error

    //Serial.println("error: message length does not match length");

    ;

    return;                           

  }


  // if the recipient isn't this device or broadcast,

  if (recipient != localAddress && recipient != 0xFF) {

   // Serial.println("This message is not for me.");

    ;

    return;                           

  }


  // if message is for this device, or broadcast, print details:

  //Serial.println("Received from: 0x" + String(sender, HEX));

  //Serial.println("Sent to: 0x" + String(recipient, HEX));

  //Serial.println("Message ID: " + String(incomingMsgId));

 // Serial.println("Message length: " + String(incomingLength));

 // Serial.println("Message: " + incoming);

//  Serial.println("RSSI: " + String(LoRa.packetRssi()));

//  Serial.println("Snr: " + String(LoRa.packetSnr()));

// Serial.println();

   String q = getValue(incoming, ',', 0);

    // Serial.println("q: " + q);


calling = q.toInt();

    //Serial.println(q);

if(calling== 45)

{


 Serial.print("you Have Message");

 calling = 0;  

    

  }


  else 

  Serial.println(q);

}

String getValue(String data, char separator, int index)

{

    int found = 0;

    int strIndex[] = { 0, -1 };

    int maxIndex = data.length() - 1;

 

    for (int i = 0; i <= maxIndex && found <= index; i++) {

        if (data.charAt(i) == separator || i == maxIndex) {

            found++;

            strIndex[0] = strIndex[1] + 1;

            strIndex[1] = (i == maxIndex) ? i+1 : i;

        }

    }

    return found > index ? data.substring(strIndex[0], strIndex[1]) : "";

}

IV.           CARA KERJA

Pertama tama arduino menginialisasi semua komponen yang tersambung, selanjutnya bluetooth disandingkan dan lora harus berada di 433hz agar dapat bekerja. Setelah itu pesan dimasukan pada aplikasi bluetooth lalu bluetooth menerima dan mengirim pesan tersebut agar diproses dan dikirim ke lora. Lora mengirim pesan ke lora pada rangkaian kedua dan pada rangkaian dua proses kerja berjalan terbalik dari lora ke arduino lalu ke bluetooth dan pesan dapat dibaca pada aplikasi bluetooth. Kedua rangkaian dapat mengirim dan menerima sehingga bisa digunakan sebagai alat komunikasi seperti sms

 

V.               KESIMPULAN

 

Alat Komunikasi berbasis lora yang dibuat menggunakan 2 rangkaian terdapat komponen Bluetooth, arduino dan lora disetiap rangkaian. Bluetooth digunakan untuk menghubungkan telepon dengan arduino sedangkan lora digunakan untuk komunikasi antar rangkaian. Setelah dicoba alat dapat digunakan dengan baik dalam jarak 1-2 Km.

 

 

DAFTAR PUSTAKA

 

Prasetyo, Elga Aris. 2022. Prinsip Kerja Dari Lora SX1278(https://www.arduinoindonesia.id/2022/08/prinsip-kerja-dari-lora-sx1278.html. diakses:12 desember 2022).

 

Maulana, Krisna Yudha. 2022. Mengenal Modul Bluetooth (HC-05)( https://www.anakteknik.co.id/krysnayudhamaulana/articles/mengenal-modul-bluetooth-hc-05 diakses: 12 deesember 2022).

 

Fahad, Engr. 2022. Arduino LoRa Free SMS over Long distance without GSM Network, LoRa Bluetooth(https://www.electroniclinic.com/arduino-lora-free-sms-over-long-distance-without-gsm-network-lora-bluetooth/, diakses: 12 Desember 2022).


LAMPIRAN

Video Simulasi

Jurnal

PPT

Program rangkaian 1

Program rangkaian 2


 

 

 

 

 

 

 

 

 

 

 

 

 

 

Komentar