Panduan Langkah demi Langkah untuk Menerapkan Gateway LoRa RAK 831 pada Raspberry Pi 3
Proyek ini membawa Anda melalui semua langkah yang diperlukan untuk menjalankan modul Gateway LoRa RAK 831 dengan wifi sebagai backhaul.
Cerita
Pendahuluan
Panduan langkah demi langkah ini bertujuan untuk pengembang yang ingin mengembangkan gateway LoRa mereka sendiri menggunakan modul front-end radio LoRa RAK831 yang hebat dari RAK Wireless. Panduan ini mengasumsikan pengetahuan dasar tentang ekosistem Raspberry pi, hardware, dan OS Debian terkait. Panduan ini juga mengasumsikan pengetahuan dasar tentang GPIO dan periferal yang ada pada Raspberry Pi. SO Mari kita mulai:
Apa itu LoRA?
LoRa Alliance™ Technology. LoRaWAN™ adalah spesifikasi Low Power Wide Area Network (LPWAN) yang dimaksudkan untuk Things beroperasi baterai nirkabel di jaringan regional, nasional, atau global. LoRaWAN menargetkan persyaratan utama Internet of Things seperti komunikasi dua arah yang aman, layanan mobilitas dan lokalisasi.
courtesy Semtech
Diagram di atas menunjukkan berbagai bagian dari arsitektur nirkabel LoRa. Beberapa bagian penting dijelaskan singkat di bawah:
Fitur Utama Teknologi LoRa dan Protokol LoRaWAN
· GEOLOCATION: Memungkinkan aplikasi pelacakan rendah daya tanpa GPS
· LOW COST: Mengurangi biaya dengan tiga cara: investasi infrastruktur, biaya operasional, dan sensor simpul akhir
· STANDARDIZED: Interoperabilitas global yang ditingkatkan mempercepat adopsi dan peluncuran jaringan dan aplikasi IoT berbasis LoRaWAN
· LOW POWER: Protokol dirancang khusus untuk konsumsi daya rendah yang memperpanjang umur baterai hingga 20 tahun
· LONG RANGE: Stasiun dasar tunggal memberikan penetrasi dalam dalam kota padat/ruangan, serta menghubungkan daerah pedesaan hingga 30 mil jauh
· SECURE: Enkripsi AES128 end-to-end yang tersemat
· HIGH CAPACITY: Mendukung jutaan pesan per stasiun dasar, ideal untuk operator jaringan publik yang melayani banyak pelanggan
RAK 831 adalah front-end radio LoRa; yaitu, ia bertindak sebagai penerima paket data LoRa yang masuk dan meneruskan mereka ke perangkat lunak/hardware pengelola agregator host. Ia juga dapat transmit paket data LoRa berdasarkan permintaan papan host. Dalam kasus kami, raspberry pi 3 adalah papan host yang mengontrol front-end RAK 831.
Memilih backhaul
Apa itu backhaul? Backhaul merujuk pada bagaimana Raspberry Pi akan terhubung ke Internet. Panduan ini berfokus pada penggunaan Wifi sebagai backhaul, tetapi Anda juga dapat menggunakan Ethernet atau 3G/4G. Jika Anda memang memiliki Ethernet yang tersedia di dekat gateway, maka gunakan itu daripada WiFi atau 3G/4G. Ini karena memiliki sinyal radio tambahan di dalam casing akan menyebabkan kebisingan. Perangkat lunak dapat menangani lingkungan berisik, jadi itu bukan masalah besar, tetapi semakin sedikit berisik, semakin baik. Anda dapat menggabungkan pilihan ini dengan Power-over-Ethernet untuk meminimalkan kabel yang pergi hingga ke gateway.
Di sisi lain, jika Anda memilih WiFi daripada Ethernet, maka coba gunakan dongle dengan antena eksternal dan pindahkan antena di luar casing untuk memiliki lebih sedikit kebisingan di dalam kotak.
Siapkan hardware:
Sebelum kita menyambungkan apa pun dan menyala, lakukan konfigurasi berikut pada raspberry pi dan modul RAK 831:
RASPBERRY PI
1) Dapatkan papan raspberry pi 3 dan siapkan kartu micro sd 8gb dengan perangkat lunak raspbian. Anda bahkan dapat membeli kartu sd noobs dengan perangkat lunak yang sudah dimuat. Untuk cara memflash os pada kartu sil, ikuti instruksi di sini: https://www.raspberrypi.org/learning/hardware-guide/
2) Hubungkan raspberry pi ke pasokan daya 5v 2amps. INI SANGAT PENTING. Modul lora mungkin menarik 700 mA puncak selama transaksi nirkabel aktif dan oleh karena itu butuh pasokan daya yang baik untuk memindai raspberry pi
raspberry pi v3
RAK 831:
1) Sebelum Anda bahkan menyala papan, dapatkan antena yang datang dalam kit Anda dan hubungkan ke terminal baut antena. INI ESSENSIAL.
Raspberry Pi v3, RAK 831 module and a Lora Node
Detail koneksi:
Berikut adalah tabel yang menunjukkan cara menyambungkan modul rak831 dengan raspberry pi:
rpi v3 to rak 831 pin connection The rak 831 silk screen map to the rak 831 pins.
rak 831 silk screen map to the rak 831 pins
Untuk memahami tata letak pin Raspberry Pi kunjungi: https://www.raspberrypi.org/documentation/usage/gpio/ untuk detail
Catatan:
- Pin reset dapat dihubungkan ke salah satu GPIO pada raspberry pi 3.
- Penting untuk memastikan Anda menyambungkan pin pasokan daya dengan benar untuk menghindari kerusakan pada papan RAK 831.
Aktifkan SPI:
Periferal SPI tidak diaktifkan secara default. Untuk mengaktifkannya, lakukan hal berikut.
- Jalankan sudo raspi-config.
- Gunakan panah bawah untuk memilih 9 Advanced Options
- Pilih yes ketika meminta Anda untuk mengaktifkan SPI,
- Juga pilih yes ketika meminta tentang pemuatan otomatis modul kernel.
- Gunakan panah kanan untuk memilih tombol <&Finish>.
- Pilih yes ketika meminta untuk reboot.
Raspi-config for SPI
Sistem akan reboot. Setelah kembali, login dan masukkan perintah berikut
>ls /dev/*spi*
Pi seharusnya merespons dengan
/dev/spidev0.0 /dev/spidev0.1
Ini mewakili perangkat SPI pada chip enable pins 0 dan 1, masing-masing. Pin-pin ini terpasang keras dalam Pi. Biasanya, ini berarti antarmuka mendukung paling banyak dua periferal, tetapi ada kasus di mana beberapa perangkat dapat di-chaining, berbagi satu sinyal chip enable.
Sediakan daya ke papan:
Seperti pada proyek nirkabel apa pun, mereka cenderung membutuhkan lebih banyak daya daripada yang dapat disediakan papan host melalui pin pasokan. Dua skema di bawah menguraikan cara Anda dapat menyediakan daya ke RAK 831 dan raspberry pi 3.
1) Sediakan daya rel 5v dari Raspberry Pi
2) Sediakan daya rel 5v pada Raspberry Pi dan RAK831 secara terpisah
Instalasi perangkat lunak:
Pada Raspberry pi lakukan langkah-langkah berikut untuk menginstal perangkat lunak esensial:
Gunakan utilitas raspi-config untuk mengaktifkan SPI ([5] Interfacing options -> P4 SPI) dan juga perluas sistem berkas ([7] Advanced options -> A1 Expand filesystem):
$ sudo raspi-config
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git
- Kelola koneksi wifi Anda pada raspberry pi
- Konfigurasikan kredensial wifi (lihat di sini untuk detail tambahan)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Dan tambahkan blok berikut di akhir file, mengganti SSID dan kata sandi agar cocok dengan jaringan Anda:
network={
ssid=“The_SSID_of_your_wifi”
psk=“Your_wifi_password”
}
- Kloning installer dan mulai instalasi
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh spi
- Langkah instalasi akan bertanya apakah Anda ingin mengaktifkan konfigurasi remote. Ketik ‘y’ atau ‘yes’ dan lanjutkan instalasi. Pada awal instalasi command line, skrip akan menunjukkan Gateway EUI yang penting untuk langkah selanjutnya. CATAT ITU!
- Jika Anda ingin menggunakan opsi konfigurasi remote, pastikan Anda telah membuat file JSON bernama sesuai Gateway EUI Anda (misalnya B827EBFFFE7B80CD.json) di Gateway Remote Config repository di sini: https://github.com/ttn-zh/gateway-remote-config. Fork repo, tambahkan file <EUI>.json Anda dengan konfigurasi yang tepat lalu commit fork repo. Setelah selesai, kirim pull request ke repo master dan file seharusnya muncul dalam repo besok hari. Contoh json ditunjukkan di bawah:
{
“gateway_conf”: {
“gateway_ID”: “the id as you noted down in the install.sh console output”,
“servers”: [
{
“server_address”: “the router to which you want to connect to”,
“serv_port_up”: 1700,
“serv_port_down”: 1700,
“serv_enabled”: true
}
],
“ref_latitude”: the lat of the rak 831 gateway,
“ref_longitude”: the long of the rak 831 gateway,
“ref_altitude”: 40,
“contact_email”: “contact email of the gateway owner”,
“description”: “a short desciption”
}
}
Catatan:
Untuk daftar router yang valid lihat tautan di sini:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- Secara default, installer mengubah nama host Raspberry Pi Anda menjadi ttn-gateway (untuk mencegah benturan dengan Raspberry Pi lain di jaringan Anda). Anda dapat mengganti ini dalam mode konfigurasi non-remote.
- HURRAY gateway Anda sekarang seharusnya bekerja. Pastikan Anda me-restart gateway besok hari agar file json Anda diunduh dengan benar ke RPi3.
- Perhatikan bahwa file global_config.json perlu disesuaikan sesuai dengan:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
untuk mereka yang ingin menggunakan mp_pkt_fwd sebagai pengganti poly packet forwarder lama yang didengar di sini dan menginstal yang sama dengan instruksi yang diberikan:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Lagi Anda dapat melihat file global_conf..json di root proyek pastikan Anda mengedit file (bagian imp dijelaskan di bawah) dan menyalin yang sama ke folder bin setelah kompilasi.
Beberapa entitas yang dapat dikonfigurasi dalam global_conf.json:
File global_conf.json dapat ditemukan di ./bin/global_conf.json dari dasar direktori proyek Anda setelah skrip instalasi telah berjalan. Berikut adalah daftar beberapa entitas yang mungkin Anda ingin edit dalam file global_conf.json untuk konfigurasi gateway tertentu Anda:
1) konfigurasi “radio_0” atau “radio_1”, terutama parameter Frekuensi dan parameter sweep frekuensi min dan max.
2) bagian “gateway_conf”. Terutama ID gateway atau EUI gateway Anda.
3) port server up dan down dalam objek gateway_conf yang sama beserta alamat server TTN Anda atau alamat server aplikasi Anda sendiri jika tersedia.
Reset papan:
Kapan pun kita menyala raspberry pi, merupakan praktik yang baik untuk mereset modul LoRa RAK831 yang terlampir. Ada dua cara untuk melakukannya:
Skrip shell kecil dapat ditulis untuk mereset RAK831 sebelum driver LoRa dapat mengakses hardware. Isi skrip shell dapat terlihat seperti contoh berikut (yang mengasumsikan bahwa GPIO 17 (pin 11) Raspberry Pi terhubung ke pin reset RAK831):
#!/bin/bash
echo “17” > /sys/class/gpio/export
echo “out” > /sys/class/gpio/gpio17/direction
echo “1” > /sys/class/gpio/gpio17/value
sleep 5
echo “0” > /sys/class/gpio/gpio17/value
sleep 1
echo “0” > /sys/class/gpio/gpio17/value
Baris-baris ini dapat disimpan dalam file bernama “rak831_reset.sh”. Pengguna harus memanggil skrip ini sekali setelah setiap boot agar IC konsentrator berada dalam keadaan bersih.
Jika sistem host adalah Raspberry Pi pengguna dapat menulis alat C kecil untuk mengatur reset RAK831. Untuk mengakses pin GPIO Raspberry Pi ada perpustakaan yang disebut “wiringPi” yang menangani detail tingkat rendah. Perpustakaan dapat diunduh dari https://wiringpi.com. Silakan lihat situs ini untuk instruksi instalasi dan penggunaan. Isi file RAK831_reset.c dapat terlihat seperti berikut:
#include <wiringPi.h>
#include <unistd.h>
#define GPIO_RESET_PIN 0 // lihat mapping wiringPi!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LOW);
return;
}
Pengguna harus memanggil alat ini sekali setelah setiap boot agar IC konsentrator berada dalam keadaan bersih.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Daftarkan gateway ke jaringan TTN:
Untuk mendapatkan simpul Anda untuk mengirim data ke cloud TheThingsNetwork menyediakan layanan cloud untuk menguraikan dan menyimpan data yang dikirim oleh simpul lora melalui lora
Read More Detail :Getting started with the RAK 831 Lora Gateway and RPi3