ESP32 dengan LoRa menggunakan Arduino IDE – Memulai

Dalam tutorial ini kita akan mengeksplorasi prinsip-prinsip dasar LoRa, dan bagaimana hal itu dapat digunakan dengan ESP32 untuk proyek IoT menggunakan Arduino IDE. Untuk memulai, kami juga akan menunjukkan cara membuat Pengirim LoRa dan Penerima LoRa sederhana dengan modul transceiver RFM95.

Memperkenalkan LoRa

Untuk pengenalan singkat tentang LoRa, Anda dapat menonton video di bawah ini, atau Anda dapat menggulir ke bawah untuk penjelasan tertulis.

Apa itu LoRa?

LoRa merupakan teknologi komunikasi data nirkabel yang menggunakan teknik modulasi radio yang dapat dibangkitkan oleh chip transceiver Semtech LoRa.

Teknik modulasi ini memungkinkan komunikasi jarak jauh dari sejumlah data kecil (yang berarti bandwidth rendah), kekebalan tinggi terhadap interferensi, sambil meminimalkan konsumsi daya. Jadi, memungkinkan komunikasi jarak jauh dengan kebutuhan daya yang rendah.

Frekuensi LoRa

LoRa menggunakan frekuensi tanpa izin yang tersedia di seluruh dunia. Ini adalah frekuensi yang paling banyak digunakan :

    • 868 MHz untuk Eropa

    • 915 MHz untuk Amerika Utara

    • Pita 433 MHz untuk Asia

Karena pita-pita ini tidak berlisensi, siapa pun dapat dengan bebas menggunakannya tanpa membayar atau harus mendapatkan lisensi. Periksa frekuensi yang digunakan di negara Anda.

Aplikasi LoRa

LoRa jarak jauh dan fitur daya rendah, membuatnya sempurna untuk sensor yang dioperasikan dengan baterai dan aplikasi berdaya rendah di :

    • Internet of Things (IoT)

    • Rumah Pintar

    • Komunikasi mesin-ke-mesin

Jadi, LoRa adalah pilihan yang baik untuk node sensor yang berjalan pada sel koil atau tenaga surya, yang mengirimkan sejumlah data kecil.

Perlu diingat bahwa LoRa tidak cocok untuk proyek yang :

    • Memerlukan transmisi data-rate tinggi;

    • Perlu transmisi yang sangat sering;

    • Atau berada di jaringan yang sangat padat penduduknya.

Topologi LoRa

Anda dapat menggunakan LoRa di :

    • Komunikasi titik ke titik

    • Atau membangun jaringan LoRa (misalnya menggunakan LoRaWAN)

Komunikasi Titik ke Titik

Dalam komunikasi titik ke titik, dua perangkat berkemampuan LoRa berbicara satu sama lain menggunakan sinyal RF.

Misalnya, ini berguna untuk bertukar data antara dua papan ESP32 yang dilengkapi dengan chip transceiver LoRa yang relatif jauh satu sama lain atau di lingkungan tanpa jangkauan Wi-Fi.

Tidak seperti Wi-Fi atau Bluetooth yang hanya mendukung komunikasi jarak pendek, dua perangkat LoRa dengan antena yang tepat dapat bertukar data jarak jauh.

Anda dapat dengan mudah mengonfigurasi ESP32 Anda dengan chip LoRa untuk mengirim dan menerima data dengan andal pada jarak lebih dari 200 meter (Anda bisa mendapatkan hasil yang lebih baik tergantung pada lingkungan dan pengaturan LoRa Anda). Ada juga solusi LoRa lain yang dengan mudah memiliki jangkauan lebih dari 30 Km.

LoRaWAN

Anda juga dapat membangun jaringan LoRa menggunakan LoRaWAN.

Protokol LoRaWAN adalah spesifikasi Low Power Wide Area Network (LPWAN) yang diturunkan dari teknologi LoRa yang distandarisasi oleh LoRa Alliance. Kami tidak akan menjelajahi LoRaWAN dalam tutorial ini, tetapi untuk informasi lebih lanjut Anda dapat memeriksa situs web LoRa Alliance dan The Things Network.

Bagaimana LoRa dapat berguna dalam proyek otomatisasi rumah Anda?

Mari kita lihat aplikasi praktisnya.

Bayangkan Anda ingin mengukur kelembaban di lahan Anda. Meskipun, tidak jauh dari rumah Anda, mungkin tidak memiliki jangkauan Wi-Fi. Jadi, Anda dapat membuat node sensor dengan ESP32 dan sensor kelembaban, yang mengirimkan pembacaan kelembaban sekali atau dua kali sehari ke ESP32 lain menggunakan LoRa.

