Memulai RAK 831 Lora Gateway dan RPi3
Proyek ini membawa Anda melalui semua langkah yang diperlukan untuk mengaktifkan dan menjalankan modul RAK 831 Lora Gateway Anda dengan wifi sebagai backhaul.
Cerita
Pengantar
Panduan langkah demi langkah ini ditujukan untuk pengembang yang ingin mengembangkan gateway lora mereka sendiri menggunakan modul front-end radio RAK831 Lora yang mengagumkan dari RAK Wireless. Panduan ini mengasumsikan pengetahuan dasar tentang sistem ramah lingkungan Raspberry pi, perangkat keras, dan OS Debian terkait. Panduan ini juga mengasumsikan pengetahuan dasar tentang GPIO dan periferal yang ada di Raspberry Pi. JADI Mari kita mulai:
Apa itu LoRA?
LoRa Teknologi Aliansi™. LoRaWAN™ adalah spesifikasi Low Power Wide Area Network (LPWAN) yang ditujukan untuk Hal-hal yang dioperasikan dengan baterai nirkabel di jaringan regional, nasional, atau global. LoRaWAN menargetkan persyaratan utama Internet of Things seperti komunikasi dua arah yang aman, mobilitas, dan layanan pelokalan.
kesopanan Semtech
Diagram di atas menunjukkan berbagai bagian arsitektur nirkabel Lora. Beberapa bagian penting dijelaskan secara singkat di bawah ini:
Fitur Utama Teknologi LoRa dan Protokol LoRaWAN
· GEOLOCATION:Mengaktifkan aplikasi pelacakan daya rendah yang bebas GPS
· BIAYA RENDAH:Mengurangi biaya dengan tiga cara:investasi infrastruktur, biaya pengoperasian, dan sensor simpul akhir
· STANDAR:Peningkatan interoperabilitas global mempercepat adopsi dan peluncuran jaringan berbasis LoRaWAN dan aplikasi IoT
· LOW POWER:Protokol yang dirancang khusus untuk konsumsi daya rendah yang memperpanjang masa pakai baterai hingga 20 tahun
· JANGKAUAN PANJANG:Stasiun pangkalan tunggal memberikan penetrasi yang dalam di daerah perkotaan/dalam ruangan yang padat, plus menghubungkan daerah pedesaan hingga jarak 30 mil
· AMAN:Enkripsi AES128 ujung-ke-ujung yang disematkan
· KAPASITAS TINGGI:Mendukung jutaan pesan per stasiun pangkalan, ideal untuk operator jaringan publik yang melayani banyak pelanggan
RAK 831 adalah frontend Radio LorA; yaitu bertindak sebagai penerima paket data lora yang masuk dan meneruskannya ke host perangkat lunak/perangkat keras manajemen agregator. Itu juga dapat mengirimkan paket data LoRA berdasarkan permintaan papan host. Dalam kasus kami, raspberry pi 3 adalah papan host yang mengontrol frontend RAK 831.
Memilih backhaul
Apa itu backhaul? Backhaul mengacu 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 memiliki Ethernet yang tersedia di dekat gateway, maka pilihlah daripada WiFi atau 3G/4G. Ini karena adanya sinyal radio tambahan di dalam enklosur akan menimbulkan noise. Perangkat lunak ini dapat menangani lingkungan yang bising, jadi ini bukan masalah besar, tetapi semakin tidak bising, semakin baik. Anda dapat menggabungkan pilihan ini dengan Power-over-Ethernet untuk meminimalkan pemasangan kabel hingga ke gateway.
Sebaliknya, jika Anda memilih WiFi daripada Ethernet, coba gunakan dongle dengan antena eksternal dan pindahkan antena ke luar enklosur untuk mengurangi noise di dalam kotak.
Siapkan perangkat keras:
Sebelum kita menghubungkan apa pun dan mengaktifkannya, mari selesaikan 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 dimuat sebelumnya. Tentang cara mem-flash os di sd-card, ikuti petunjuk di sini: https://www.raspberrypi.org/learning/hardware-guide/
2) Hubungkan raspberry pi ke catu daya 5v 2amps. INI SANGAT PENTING. Modul lora dapat menarik puncak 700 mA selama transaksi nirkabel aktif dan karenanya memiliki kekuatan yang baik untuk memberi daya pada raspberry pi
raspberry pi v3
RAK 831:
1) Bahkan sebelum Anda menyalakan papan, dapatkan antena yang disertakan dalam kit Anda dan sambungkan ke terminal sekrup antena. INI PENTING.
Raspberry Pi v3, modul RAK 831 dan Lora Node
Detail koneksi:
Berikut adalah tabel yang menunjukkan cara menghubungkan modul rak831 dengan raspberry pi:
rpi v3 ke rak 831 koneksi pin Layar sutra rak 831 dipetakan ke rak 831 pin.
rak 831 silk screen memetakan ke rak 831 pin
Untuk memahami tata letak pin Raspberry Pi, buka: https://www.raspberrypi.org/documentation/usage/gpio/ untuk detailnya
Catatan:
- Pin reset dapat dihubungkan ke salah satu GPIO di raspberry pi 3.
- Sangat penting untuk memastikan bahwa Anda menghubungkan pin catu daya dengan benar untuk menghindari kerusakan pada board 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 Opsi Lanjutan
- Panah ke bawah ke A6 SPI.
- Pilih ya ketika meminta Anda untuk mengaktifkan SPI ,
- Pilih juga ya ketika menanyakan tentang memuat modul kernel secara otomatis.
- Gunakan panah kanan untuk memilih tombol .
- Pilih ya saat diminta untuk melakukan boot ulang.
Raspi-config untuk SPI
Sistem akan reboot. Ketika muncul kembali, login dan masukkan perintah berikut
>ls /dev/*spi*
Pi harus merespons dengan
/dev/spidev0.0 /dev/spidev0.1
Ini mewakili perangkat SPI pada pin yang mengaktifkan chip 0 dan 1, masing-masing. Pin ini tertanam dalam Pi. Biasanya, ini berarti antarmuka mendukung paling banyak dua periferal, tetapi ada kasus di mana beberapa perangkat dapat dirantai daisy, berbagi sinyal pengaktifan chip tunggal.
Supply power ke board:
Seperti halnya proyek nirkabel lainnya, proyek tersebut cenderung membutuhkan daya lebih dari yang dapat disediakan oleh papan host melalui pin suplai. Dua skema di bawah ini menyebutkan bagaimana Anda dapat menyalakan RAK 831 dan raspberry pi 3.
1) Nyalakan rel 5v dari Raspberry Pi
2) Nyalakan rel 5v pada Raspberry Pi dan RAK831 secara terpisah
Instalasi perangkat lunak:
Pada Raspberry pi, lakukan langkah-langkah berikut untuk menginstal perangkat lunak penting:
Gunakan utilitas raspi-config untuk mengaktifkan SPI ([5] Opsi antarmuka -> P4 SPI) dan juga perluas sistem file ([7] Opsi lanjutan -> A1 Perluas sistem file):
$ sudo raspi-config
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git
- Kelola koneksi wifi Anda di raspberry pi
- Konfigurasikan kredensial wifi (periksa di sini untuk detail tambahan)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Dan tambahkan blok berikut di akhir file, ganti SSID dan kata sandi agar sesuai dengan jaringan Anda:
network={
ssid=“The_SSID_of_your_wifi”
psk=“Your_wifi_password”
}
- Klon penginstal dan mulai penginstalan
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh spi
- Langkah penginstalan akan menanyakan apakah Anda ingin mengaktifkan konfigurasi jarak jauh. Ketik 'y' atau 'yes' dan lanjutkan dengan instalasi. Pada awal penginstalan baris perintah, skrip akan menunjukkan kepada Anda gateway EUI yang penting untuk langkah selanjutnya. PERHATIKAN ITU !
- Jika Anda ingin menggunakan opsi konfigurasi jarak jauh, pastikan Anda telah membuat file JSON bernama sebagai EUI gateway Anda (misalnya B827EBFFFE7B80CD.json) di repositori Gateway Remote Config di sini: https://github.com/ttn -zh/gateway-remote-config.php Fork repo, tambahkan file .json Anda dengan konfigurasi yang tepat, lalu komit repo bercabang. Setelah selesai, kirim permintaan tarik ke master repo dan file akan muncul di repo pada hari berikutnya. Contoh json ditunjukkan di bawah ini:
{
“gateway_conf”:{
“gateway_ID”:“id seperti yang Anda catat di keluaran konsol install.sh”,
“server”:[
{
“server_address”:“router yang ingin Anda sambungkan”,
“serv_port_up”:1700,
“serv_port_down”:1700,
“serv_enabled”:true
}
],
“ref_latitude”:lat gerbang rak 831,
“ref_longitude”:panjang gerbang rak 831,
“ref_altitude”:40,
“contact_email”:“email kontak pemilik gateway”,
“deskripsi”:“deskripsi singkat”
}
}
Catatan:
Untuk daftar router yang valid, periksa link di sini:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- Secara default, penginstal mengubah nama host Raspeberry Pi Anda menjadi ttn-gateway (untuk mencegah tabrakan dengan Raspberry Pi lain di jaringan Anda). Anda dapat menggantinya dalam mode konfigurasi non-jarak jauh.
- HURRAY, gerbang Anda sekarang akan berfungsi. Pastikan Anda memulai ulang gateway keesokan harinya agar file json Anda diunduh dengan benar ke RPi3.
- Perhatikan bahwa global_config.json di perlu disesuaikan sesuai:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
bagi mereka yang ingin menggunakan mp_pkt_fwd alih-alih forwarder paket poli lama yang terdengar di sini dan instal yang sama dengan instruksi yang disediakan:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Sekali lagi Anda dapat melihat file global_conf..json di root proyek, pastikan Anda mengedit file (bagian imp dijelaskan di bawah) dan menyalinnya ke folder bin setelah kompilasi.
Beberapa entitas yang dapat dikonfigurasi di global_conf.json:
File global_conf.json dapat ditemukan di ./bin/global_conf.json dari dasar direktori proyek Anda setelah skrip instalasi dijalankan. Berikut adalah daftar beberapa entitas yang mungkin ingin Anda edit di file global_conf.json untuk konfigurasi gateway khusus Anda:
1) konfigurasi “radio_0” atau “radio_1” , terutama parameter Frekuensi dan parameter sapuan frekuensi min dan maks.
2) bagian “gateway_conf”., Terutama ID gateway atau EUI gateway Anda.
3) port naik dan turun server di objek gateway_conf yang sama bersama dengan alamat server TTN Anda dari alamat server aplikasi Anda sendiri jika tersedia.
Menyetel ulang papan:
Setiap kali kita memulai raspberry pi, adalah praktik yang baik untuk mereset modul RAK831 lora yang terpasang. Ada dua cara untuk melakukannya:
Skrip shell kecil dapat ditulis untuk mereset RAK831 sebelum driver LoRa dapat mengakses perangkat keras. Isi skrip shell dapat terlihat seperti contoh berikut (yang mengasumsikan bahwa GPIO 17 (pin 11) dari Raspberry Pi terhubung ke pin reset dari 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 ini dapat disimpan dalam file bernama “rak831_reset.sh”. Pengguna harus memanggil skrip ini sekali setelah setiap boot untuk mendapatkan IC konsentrator dalam keadaan bersih.
Jika sistem host adalah Raspberry Pi, pengguna dapat menulis C-Tool kecil untuk mereset set RAK831. Untuk mengakses pin GPIO dari Raspberry Pi ada perpustakaan yang disebut "wiringPi" yang menangani detail tingkat rendah. Pustaka dapat diunduh dari http://wiringpi.com. Silakan merujuk ke situs ini untuk mendapatkan petunjuk pemasangan dan penggunaan. Isi file RAK831_reset.c dapat terlihat seperti berikut:
#include
#include
#define GPIO_RESET_PIN 0 // lihat pemetaan wiringPi!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, RENDAH);
kembali;
}
Pengguna harus memanggil alat ini sekali setelah setiap boot up untuk mendapatkan IC konsentrator dalam keadaan bersih.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Daftarkan gateway ke jaringan TTN:
Agar node Anda mengirim data ke cloud TheThingsNetwork menyediakan layanan cloud untuk mengurai dan menyimpan data yang dikirim oleh node lora melalui lora
Baca Selengkapnya Detail :Memulai RAK 831 Lora Gateway dan RPi3