Bereksperimen dengan LoRa

LoRa merupakan teknologi proprietary untuk komunikasi radio jarak jauh yang butuh daya rendah (low power-wide area network). Nama LoRa sendiri singkatan dari “long range“. Di tulisan ini saya akan mempernalkan teknologi ini dan eksperimen yang sudah saya lakukan menggunakan LoRa.

LoRa dan LoRaWAN

LoRa merupakan protokol proprietary (artinya dimiliki perusahaan tertentu, bukan teknologi terbuka) tepatnya dimiliki oleh SemTech. Walau proprietary, tapi LoRa sudah didukung banyak perusahaan lain yang bergabung pada LoRa Alliance. LoRa hanya merupakan bagian standard modulasinya, sedangkan di layer atasnya ada yang namanya LoRaWAN (LoRa Wide Area Network). Di tulisan ini saya hanya membahas LoRa saja.

LoRa memiliki kecepatan rendah (hanya puluhan kilobit per second), jadi hanya cocok untuk mengirim data sensor atau teks singkat. LoRa tidak cocok digunakan mengirimkan data besar (misalnya gambar/video). LoRa memakai daya sangat rendah, sehingga device dengan batere bisa mengirim data selama beberapa tahun.

Dengan antenna yang tepat, dan tanpa halangan, jangkauan LoRa bisa sampai puluhan km. Bahkan lebih ketika ditaruh di balon udara, bisa sampai ratusan km) Kuncinya di sini adalah: antenna yang bagus dan tanpa halangan.

Saya melihat ada beberapa proyek di Internet untuk komunikasi dua arah dengan LoRa (misalnya LoRa messenger), tapi tidak ada yang memberi percobaan jangkauan di dunia nyata. Dari hasil eksperimen, dan juga dari posting orang-orang yang memiliki masalah serupa di Issue Github, jika device ditaruh di dalam rumah, dengan antenna biasa, signalnya hanya bisa menembus dinding beberapa rumah (puluhan, atau maksimal ratusan meter).

Frekuensi

LoRa dapat digunakan di band frekuensi yang bebas lisensi, artinya tidak perlu lisensi khusus untuk memakai LoRa. Ketika membaca beberapa artikel Indonesia, jarang yang menuliskan bagian ini: tiap negara memiliki alokasi frekuensi untuk LoRa dan tiap negara punya aturan spesifik sendiri (walau saat ini saya tidak menemukan aturan khusus untuk Indonesia).

Thailand memakai frekuensi 920-923Mhz, sedangkan Indonesia memakai 923-925Mhz (daftar lengkap bisa dilihat di sini). Semua chip yang dibuat oleh Semtech (setahu saya) mendukung semua frekuensi. Para penjual menawarkan modul dengan frekuensi tertentu, karena ada komponen (biasanya kapasitor) yang spesifik frekuensi tertentu dan antenna yang disertakan dioptimasi untuk frekuensi tersebut.

Jika memakai Arduino dan Library LoRa, maka gunakan LoRa.begin(LoRa_frequency) untuk mengeset frekuensinya. Jika memakai library lain, silakan cek dokumentasi library tersebut.

Setting

Protokol LoRa dibahas detail di presentasi Reversing LoRa dan juga di paper ini. Intinya LoRa memakai chirp spread-spectrum untuk meng-encode informasi. Ada banyak setting yang bisa dipilih ketika melakuan komunikasi dengan LoRa, setting ini mempengaruhi kecepatan dan jangkauan signal, secara umum: setting yang pengiriman datanya cepat akan mengurani jangkauannya, dan sebaliknya semakin lambat pengiriman, jangkauan bisa semakin jauh. Dua device yang settingnya sama bisa berkomunikasi, jika tidak sama, maka tidak bisa berkomunikasi.

LoRa calculator

Semua setting bisa dicoba-coba dengan software LoRa calculator dari SemTech (saat ini hanya tersedia untuk Windows saja). Bisa diubah-ubah settingnya untuk mendapatkan gambaran jika suatu nilai berubah, maka kinerja RF-nya apakah akan naik atau turun.

Khusus untuk bandwidth perlu perhatian khusus. Bandwidth rendah akan memperluas jangkauan, orang yang butuh jangkauan luas kadang langsung tergoda mengubah setting ini menjadi paling rendah. Tapi perlu diperhatikan bahwa jika bandwidth yang dipilih kurang dari 41.7Khz, maka kita perlu memakai TXCO (Temperature Compensated Crystal Oscillator), sedangkan kebanyakan modul yang dijual dipasaran memakai Crystal biasa. Jadi amannya gunakan bandwidth yang agak tinggi agar lebih reliable.

