Setup za relativno povoljan DIY LoRa gateway kakve koristimo u Radioni za The Things Network / SmartZG mrežu.
Što je LoRa? LoRa WAN je protokol za kontrolu pristupa medijima za širokopojasne mreže dizajniran tako da omogućava uređajima male potrošnje da komuniciraju s povezanim Internet aplikacijama putem bežičnih veza velikog dometa.
Što je The Things Network? TTN je globalna community-based mreža za Internet of Things (IoT) bazirana na LoRa tehnologiji, napravljena s ciljem kreiranja robusne mreže i olakšavanja primjene ove tehnologije za različite aplikacije.
Što je SmartZG? SmartZG je naziv za Radioninu inicijativu postavljanja LoRa gatewaya u Zagrebu baziranih na TTN mreži, a s ciljem osiguravanja minimuma pokrivenosti potrebne za eksperimentiranje i korištenje ove tehnologije.
LoRa Gateway se sastoji od koncentratora (u našem slučaju RAK831) – radio frontend modula koji omogućava primanje (i slanje) LoRa paketa poslanih s node modula, te host-boarda (u našem slučaju Raspberry Pi računala) – na kojem se nalazi software i koji putem SPI protokola komunicira i kontrolira s frontend modulom.
Moduli se mogu spojiti na isto napajanje ili svaki odvojeno. U svakom slučaju potrebno je povezati uzemljenja između modula. Napomena: Nije moguće napajati RAK831 modul samo preko RPi 5v pina!
Rak831 Concentrator | pin # | Raspberry | pin # |
---|---|---|---|
+5V | 1,2 | +5V | 2,4 |
GND | 3,5,6,12,14 | GND | 6,9,14,20,25,30,34 |
RST (Reset pin) | 19 | RST | 22 |
SCK (SPI clock) | 18 | SCK | 23 |
MISO | 17 | MISO | 21 |
MOSI | 16 | MOSO | 19 |
CSN (Chip Select) | 15 | CSN | 24 |
Može se kupiti i shield https://github.com/hallard/RAK831-Zero
Skini image Raspbian Jessie Lite i pomoću Etcher-a snimi na MicroSD karticu.
Kako bi omogućili SSH pristup na boot
particiji SD kartice potrebno je kreirati prazni file imenovan ssh
.
Ako ćemo se na internet spajati putem WiFi-ja, to možemo napraviti tako da na boot
particiji napravimo file wpa_supplicant.conf
sa sljedećim sadržajem:
network={ ssid="testing" psk="testingPassword" }
Nakon boota sadržaj file se iskopira u /etc/wpa_supplicant/wpa_supplicant.conf
pa se tamo može editirati.
Stavite karticu u Raspberry, pronađite ga na mreži i SSH-om se spojite.
sudo raspi-config
Updejtate sistem i instalirajte git:
sudo apt-get update && sudo apt-get upgrade sudo apt-get install git
Promjenite defaultni password:
sudo passwd
Kako bi osigurali da se Raspberry u slučaju prekida WiFi veze ponovo spoji najjednostavnije je instalirati network manager. Npr.:
sudo apt-get install wicd-curses sudo wicd-curses
Odabrati našu WiFi mrežu i u postavkama uključiti check-box Automatically connect to this network
Osim toga provjerite da li je uključen Power Management za WiFi adapter. Ako komada iwconfig
vrati Power Management:on
, potrebno ga je isključiti komandom
sudo iwconfig wlan0 power off
Komandu treba izvršiti pri svakom rebootu, pa u file rc.local
treba dodati liniju iwconfig wlan0 power off
prije linije exit 0
Ovo nije potrebno, ispravni kod za restart se već nalazi u /opt/ttn-gateway/bin/start.sh
Preporuča se da se pri svakom startu Raspberry Pi-ja resetira i RAK831 modul prije nego LoRa pristupi hardware-u. To možemo napraviti preko shell skripte. U našem slučaju RST (Reset pin)
RAK831 modula je spojen na GPIO25
, i file treba izgledati ovako:
#!/bin/bash echo "25" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio25/direction echo "1" > /sys/class/gpio/gpio25/value sleep 5 echo "0" > /sys/class/gpio/gpio25/value sleep 1 echo "0" > /sys/class/gpio/gpio25/value
Skriptu treba učiniti izvršivom:
sudo chmod +x rak831_reset.sh
Kako bi se izvršava pri svakom bootu, u fajlu /etc/rc.local
prije linije exit 0
treba dodati /home/pi/rak831_reset.sh
git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway cd ~/ic880a-gateway sudo ./install.sh spi
Instalacija će vam izbacit vaš gateway EUI
. Zapišite ga, trebat će vam dalje pri on-line registraciji.
“Do you want to use remote settings file?”. Odaberite No
Ako ga već nemate, kreirajte account i ubacite podatke o gatewayu.
https://www.thethingsnetwork.org/docs/gateways/registration.html
I'm using the legacy packet forwarder
i upišite vaš EUI
.Europe 868Mhz
ttn-router-eu
systemctl status ttn-gateway.service
sudo apt-get install tcpdump
sudo tcpdump -AUq port 1700
sudo tail -f /var/log/syslog