Instalación del Hardware
Resulta muy sencilla realizar la instalación física de un gateway LORIX One. Simplemente hemos de conectar un cable de red al gateway y en el otro extremo usar el inyector POE, conectando el transformador en la toma de corriente y el latiguillo de red al switch.
El cable de datos del inyector POE debe conectarse al enrutador / switch / toma de red y luego colocal el cable de un transformador de alimentación de 9-50V de CC en en la toma POWER del inyector POE. Por último, conecte su cable de red por un lado en el inyector POE y por el otro en la puerta de enlace como se muestra en la imagen de arriba.
Configuración del sistema y configuración de red
Al sacarlo de la caja, la configuración predeterminada de la LORIX One es la siguiente:
Dirección IP estática: 192.168.1.50
Máscara de red: 255.255.255.0
Gateway de red: 192.168.1.1
Esto significa que si la red no está configurada en 192.168.1.x, no podrá conectarse al dispositivo. Si no puede conectarse porque su red no es la misma, tiene 2 opciones:
- Use un cable USB para conectarse desde su ordenador al LORIX One y luego use un software de terminal (CoolTerm, Putty, ….) para conectarse usando el serial. (El conector mini-USB de LORIX One actúa como un convertidor USB a puerto serie. Es como si estuviera conectado directamente a la consola. Consulte la sección 6 del manual del usuario.
- Conecte el LORIX One a un concentrador / conmutador con la conexión Ethernet de su ordenador en el mismo conmutador y configure la dirección IP de su ordenador para que sea una dirección estática como por ejemplo 192.168.1.10. Luego podrá conectarse con SSH a 192.168.1.50, pero su ordenador ya no tendrá acceso a Internet (excepto si está conectado también a través de WiFi). Si quiere evitar dolores de cabeza, utilice la primera opción. En caso de acceder por red, una vez que el dispositivo LORIX esté accesible (tenemos respuesta a ping 192.168.1.50), conéctese con ssh (el nombre de usuario es admin, no root) y la contraseña predeterminada es lorix4u.
ssh admin@192.168.1.50
Al entrar podemos ver algunas cosas interesantes:
El kernel de Linux es 4.4, el sistema de archivos es UBIFS, y podemos ver que hay bastante memoria flash disponible.
Lo primero es cambiar la contraseña predeterminada para el usuario administrador con el siguiente comando:
passwd
Entonces podemos cambiar el nombre del gateway o hostname con el comando nano:
sudo nano /etc/hostname
Para salir del editor pulse CTRL-X y responda yes para guardar los cambios.
Then I changed .bashrc file to have great colored prompt and some basic aliases
admin@sama5d4-lorix-one:~ $ nano ~/.bashrcEste es mi nuevo archivo .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.Ok. Ahora sólo se necesita cambiar la configuración de red para que encaje en sus necesidades. En este ejemplo he cambiado a DHCP la obtención de la dirección IP para la Lorix One y he hecho una reserva en mi router, pero este paso dependerá lógicamente de la configuración de su red.
#export PS1=’\h:\w\$ ‘
export PS1=’\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ‘
umask 022
# You may uncomment the following lines if you want `ls’ to be colorized:
export LS_OPTIONS=’–color=auto’
eval `dircolors` alias ls=’ls $LS_OPTIONS’ alias ll=’ls $LS_OPTIONS -l’ alias l=’ls $LS_OPTIONS -lA’
# Some more alias to avoid making mistakes:
# alias rm=’rm -i’
# alias cp=’cp -i’
# alias mv=’mv -i’
Para ello, basta con editar el archivo /etc/network/interface, comentando la configuración estática con # y quitándolo para activar el DHCP..
Tenga en cuenta que si configura DHCP y no realiza una reserva en su servidor DHCP o router, necesitará ir a la lista de concesiones DHCP para ver la dirección IP asignada a su Lorix.
Mi nuevo archivo queda así:
# /etc/network/interfaces — configuration file for ifup(8), ifdown(8)ya podemos reiniciar y cruzar los dedos...
# The loopback interface auto lo iface lo inet loopback
# Main wired interface
auto eth0 iface eth0 inet dhcp
# iface eth0 inet static
# address 192.168.1.50
# netmask 255.255.255.0
# gateway 192.168.1.1
# dns-nameservers 192.168.1.1
admin@sama5d4-lorix-one:~ $ sudo reboot; logout
Yo reservé la dirección IP 192.168.1.25 en mi router y tras reiniciar he podido conectarme sin problemas a la nueva IP con mi nueva password.
Configurando el gateway para TTN
Una vez que hayamos conectado la Lorix a la red y a Internet, podemos realizar el trabajo de configuración en el backend de The Things Network (TTN).
Por defecto, LORIX se conecta a Loriot por lo que lo primero es parar el servicio mediante el script clouds-manager.sh
admin@ttn-gw05:~ $ sudo /etc/init.d/clouds-manager.sh stopConfigure TTN con este mismo script pero recuerde seleccionar Yes para autostary el cloud de TTN.
Password:
Stopping cloud ttn… stopped
/opt/lorix/clouds/ttn/poly_pkt_fwd (pid 909)
timeout during wait for stop stopped
/opt/lorix/clouds/ttn/poly_pkt_fwd (pid 909)
done.
admin@ttn-gw05:~ $ /etc/init.d/clouds-manager.sh configureAhora sólo tenemos que configurar esta Lorix como gateway para TTN. Vamos a la carpeta de la cloud de TTN:
==========================================
| LORIX One clouds manager configuration |
==========================================
Actual configuration: autostart=true cloud=ttn
Do you want to enable autostart at boot time? [Yes|No] > Yes
Which cloud app. do you want to use ? [loriot|packet-forwarder|ttn] > ttn
New configuration: autostart=true cloud=ttn
admin@ttn-gw05:~ $ ^C
cd /opt/lorix/clouds/ttn/
Si utiliza una antena de interior (y sólo en ese caso), cambie la configuración global (la configuración por defecto es una antena de 4dB) haciendo lo siguiente:
admin@ttn-gw05:/opt/lorix/clouds/ttn $ cp EU_global_conf_2dBi_indoor.json global_conf.jsonSiendo honestos, no creo que sea una configuración que haya que cambiar; pero es lo que se recomienda... 😉
Ahora, salvamos el archivo de configuración /opt/lorix/clouds/ttn/local_conf.json y lo cambiamos
admin@ttn-gw05:~ $ cp local_conf.json local_conf.json.orgPuede cambiar el email, gateway ID si lo necesita y configurar la opción `fake_GPS` en false, ya que se puede posicionar el gateway más tarde en el Dashboard de TTN Dashboard para los gateways.
admin@ttn-gw05:~ $ nano cp local_conf.json
Aquí se puede ver un ejemplo del archivo de configuración:
{I just changed my gateway__ID, contact_mail and description. My gateway ID is always the GW number (remember my hostname, ttn-gw05 so GW number 5). So ID are nnnnMACADDRESS where first 4 digits is GW number, and the other the MAC Address. It’s my convention, you can leave default one if you want. It’s just a matter on knowing and identify my gateways.
/* Put there parameters that are different for each gateway (eg. pointing one gateway to a test server while the others stay in production) */
/* Settings defined in global_conf will be overwritten by those in local_conf */
“gateway_conf”: {
“gateway_ID”: “0005fcc23d0de8bd”,
“servers”: [ {
“server_address”: “router.eu.thethings.network”,
“serv_port_up”: 1700,
“serv_port_down”: 1700,
“serv_enabled”: true
} ],
“fake_gps”: false,
“ref_latitude”: 10,
“ref_longitude”: 20,
“ref_altitude”: -1,
“contact_email”: “contact@ch2i.eu”,
“description”: “ch2i-gw05-lorixone”
}
}
Oh, save back your config file, because any command opkg upgrade will reset to default (trust me I’ve done the error) by downloading new config file.
admin@ttn-gw05:~ $ cp local_conf.json local_conf.json.ch2i
Quizá, también podría haber definido el nombre del archivo de configuración en el script de inicio, quizá la próxima vez.
Cómo los servicios cloud están parados, quiero ver cual es la salida que se genera al lanzar el poly packed forwarder, por lo que lo pruebo iniciándolo manualmente:
admin@ttn-gw05:/opt/lorix/clouds/ttn
$ sudo ./poly_pkt_fwd
Password:
*** Poly Packet Forwarder for Lora Gateway
*** Version: 2.1.0
*** Lora concentrator HAL library version info
*** Version: 3.1.0; Options: native;
***
INFO: Little endian host
INFO: found global configuration file global_conf.json, parsing it
INFO: global_conf.json does contain a JSON object named SX1301_conf, parsing SX1301 parameters
INFO: lorawan_public 1, clksrc 1 INFO: Configuring TX LUT with 16 indexes
INFO: radio 0 enabled (type SX1257), center frequency 867500000, RSSI offset -164.000000, tx enabled 1
INFO: radio 1 enabled (type SX1257), center frequency 868500000, RSSI offset -164.000000, tx enabled 0
INFO: Lora multi-SF channel 0> radio 1, IF -400000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 1> radio 1, IF -200000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 2> radio 1, IF 0 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 3> radio 0, IF -400000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 4> radio 0, IF -200000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 5> radio 0, IF 0 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 6> radio 0, IF 200000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora multi-SF channel 7> radio 0, IF 400000 Hz, 125 kHz bw, SF 7 to 12
INFO: Lora std channel> radio 1, IF -200000 Hz, 250000 Hz bw, SF 7
INFO: FSK channel> radio 1, IF 300000 Hz, 125000 Hz bw, 50000 bps datarate
INFO: global_conf.json does contain a JSON object named gateway_conf, parsing gateway parameters
INFO: gateway MAC address is configured to FCC23DFFFE0DE8BD
INFO: Found 2 servers in array.
INFO: Server 0 configured to “127.0.0.1”, with port up “1680” and port down “1681”
INFO: Server 1 configured to “iot.semtech.com”, with port up “1680” and port down “1680”
INFO: Found 5 system calls in array.
INFO: System command 0: “df -m”
INFO: System command 1: “free -h”
INFO: System command 2: “uptime”
INFO: System command 3: “who -a”
INFO: System command 4: “uname -a”
INFO: monitor hostname or IP address is configured to “127.0.0.1”
INFO: monitor port is configured to “2008”
INFO: ghost hostname or IP address is configured to “127.0.0.1”
INFO: ghost port is configured to “1918”
INFO: downstream keep-alive interval is configured to 10 seconds
INFO: statistics display interval is configured to 30 seconds
INFO: upstream PUSH_DATA time-out is configured to 100 ms
INFO: packets received with a valid CRC will be forwarded
INFO: packets received with a CRC error will NOT be forwarded
INFO: packets received with no CRC will NOT be forwarded
INFO: GPS serial port path is configured to “/dev/ttyAMA0”
INFO: SSH path is configured to “/usr/bin/ssh”
INFO: SSH port is configured to 22
INFO: HTTP port is configured to 80
INFO: NGROK path is configured to “/usr/bin/ngrok”
INFO: Reference latitude is configured to 10.000000 deg
INFO: Reference longitude is configured to 20.000000 deg
INFO: Reference altitude is configured to -1 meters
INFO: GPS is enabled
INFO: Using fake GPS coordinates instead of real.
INFO: Upstream data is enabled
INFO: Downstream data is enabled
INFO: Ghoststream data is disabled
INFO: Radiostream data is enabled
INFO: Statusstream data is enabled
INFO: Beacon is disabled
INFO: Monitor is disabled
INFO: Platform configured to “LORIX One”
INFO: Contact email configured to “operator@gateway.tst”
INFO: Description configured to “Update me”
INFO: found local configuration file local_conf.json, parsing it
INFO: redefined parameters will overwrite global parameters
INFO: local_conf.json does not contain a JSON object named SX1301_conf
INFO: local_conf.json does contain a JSON object named gateway_conf, parsing gateway parameters
INFO: gateway MAC address is configured to 0005FCC23D0DE8BD
INFO: Found 1 servers in array. INFO: Server 0 configured to “router.eu.thethings.network”, with port up “1700” and port down “1700”
INFO: downstream keep-alive interval is configured to 60 seconds
INFO: statistics display interval is configured to 3600 seconds
INFO: packets received with a valid CRC will be forwarded
INFO: packets received with a CRC error will NOT be forwarded
INFO: packets received with no CRC will NOT be forwarded
INFO: Reference latitude is configured to 10.000000 deg
INFO: Reference longitude is configured to 20.000000 deg
INFO: Reference altitude is configured to -1 meters
INFO: GPS is enabled
INFO: Using fake GPS coordinates instead of real.
INFO: Upstream data is enabled
INFO: Downstream data is enabled INFO: Ghoststream data is disabled
INFO: Radiostream data is enabled
INFO: Statusstream data is enabled INFO: Beacon is disabled
INFO: Monitor is disabled
INFO: Contact email configured to “contact@ch2i.eu”
INFO: Description configured to “ch2i-gw05-lorixone”
INFO: Successfully contacted server router.eu.thethings.network
INFO: [main] Starting the concentrator
INFO: [main] concentrator started, radio packets can now be received.
INFO: [down] Thread activated for all server router.eu.thethings.network
INFO: [up] Thread activated for all servers.
INFO: [down] for server router.eu.thethings.network PULL_ACK received in 32 ms
INFO: [up] PUSH_ACK for server router.eu.thethings.network received in 32 ms
^C
##### 2017-06-07 14:02:25 GMT #####
### [UPSTREAM] ###
# RF packets received by concentrator: 1
# CRC_OK: 100.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
# RF packets forwarded: 1 (16 bytes)
# PUSH_DATA datagrams sent: 1 (233 bytes)
# PUSH_DATA acknowledged: 100.00%
### [DOWNSTREAM] ###
# PULL_DATA sent: 1 (100.00% acknowledged)
# PULL_RESP(onse) datagrams received: 0 (0 bytes)
# RF packets sent to concentrator: 0 (0 bytes) # TX errors: 0 ### [GPS] ###
# Invalid gps time reference (age: 1496844145 sec)
# Manual GPS coordinates: latitude 10.00000, longitude 20.00000, altitude -1 m
##### END #####
INFO: End of upstream thread
INFO: End of downstream thread for server 0.
INFO: concentrator stopped successfully INFO: Exiting packet forwarder program
admin@ttn-gw05:/opt/lorix/clouds/ttn $
Todo debería haber funcionado a la primera. Pare el servicio usando CTRL-C, y luego reinicie el gateway (el servicio debería autoarrancar al inicio).
admin@ttn-gw05:/opt/lorix/clouds/ttn $ sudo reboot ; logout
Si todo ha ido bien, simplemente debemos conectarnos a la consola web de TTN en la opción Gateways
Registramos el nuevo gateway haciendo clic en register new gateway, seleccionando la opción I’m using the legacy packet forwarder (y sólo después de esto), introduciendo el gateway ID (el que aparece en el archivo de configuración), en el campo Gateway EUI.