Device LoRa

Saat ini saya memiliki beberapa device untuk eksperimen:

Device paling mudah untuk eksperimen adalah yang berbasis ESP32. Driver Arduino sudah ada dan sudah berjalan dengan baik. Board ESP32 yang saya miliki display sehingga lebih mudah dilihat messagenya tanpa perlu terhubung ke komputer. Pinephone dan PineDio keduanya hanya punya software yang masih sulit dipakai.

Menguji Jangkauan (ESP32)

Untuk menguji jangkauan: satu device saya tinggalkan di rumah untuk mengirimkan pesan berurut, dan satu device saya bawa jalan pagi keliling komplek. Selama signal masih cukup kuat, saya akan menerima message yang dikirimkan dari rumah.

Saya mengulangi ini selama beberapa hari dengan setting yang berbeda-beda, dan jarak maksimal hanya sekitar 150 meter. Saya hanya menggunakan antenna pendek biasa, dan posisi transmitter di dalam kamar di rumah (di lantai 2). Saya sengaja memilih ini karena penasaran: jika membuat sesuatu semacam LoRa messenger, bisa sejauh apa. Tentunya jarak akan lebih jauh jika antenna saya taruh di luar.

Untuk deployment di area yang besar (misalnya untuk smart city), biasanya yang dipakai bukan sekedar komunikasi dari device ke device, tapi menggunakan gateway yang tersebar di banyak tempat. Selain itu jika ada banyak device, bisa juga kita membuat mesh network (device bisa saling membantu meneruskan pesan ke device yang ada di dekatnya).

Berjalan dengan Powerbank

Pinedio USB

Pinedio USB merupakan device dari Pine64 agar kita bisa menerima dan mengirimkan data LoRa dari PC, atau device manapun yang punya USB (misalnya SBC seperti Raspberry Pi). Driver USB SPI untuk Pinedio ini masih eksperimental, selain itu library LoRa-nya juga masih eksperimental. Instruksi kompilasi driver kernel bisa dilihat di Wiki Pine64.

Pinedio USB (Memang tidak ada case plastiknya)

Sedangkan untuk mengirimkan data saya menggunakan Repositori ini: https://github.com/lupyuen/lora-sx1262. Saya mencoba mengirimkan ke ESp32, dan setelah memastikan semua settingnya sama, saya berhasil mengirimkan datanya.

Menerima data dari PC

PinePhone LoRa Case

Saya sudah pernah membahas mengenai PinePhone di blog ini, ini adalah ponsel open source (termasuk juga hardwarenya), dan bisa diganti tutup belakangnya dengan back plate dengan teknologi tertentu. Saat ini sudah ada versi fingerprint reader, LoRa, dan keyboard. Sayangnya hanya satu yang bisa dipakai dalam satu waktu (harus bergantian).

Saya punya backplate/case Keyboard juga, tapi kali ini saya hanya akan membahas case LoRa saja. Case ini memiliki chip SemTech dan juga AtTiny84. Alasannya kenapa perlu ada AtTiny84 adalah: chip SemTech hanya mendukung protokol SPI, sedangkan plate belakang hanya bisa memakai komunikasi I2C. Untunglah backplate ini sudah diprogram dengan firmware yang menerjemahkan I2C ke SPI (cerita developer yang membuat firmwarenya bisa dibaca di sini).

Case belakang LoRa untuk PinePhone/PinePhone Pro

Saya pikir kalau LoRa ini beneran bisa jarak sangat jauh, maka akan sangat praktis untuk dipakai di mana saja, misalnya untuk komunikasi di gunung yang masih susah signal, atau untuk komunikasi di konser musik (jika selular terlalu padat). Tapi tanpa antenna yang baik, sepertinya ini sulit dicapai.

Mengirim paket LoRa dari PinePhone ke ESP32

Kode program untuk memakai LoRa di pinephone tidak saya temukan, jadi saya modifikasi sedikit program untuk Pinedio USB, saya ganti komunikasinya menggunakan I2C, dan ternyata langsung berhasil.

Penutup

LoRa bisa digunakan untuk banyak hal, terutama untuk IoT sehingga tidak bergantung pada operator seluler. Operator seluler meskipun reliable, tapi sering berganti kebijakan. Misalnya: frekuensi 2G dialihkan untuk 4G/5G, perlu mendaftarkan SIM Card, dsb. Tapi penggunaan LoRa juga punya tantangannya sendiri, misalnya segala macam konfigurasi untuk menyesuaikan dengan kondisi lapangan.

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.