Gateway LORA TTN Cat

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Referències

El que ha seguit el Jordi Binefa: RAK-831 (buscar la millor oferta per AliExpress)

Instal·lació

Finalment he comprat: Lora Gateway concentrador Kit de módulo, RAK831, base en SX1301, 433/470/868/915 MHz, Wireless Transmisión de espectro ensanchado

i segueixo l'enllaç de hackster.io (no! millor seguir els passos del tutorial de thethingsnetwork.org, que fa una instal.lació NO remota)

Com que faig la instal.lació no remota, aquest fitxer de fet no cal, i les dades de latitud, longitud i altitud i altres me les demana per consola.

Fitxer B827EBFFFE007B36.json (aquest fitxer no caldrà si faig la instal·lació no remota):

{ 
	"gateway_conf": { 
		"gateway_ID": "B827EBFFFE007B36", 
		"servers": [ 
			{ 
				"server_address": "router.eu.thethings.network", 
				"serv_port_up": 1700, 
				"serv_port_down": 1700, 
				"serv_enabled": true 
			} 
		], 
		"ref_latitude": 41.4017706, 
		"ref_longitude": 2.1615324, 
		"ref_altitude": 18, 
		"contact_email": "joanqc@gmail.com", 
		"description": "Joan Quintana-joanillo Gateway test. Barcelona-Eixample" 
	} 
}

Com es comenta en el tutorial, hem d'assegurar-nos de què quan arrenqui la RPi3 també es faci un reset del mòdul de LORA RAK831: (which assumes that the GPIO 17 (pin 11) of the Raspberry Pi is connected to the reset pin of the RAK831). S'ha d'executar el següent script en l'arrencada del sistema:

#!/bin/bash
echo "comenca el reset"
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
echo "final del reset"

compte! amb la connexió dels pins. El pin de reset del RAK831 va al pin11 de la Raspberry Pi (que és el GPIO17 com indica el script). Per tant, hi ha un canvi respecte les connexions que indica el tutorial.

Aquest script s'ha d'executar en l'inici del sistema. La millor manera és:

$ cp rak831_reset.sh /etc/init.d/rak831_reset.sh
$ sudo update-rc.d rak831_reset.sh defaults

L'altra manera que ho havia fet al principi és ficar en el fitxer .bashrc en la última línia:

sudo bash /home/pi/rak831_reset.sh

Però el .bashrc s'executa no en l'inici del sistema, sinó en l'inici de sessió. I aleshores em trobava que quan feia una sessió SSH també s'executa, però com que el dispositiu/pin està ocupat protesta, i de fet deixa de funcionar el gateway (que de fet tornava a recuperar el funcionament quan sortia de la sessió). Per tant, la manera correcta és ficar el script a /etc/init.d.

Registre del Gateway a la xarxa de TTN. Primers resultats

Seguim els passos per registrar el gateway:

i aquí és important We check the box saying I'm using the legacy packet forwarder, doncs em permetrà ficar el EUI de la meva gateway.

i fico la informació d'on està la meva gateway (lat, long, altura, propietari, descripció, marca,...)

Descripció: Joan Quintana (joanillo) Gateway (Gràcia-Barcelona)

A la consola de thethingsnetwork.org he de veure que el gateway està correcte, i potser podria veure tràfic, però si el tinc a l'interior i amb l'antena senzilla que porta de sèrie el RAK831 és normal que no vegi res.

Com es comenta en l'enllaç, per monitoritzar el bon funcionament del Gateway tinc vàries opcions:

$ systemctl status ttn-gateway.service