ESP32 yang lebih baru memiliki akses ke Wi-Fi, dan dapat menjalankan server web yang menampilkan pembacaan kelembaban.

Ini hanyalah contoh yang menggambarkan bagaimana Anda dapat menggunakan teknologi LoRa dalam proyek ESP32 Anda.

Catatan : kami mengajarkan cara membangun proyek ini pada kursus "Belajar ESP32 dengan Arduino IDE" kami. Ini adalah Proyek 4 di Daftar Isi : Pemantauan Sensor Jarak Jauh LoRa – Melaporkan Pembacaan Sensor dari Luar : Kelembaban dan Suhu Tanah. Periksa halaman kursus untuk lebih jelasnya.

ESP32 dengan LoRa

Di bagian ini kami akan menunjukkan cara memulai LoRa dengan ESP32 Anda menggunakan Arduino IDE. Sebagai contoh, kami akan membuat Pengirim LoRa sederhana dan Penerima LoRa.

Pengirim LoRa akan mengirimkan pesan "halo" diikuti dengan penghitung untuk tujuan pengujian. Pesan ini dapat dengan mudah diganti dengan data yang berguna seperti pembacaan sensor atau notifikasi.

Untuk mengikuti bagian ini Anda memerlukan komponen berikut :

    2x ESP32 DOIT DEVKIT V1 Papan

    2x modul Transceiver LoRa (RFM95)

    • Papan breakout RFM95 LoRa (opsional)

    Kabel jumper

    Papan tempat memotong roti atau papan strip

Alternatif :

    2x TTGO LoRa32 SX1276 OLED

Alih-alih menggunakan ESP32 dan modul transceiver LoRa yang terpisah, ada papan pengembangan ESP32 dengan chip LoRa dan built-in OLED, yang membuat pengkabelan menjadi lebih sederhana. Jika Anda memiliki salah satu board tersebut, Anda dapat mengikuti : TTGO LoRa32 SX1276OLED Board: Memulai dengan Arduino IDE.

Mempersiapkan Arduino IDE

Ada add-on untuk Arduino IDE yang memungkinkan Anda memprogram ESP32 menggunakan Arduino IDE dan bahasa pemrogramannya. Ikuti salah satu tutorial berikutnya untuk mempersiapkan Arduino IDE Anda untuk bekerja dengan ESP32, jika Anda belum melakukannya.

    Instruksi Windows – Papan ESP32 di ArduinoIDE

    Instruksi Mac dan Linux – Papan ESP32 diArduino IDE

Memasang Library LoRa

Ada beberapa library yang tersedia untuk dengan mudah mengirim dan menerima paket LoRa dengan ESP32. Dalam contoh ini kita akan menggunakan library arduino-LoRa oleh sandeep mistry.

Buka Arduino IDE Anda, dan pergi ke Sketch > Include Library > Manage Libraries dan cari “LoRa“. Pilih perpustakaan LoRa yang disorot pada gambar di bawah, dan instal.

Mendapatkan Modul Transceiver LoRa

Untuk mengirim dan menerima pesan LoRa dengan ESP32 kami akan menggunakan modul transceiver RFM95. Semua modul LoRa adalah transceiver, yang berarti mereka dapat mengirim dan menerima informasi. Anda akan membutuhkan 2 dari mereka.

Anda juga dapat menggunakan modul lain yang kompatibel seperti papan berbasis Semtech SX1276/77/78/79 termasuk: RFM96W, RFM98W, dll.

Atau, ada papan ESP32 dengan layar LoRa dan OLED bawaan seperti Modul Wifi Heltec ESP32, atau papan TTGO LoRa32.

Sebelum mendapatkan modul transceiver LoRa Anda, pastikan Anda memeriksa frekuensi yang benar untuk lokasi Anda. Anda dapat mengunjungi halaman web berikut untuk mempelajari lebih lanjut tentang sinyal dan peraturan RF menurut masing-masing negara. Misalnya di Portugal kita bisa menggunakan frekuensi antara 863 dan 870 MHz atau kita bisa menggunakan 433MHz. Untuk proyek ini, kami akan menggunakan RFM95 yang beroperasi pada 868 MHz.

Mempersiapkan Modul Pemancar RFM95

Jika Anda memiliki papan pengembangan ESP32 dengan LoRa bawaan, Anda dapat melewati langkah ini.

Transceiver RFM95 tidak ramah breadboard. Baris umum pin header 2.54 mm tidak akan muat pada pin transceiver. Ruang antara koneksi lebih pendek dari biasanya.

