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
Komentar
Posting Komentar