====== LoRa gateway ======
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.
===== RAK831 + RPi = LoRa Gateway =====
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.
{{ :project:lora_shema.jpg?nolink |}}
===== Potrebna oprema =====
- RAK831 LoRa Gateway Concentrator Module (868MHz)
- Raspberry Pi 2, 3 ili Raspberry Pi Zero W
- MicroSD kartica
- žice i protoboard
- antena i pigtail
- napajanje 5v 2A (ili druga voltaža uz regulator na 5v)
- mrežni kabel (ako ne ide preko WiFi-ja)
- vodonepropusna kutija i uvodnice (za vanjsku instalaciju)
===== Sastavljanje =====
==== Važne napomene ====
* **nikada ne uključivati RAK831 bez spojene antene jer ga tako možete ga spržiti!**
* za povezivanje RAK831 i RPi-a koristiti kratke kabele ili još bolje napraviti malu pločicu
* koristiti kvalitetno napajanje (5v, 2000mA)
==== Napajanje ====
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!
{{ :project:lora_rak831_power.jpg?nolink |}}
==== Povezivanje RAK831 i Rpi-a ====
^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
===== Setupiranje Raspberry-ja =====
Skini image [[https://www.raspberrypi.org/downloads/raspbian/|Raspbian Jessie Lite]] i pomoću [[https://etcher.io/|Etcher-a]] snimi na MicroSD karticu.
==== Uključi SSH ====
Kako bi omogućili SSH pristup na ''boot'' particiji SD kartice potrebno je kreirati prazni file imenovan ''ssh''.
==== Setupiraj WiFi ====
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.
==== Prvo bootanje i postavke ====
Stavite karticu u Raspberry, pronađite ga na mreži i SSH-om se spojite.
sudo raspi-config
- expand-ajte particiju ([7] Advanced options -> A1 Expand filesystem)
- uključite SPI ([5] Interfacing options -> P4 SPI)
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''
==== Resetiranje RAK831 modula pri bootanju ====
**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''
==== Instaliranje podrške za TTN iC880a-based LoRa gateway ====
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''
===== Registranje gatewaya na The Things Network =====
Ako ga već nemate, kreirajte account i ubacite podatke o gatewayu.
https://www.thethingsnetwork.org/docs/gateways/registration.html
* Uključite checkbox ''I'm using the legacy packet forwarder'' i upišite vaš ''EUI''.
* Frequency plan: ''Europe 868Mhz''
* Router: ''ttn-router-eu''
* Location: izaberite na mapi
===== Provjera statusa =====
systemctl status ttn-gateway.service
sudo apt-get install tcpdump
sudo tcpdump -AUq port 1700
sudo tail -f /var/log/syslog
==== Korisni linkovi ====
* https://www.hackster.io/naresh-krish/getting-started-with-the-rak-831-lora-gateway-on-rpi-zero-w-c95fed
* https://www.hackster.io/naresh-krish/getting-started-with-the-rak-831-lora-gateway-and-rpi3-e3351d
* https://yadi.sk/d/lN18X97U3NUYbq
* https://docs.wixstatic.com/ugd/eccc1a_d43b3b29dfff4ec2b00f349ced4225c4.pdf
* http://www.ftn.kg.ac.rs/download/SIR/SIR%20Nikola%20Jovanovic%20879_2014.pdf
* https://github.com/hallard/RAK831-Zero
* https://www.thethingsnetwork.org/labs/story/rak831-lora-gateway-from-package-to-online
* https://github.com/ttn-zh/ic880a-gateway/wiki
* https://github.com/kersing/gateway-workshop
* https://github.com/jpmeijers/ttn-resin-gateway-rpi
* https://github.com/ch2i/LoraGW-Setup
* https://os.mbed.com/docs/v5.8/reference/building-your-own-private-lora-network.html
* http://irnas.eu/other%20projects/2018/04/17/irnas-outdoor-lorawan-gateway
* https://www.youtube.com/watch?v=wnHwWGqUUyc