Ada beberapa opsi yang dapat Anda gunakan untuk mengakses pin transceiver.

    • Anda dapat menyolder beberapa kabel langsung ke transceiver;

    • Pecahkan pin header dan solder masing-masing secara terpisah;

    • Atau Anda bisa membeli papan breakout yang membuat pin breadboard ramah.

Kami telah menyolder header ke modul seperti yang ditunjukkan pada gambar di bawah ini.

Dengan cara ini Anda dapat mengakses pin modul dengan kabel jumper biasa, atau bahkan memasang beberapa pin header untuk menghubungkannya langsung ke stripboard atau breadboard.

Antena

Chip transceiver RFM95 membutuhkan antena eksternal yang terhubung ke pin ANA.

Anda dapat menghubungkan antena "asli", atau Anda dapat membuatnya sendiri dengan menggunakan kabel konduktif seperti yang ditunjukkan pada gambar di bawah ini. Beberapa papan breakout dilengkapi dengan konektor khusus untuk menambahkan antena yang tepat.

Panjang kawat tergantung pada frekuensi:

    • 868 MHz: 86,3 mm (3,4 inci)

    • 915 MHz: 81,9 mm (3,22 inci)

    • 433 MHz: 173,1 mm (6,8 inci)

Untuk modul kami, kami perlu menggunakan kawat 86,3 mm yang disolder langsung ke pin ANA transceiver. Perhatikan bahwa menggunakan antena yang tepat akan memperluas jangkauan komunikasi.

Penting : Anda HARUS memasang antena ke modul.

Menghubungkan Modul Transceiver LoRa RFM95

Modul transceiver RFM95 LoRa berkomunikasi dengan ESP32 menggunakan protokol komunikasi SPI. Jadi, kami akan menggunakan pin SPI default ESP32. Hubungkan kedua papan ESP32 ke modul transceiver yang sesuai seperti yang ditunjukkan pada diagram skema berikut :

Berikut koneksi antara modul transceiver RFM95 LoRa dan ESP32:

    • ANA: Antena

    • GND: GND

    • DIO3: jangan hubungkan

    • DIO4: jangan hubungkan

    • 3.3V: 3.3V

    • DIO0: GPIO 2

    • DIO1: jangan hubungkan

    • DIO2: jangan hubungkan

    • GND: jangan hubungkan

    • DIO5: jangan hubungkan

    • RESET: GPIO 14

    • NSS: GPIO 5

    • SCK: GPIO 18

    • MOSI: GPIO 23

    • MISO: GPIO 19

    • GND: jangan hubungkan

Catatan : modul transceiver RFM95 memiliki 3 pin GND. Tidak masalah yang mana yang Anda gunakan, tetapi Anda harus menghubungkan setidaknya satu.

Untuk alasan praktis, kami membuat sirkuit ini di papan strip. Lebih mudah ditangani, dan kabelnya tidak terputus. Anda dapat menggunakan breadboard jika Anda mau.

Sketsa Pengirim LoRa

Buka Arduino IDE Anda dan salin kode berikut. Sketsa ini didasarkan pada contoh dari library LoRa. Ini mengirimkan pesan setiap 10 detik menggunakan LoRa. Ini mengirimkan "halo" diikuti dengan nomor yang bertambah di setiap pesan.



 

Mari kita lihat kodenya.

Itu dimulai dengan memasukkan library yang dibutuhkan.

Kemudian, tentukan pin yang digunakan oleh modul LoRa Anda. Jika Anda telah mengikuti skema sebelumnya, Anda dapat menggunakan definisi pin yang digunakan dalam kode. Jika Anda menggunakan papan ESP32 dengan LoRa built-in, periksa pin yang digunakan oleh modul LoRa di papan Anda dan buat penetapan pin yang tepat.

Anda menginisialisasi variabel penghitung yang dimulai pada 0;

Dalam setup(), Anda menginisialisasi komunikasi serial.

Atur pin untuk modul LoRa.

Dan inisialisasi modul transceiver dengan frekuensi yang ditentukan.

Anda mungkin perlu mengubah frekuensi agar sesuai dengan frekuensi yang digunakan di lokasi Anda. Pilih salah satu opsi berikut :

    • 433E6

    • 866E6

    • 915E6

Modul transceiver LoRa mendengarkan paket dalam jangkauannya. Tidak masalah dari mana paket itu berasal. Untuk memastikan Anda hanya menerima paket dari pengirim, Anda dapat mengatur kata sinkronisasi (berkisar dari 0 hingga 0xFF).

Baik penerima maupun pengirim harus menggunakan kata sinkronisasi yang sama. Dengan cara ini, penerima mengabaikan paket LoRa yang tidak berisi kata sinkronisasi itu.