ttn-gateway.service - The Things Network Gateway
   Loaded: loaded (/lib/systemd/system/ttn-gateway.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-09-04 20:37:39 UTC; 12min ago
 Main PID: 314 (start.sh)
   CGroup: /system.slice/ttn-gateway.service
           ├─314 /bin/bash /opt/ttn-gateway/bin/start.sh
           └─649 ./poly_pkt_fwd

set 04 20:48:12 ttn-gateway ttn-gateway[314]: # PULL_DATA sent: 3 (100.00% acknowledged)
set 04 20:48:12 ttn-gateway ttn-gateway[314]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
set 04 20:48:12 ttn-gateway ttn-gateway[314]: # RF packets sent to concentrator: 0 (0 bytes)
set 04 20:48:12 ttn-gateway ttn-gateway[314]: # TX errors: 0
set 04 20:48:12 ttn-gateway ttn-gateway[314]: ### [GPS] ###
set 04 20:48:12 ttn-gateway ttn-gateway[314]: # Invalid gps time reference (age: 1536094063 sec)
set 04 20:48:12 ttn-gateway ttn-gateway[314]: # Manual GPS coordinates: latitude 41.40177, longitude 2.16153, altitude 18
set 04 20:48:12 ttn-gateway ttn-gateway[314]: ##### END #####
set 04 20:48:12 ttn-gateway ttn-gateway[314]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 81
set 04 20:48:12 ttn-gateway ttn-gateway[314]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 84
...
$ sudo apt-get install tcpdump

$ sudo tcpdump -AUq port 1700

listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:53:07.198051 IP 192.168.1.39.56338 > 52.169.76.203.1700: UDP, length 12
E..(.z@.@.>....'4.L.......'4.6...'....{6
20:53:07.294854 IP 52.169.76.203.1700 > 192.168.1.39.56338: UDP, length 4
E.. .c@.1..&4.L....'......D..6..

El que fa en aquest cas és capturar el tràfic de la xarxa wlan0, que és el tràfic entre la gateway a thethingsnetwork, en els dos sentits.

També:

$ sudo tail -f /var/log/syslog

Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # PULL_DATA sent: 3 (100.00% acknowledged)
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # RF packets sent to concentrator: 0 (0 bytes)
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # TX errors: 0
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: ### [GPS] ###
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # Invalid gps time reference (age: 1536094513 sec)
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: # Manual GPS coordinates: latitude 41.40177, longitude 2.16153, altitude 18 m
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: ##### END #####
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: INFO: [up] PUSH_ACK for server router.eu.thethings.network received in 99 ms
Sep  4 20:55:29 ttn-gateway ttn-gateway[314]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 84 ms

(refresca cada pocs segons)

Aquesta és la informació que estic registrant sense que hi hagi tràfic (no hi ha cap node LORA comunicant-se amb el meu gateway).

Comunicació amb un node LORA (TTGO)

Si ja tinc comunicació amb un node lora, vull veure com afecta això en la sortida de les consoles anteriors.

Per veure les dades del node (payload) en la consola de thethingsnetwork, s'ha d'anar a Application > Data. Però el cas és que m'he tornat boig perquè es vegin les dades, ara apareixien, ara no. És com si fos inestable la presentació dels resultats. NOTA: per tal de què es vegin les dades, s'ha de fer el reset frame counters del device.

Les dades no s'han de buscar en el payload de la Gateway, on sembla que estan encriptades.

Dins de Application, hi ha les opciosn payload format i integration. Aquestes són les opcions interessants per tal de poder processar les dades (TBD).

Per tal de poder veure l'abast de la comunicació, n'hi ha prou desplaçar-se amb el mòbil on tenim oberta la web de TTN i podem veure com entren les dades del dispositiu. D'aquesta manera també podem comparar antenes, senzillament desplaçant-nos.

Qualitat del senyal: SNR i RSSI

The LoRa device measures two things during packet reception, the received signal strength indicator (RSSI) measured in dBm, and the signal to noise ratio (SNR) measured in dB.

A 10m de distància, la meva senyal és de -66. Quant més gran sigui aquest valor (negatiu), pitjor. El SNR és de 9 (depèn del paquet). Cada vegada que es rep el paquet, aquesta informació està disponible en la trama del tràfic de la gateway.

How is your SNR? If it's really good (7 or higher) the low RSSI might not matter.

Per anar bé, el concentrador hauria d'estar shielded, per tal de tenir el menys interferències possibles amb totes les ones i la wifi. La única cosa que hauria de sortir de la capsa és l'antena.

low RSSI might be a sign of ... or high loses on antenna path

That's what I thought initially. Did you solder quickly? The board seems to be quite sensitive.
You can try a quick shielding test by putting it in a cardboard box covered in aluminum foil. You'll have to electrically connect the foil to the iC880a ground (antenna ground will do nicely).

(el ic880a és un concentrador igual que el RAK831).

ToDo

  1. Avariguar l'eficiència de l'antena, per poder comparar antenes.
  2. Si tinc un node (que té pantalla OLED), com puc saber des del node que estic fent la comunicació correctament (el que vull saber és l'abast de l'antena).

Test de distàncies: Lora range test:

Lora Node amb construcció d'antena i alimentació solar:


creat per Joan Quintana Compte, setembre 2018

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines