====== 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