Selanjutnya, di loop() Anda mengirim paket LoRa. Anda menginisialisasi paket dengan metode beginPacket().

Anda menulis data ke dalam paket menggunakan metode print(). Seperti yang Anda lihat di dua baris berikut, kami mengirim pesan "halo" diikuti oleh penghitung.

Kemudian, tutup paket dengan metode endPacket().

Setelah ini, pesan penghitung bertambah satu di setiap loop, yang terjadi setiap 10 detik.

Menguji Sketsa Pengirim

Unggah kode ke papan ESP32 Anda. Pastikan Anda memilih papan dan port COM yang tepat.

Setelah itu, buka Serial Monitor dan tekan tombol aktifkan ESP32. Anda akan melihat pesan sukses seperti yang ditunjukkan pada gambar di bawah ini. Penghitung harus bertambah setiap 10 detik.

Sketsa Penerima LoRa

Sekarang, ambil ESP32 lain dan unggah sketsa berikut (sketsa penerima LoRa). Sketsa ini mendengarkan paket LoRa dengan kata sinkronisasi yang telah Anda tetapkan dan mencetak konten paket pada Serial Monitor serta RSSI. RSSI mengukur kekuatan sinyal yang relatif diterima.




Sketsa ini sangat mirip dengan yang sebelumnya. Hanya loop() yang berbeda.

Anda mungkin perlu mengubah frekuensi dan kata sandi agar sesuai dengan yang digunakan dalam sketsa pengirim.

Dalam loop() kode memeriksa apakah paket baru telah diterima menggunakan metode parsePacket().

Jika ada paket baru, kami akan membaca kontennya saat tersedia.

Untuk membaca data yang masuk Anda menggunakan metode readString().

Data yang masuk disimpan pada variabel LoRaData dan dicetak di Serial Monitor.

Akhirnya, dua baris kode berikutnya mencetak RSSI dari paket yang diterima dalam dB.

Menguji Sketsa Penerima LoRa

Unggah kode ini ke ESP32 Anda. Pada titik ini Anda harus memiliki dua papan ESP32 dengan sketsa yang berbeda : pengirim dan penerima.

Buka Serial Monitor untuk Penerima LoRa, dan tekan tombol aktifkan Pengirim LoRa. Anda harus mulai mendapatkan paket LoRa di penerima.

Selamat! Anda telah membuat Pengirim LoRa dan Penerima LoRa menggunakan ESP32.

Mengambilnya Lebih Jauh

Sekarang, Anda harus menguji jangkauan komunikasi antara Pengirim dan Penerima di wilayah Anda. Jangkauan komunikasi sangat bervariasi tergantung pada lingkungan Anda (jika Anda tinggal di daerah pedesaan atau perkotaan dengan banyak gedung tinggi). Untuk menguji jangkauan komunikasi, Anda dapat menambahkan tampilan OLED ke penerima LoRa dan berjalan-jalan untuk melihat seberapa jauh Anda bisa mendapatkan komunikasi (ini adalah topik untuk tutorial selanjutnya).

Dalam contoh ini kami hanya mengirim pesan halo, tetapi idenya adalah mengganti teks itu dengan informasi yang berguna.

Membungkus

Singkatnya, dalam tutorial ini kami telah menunjukkan kepada Anda dasar-dasar teknologi LoRa :

    • LoRa adalah teknik modulasi radio;

    • LoRa memungkinkan komunikasi jarak jauh dari sejumlah data kecil dan membutuhkan daya yang rendah;

    • Anda dapat menggunakan LoRa dalam komunikasi point to point atau dalam jaringan;

    • LoRa bisa sangat berguna jika Anda ingin memantau sensor yang tidak tercakup oleh jaringan Wi-Fi Anda dan terpisah beberapa meter.

Kami juga telah menunjukkan kepada Anda cara membuat pengirim dan penerima LoRa sederhana. Ini hanyalah contoh sederhana untuk membantu Anda memulai dengan LoRa. Kami akan segera menambahkan lebih banyak proyek tentang subjek ini, jadi pantau terus!

Anda mungkin juga suka membaca:

    [Review] TTGO LoRa32 SX1276 OLED: Pinout,Spesifikasi, dll…

    [Panduan] Papan OLED TTGO LoRa32 SX1276:Memulai dengan Arduino IDE

Ini adalah kutipan dari kursus kami : BelajarESP32 dengan Arduino IDE. Jika Anda menyukai ESP32 dan ingin mempelajari lebih lanjut, kami sarankan untuk mendaftar di kursus Belajar ESP32 dengan ArduinoIDE.

Posting Komentar

0 Komentar