Introducción a RAK 831 Lora Gateway y RPi3
Este proyecto lo lleva a través de todos los pasos necesarios para que su módulo RAK 831 Lora Gateway esté en funcionamiento con wifi como backhaul.
Historia
Introducción
Esta guía paso a paso está dirigida a desarrolladores que desean desarrollar su propia puerta de enlace lora utilizando el increíble módulo de interfaz de radio RAK831 Lora de RAK Wireless. La Guía asume conocimientos básicos del ecosistema Raspberry pi, el hardware y el SO Debian asociado. La Guía también asume conocimientos básicos de GPIO y periféricos presentes en Raspberry Pi. Entonces, comencemos:
¿Qué es LoRA?
LoRa Tecnología Alliance ™. LoRaWAN ™ es una especificación de red de área amplia de bajo consumo (LPWAN) destinada a dispositivos inalámbricos que funcionan con baterías en una red regional, nacional o global. LoRaWAN se centra en los requisitos clave de Internet de las cosas, como la comunicación bidireccional segura, la movilidad y los servicios de localización.
cortesía de Semtech
El diagrama anterior muestra las distintas partes de la arquitectura inalámbrica de Lora. Algunas de las partes importantes se explican brevemente a continuación:
Características clave de la tecnología LoRa y el protocolo LoRaWAN
· GEOLOCATION:permite aplicaciones de rastreo de baja potencia sin GPS
· LOW COST:Reduce los costos de tres maneras:inversión en infraestructura, gastos operativos y sensores de nodo final
· ESTANDARIZADO:La interoperabilidad global mejorada acelera la adopción y el despliegue de aplicaciones IoT y redes basadas en LoRaWAN
· LOW POWER:Protocolo diseñado específicamente para un bajo consumo de energía que extiende la vida útil de la batería hasta 20 años
· LARGO ALCANCE:la estación base única proporciona una penetración profunda en regiones urbanas / interiores densas, además de conectar áreas rurales a una distancia de hasta 30 millas
· SEGURO:cifrado AES128 integrado de extremo a extremo
· ALTA CAPACIDAD:Admite millones de mensajes por estación base, ideal para operadores de redes públicas que atienden a muchos clientes
El RAK 831 es una interfaz de LorA Radio; es decir, actúa como un receptor de paquetes de datos lora entrantes y los reenvía a un host de software / hardware de gestión de agregador. También puede transmitir paquetes de datos LoRA según la solicitud de la placa principal. En nuestro caso, una raspberry pi 3 es la placa de host que controla la interfaz de RAK 831.
Elección del backhaul
¿Qué es un backhaul? Backhaul se refiere a cómo se conectará la Raspberry Pi a Internet. Esta guía se centra en el uso de Wifi como backhaul, pero también puede usar Ethernet o 3G / 4G. Si tiene Ethernet disponible cerca de la puerta de enlace, entonces prefiéralo a WiFi o 3G / 4G. Esto se debe a que tener una señal de radio adicional dentro del gabinete causará ruido. El software puede manejar el entorno ruidoso, por lo que no es un gran problema, pero cuanto menos ruidoso, mejor. Puede combinar esta opción con Power-over-Ethernet para minimizar el cableado que llega hasta la puerta de enlace.
Por otro lado, si elige WiFi en lugar de Ethernet, intente usar un dongle con antena externa y mueva la antena fuera del gabinete para tener menos ruido dentro de la caja.
Configura el hardware:
Antes de conectar cualquier cosa y encender, hagamos las siguientes configuraciones en la raspberry pi y el módulo RAK 831:
FRAMBUESA PI
1) Obtén la placa raspberry pi 3 y prepara una tarjeta micro sd de 8 gb con el software raspbian. Incluso puede comprar una tarjeta sd noobs con el software precargado. Sobre cómo actualizar el sistema operativo en la tarjeta SD, siga las instrucciones aquí:https://www.raspberrypi.org/learning/hardware-guide/
2) Conecte la raspberry pi a una fuente de alimentación de 5v 2amps. ESTO ES MUY IMPORTANTE. El módulo lora puede generar un pico de 700 mA durante las transacciones inalámbricas activas y, por lo tanto, tiene un buen bloque de alimentación para alimentar el raspberry pi
frambuesa pi v3
RAK 831:
1) Antes incluso de encender la placa, obtenga las antenas que vienen en su kit y conéctelas al terminal de tornillo de antena. ESTO ES ESENCIAL.
Raspberry Pi v3, módulo RAK 831 y un nodo Lora
Detalles de la conexión:
Aquí hay una tabla que muestra cómo conectar el módulo rak831 con la raspberry pi:
Conexión de pines rpi v3 a rak 831 El mapa de serigrafía del rak 831 a los pines del rak 831.mapa de serigrafía del rak 831 a los pines del rak 831
Para comprender el diseño de los pines de Raspberry Pi, diríjase a:https://www.raspberrypi.org/documentation/usage/gpio/ para obtener más detalles
Notas:
- El pin de reinicio se puede conectar a cualquiera de los GPIO en el raspberry pi 3.
- Es esencial asegurarse de conectar los pines de la fuente de alimentación correctamente para evitar daños en la placa RAK 831.
Habilitar SPI:
El periférico SPI no está encendido por defecto. Para habilitarlo, haga lo siguiente.
- Ejecute sudo raspi-config.
- Use la flecha hacia abajo para seleccionar 9 opciones avanzadas
- Flecha hacia abajo hasta A6 SPI.
- Seleccione Sí cuando le pida que habilite SPI . ,
- También seleccione sí cuando se le pregunte acerca de la carga automática del módulo del kernel.
- Utilice la flecha hacia la derecha para seleccionar el botón
.
- Seleccione sí cuando se le solicite reiniciar.
Raspi-config para SPI
El sistema se reiniciará. Cuando vuelva, inicie sesión e ingrese el siguiente comando
> ls / dev / * spi *
El Pi debería responder con
/dev/spidev0.0 /dev/spidev0.1
Estos representan dispositivos SPI en los pines 0 y 1 de habilitación del chip, respectivamente. Estos pines están cableados dentro del Pi. Por lo general, esto significa que la interfaz admite como máximo dos periféricos, pero hay casos en los que se pueden conectar en cadena varios dispositivos, compartiendo una única señal de habilitación de chip.
Suministra energía a la placa:
Al igual que con cualquier proyecto inalámbrico, tienden a requerir más energía de la que la placa principal puede proporcionar a través de los pines de suministro. Los dos esquemas siguientes enumeran cómo puede alimentar el RAK 831 y el raspberry pi 3.
1) Encienda el riel de 5v desde la Raspberry Pi
2) Encienda el riel de 5v en la Raspberry Pi y el RAK831 por separado
Instalación del software:
En la Raspberry pi, hagamos los siguientes pasos para instalar el software esencial:
- Habilite SPI:
Use la utilidad raspi-config para habilitar SPI ([5] Opciones de interfaz -> P4 SPI) y también expandir el sistema de archivos ([7] Opciones avanzadas -> A1 Expandir sistema de archivos):
$ sudo raspi-config
- Asegúrate de que git esté instalado
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git
- Administre su conexión wifi en el raspberry pi
- Configure las credenciales de wifi (marque aquí para obtener detalles adicionales)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Y agregue el siguiente bloque al final del archivo, reemplazando el SSID y la contraseña para que coincidan con su red:
network ={
ssid ="The_SSID_of_your_wifi"
psk ="Your_wifi_password"
}
- Clone el instalador e inicie la instalación
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~ / ic880a-gateway
$ cd ~ / ic880a-gateway
$ sudo ./install.sh spi
- El paso de instalación le preguntará si desea habilitar la configuración remota. Escriba "y" o "sí" y continúe con la instalación. Al comienzo de la instalación de la línea de comandos, el script le mostrará la puerta de enlace EUI, que es importante para los siguientes pasos. ¡TENGA EN CUENTA!
- Si desea utilizar la opción de configuración remota, asegúrese de haber creado un archivo JSON con el nombre de su puerta de enlace EUI (por ejemplo, B827EBFFFE7B80CD.json) en el repositorio de Gateway Remote Config aquí:https://github.com/ttn -zh / gateway-remote-config. Bifurque el repositorio, agregue su archivo
.json con la configuración adecuada y luego confirme el repositorio bifurcado. Una vez hecho esto, envíe una solicitud de extracción al repositorio principal y el archivo debería aparecer en el repositorio al día siguiente. A continuación, se muestra un ejemplo de json:
{
“gateway_conf”:{
“gateway_ID”:“la identificación que anotó en la salida de la consola install.sh”,
“servidores”:[
{
"Server_address":"el enrutador al que desea conectarse",
"serv_port_up":1700,
"serv_port_down":1700,
"serv_enabled":verdadero
}
],
"ref_latitude":la latitud de la puerta de enlace rak 831,
"ref_longitude":la longitud de la puerta de enlace rak 831,
"ref_altitude":40,
"contact_email":"correo electrónico de contacto del propietario de la puerta de enlace",
"descripción":"una breve descripción"
}
}
Nota:
Para obtener una lista de enrutadores válidos, consulte el enlace aquí:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- De forma predeterminada, el instalador cambia el nombre de host de su Raspeberry Pi a ttn-gateway (para evitar colisiones con otras Raspberry Pis en su red). Puede anular esto en el modo de configuración no remota.
- HURRAY tu puerta de enlace ahora debería funcionar. Asegúrese de reiniciar la puerta de enlace al día siguiente para que su archivo json se descargue correctamente en el RPi3.
- Tenga en cuenta que global_config.json en debe ajustarse según:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
para aquellos que buscan usar el mp_pkt_fwd en lugar del antiguo reenviador de paquetes de polietileno que se escucha aquí e instalar el mismo con las instrucciones provistas:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Nuevamente, puede ver el archivo global_conf..json en la raíz del proyecto, solo asegúrese de editar el archivo (las secciones de imp que se describen a continuación) y copiar el mismo en la carpeta bin después de la compilación.
Algunas entidades configurables en global_conf.json:
El archivo global_conf.json se puede encontrar en ./bin/global_conf.json desde la base del directorio de su proyecto después de que se haya ejecutado el script de instalación. Aquí hay una lista de algunas entidades que quizás desee editar en el archivo global_conf.json para su configuración de puerta de enlace particular:
1) Configuración “radio_0” o “radio_1”, especialmente el parámetro de Frecuencia y los parámetros de barrido de frecuencia mínima y máxima.
2) sección “gateway_conf”., Especialmente el ID de la puerta de enlace o el EUI de su puerta de enlace.
3) puerto hacia arriba y hacia abajo del servidor en el mismo objeto gateway_conf junto con la dirección de su servidor TTN de la dirección de su propio servidor de aplicaciones si está disponible.
Restableciendo el tablero:
Cada vez que iniciamos el raspberry pi, es una buena práctica restablecer el módulo lora RAK831 adjunto. Hay dos formas de hacerlo:
- A través de la secuencia de comandos de Shell:
Se puede escribir un pequeño script de shell para restablecer el RAK831 antes de que el controlador LoRa pueda acceder al hardware. El contenido del script de shell puede parecerse al siguiente ejemplo (que asume que el GPIO 17 (pin 11) de la Raspberry Pi está conectado al pin de reinicio del RAK831):
#! / bin / bash
echo “17”> / sys / class / gpio / export
echo “out”> / sys / class / gpio / gpio17 / direction
echo “1”> / sys / class / gpio / gpio17 / value
dormir 5
echo “0”> / sys / class / gpio / gpio17 / value
dormir 1
echo “0”> / sys / class / gpio / gpio17 / value
Estas líneas se pueden almacenar en un archivo llamado “rak831_reset.sh”. El usuario debe llamar a este script una vez después de cada arranque para que el concentrador IC esté limpio.
- A través de Wiring pi:
Si el sistema host es una Raspberry Pi, el usuario puede escribir una pequeña herramienta C para restablecer el RAK831. Para acceder a los pines GPIO de la Raspberry Pi existe una biblioteca llamada "wirePi" que se encarga de los detalles de bajo nivel. La biblioteca se puede descargar de http://wiringpi.com. Consulte este sitio para obtener instrucciones de instalación y uso. El contenido del archivo RAK831_reset.c puede tener el siguiente aspecto:
#include
#include
#define GPIO_RESET_PIN 0 // ¡ver el mapeo del cableadoPi!
int main () {
cableadoPiSetup ();
pinMode (GPIO_RESET_PIN, OUTPUT);
digitalWrite (GPIO_RESET_PIN, HIGH);
sleep (5);
digitalWrite (GPIO_RESET_PIN, LOW);
volver;
}
El usuario debe llamar a esta herramienta una vez después de cada arranque para que el concentrador IC esté limpio.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Registre la puerta de enlace a la red TTN:
Para que sus nodos envíen datos a la nube, TheThingsNetwork proporciona un servicio en la nube para analizar y almacenar los datos enviados por los nodos de lora a través de un lora
Leer más detalles:Introducción a RAK 831 Lora Gateway y RPi3
Proceso de manufactura
- Monitoreo de la temperatura ambiente con una Raspberry Pi y Nagios
- Monitoreo de la temperatura ambiente con Moteino's y Raspberry Pi
- La integración de los datos del sensor con el microprocesador Raspberry Pi
- 433MHz Smart Home Controller con Sensorflare y RaspberryPi
- Rastreo de rostro con movimiento horizontal / vertical con raspberry pi
- Aeroponía con Raspberry Pi y sensor de humedad
- Uso del sensor de radar pulsado A111 con una Raspberry Pi
- Introducción a TJBot
- $ 35 NanoPi K1 Plus es una computadora similar a una Raspberry Pi con el doble de RAM (y una CPU diferente)
- LoRa - Raspberry Pi - Gateway de un solo canal - ¡Barato!
- Introducción a RAK831 LoRa Gateway y RPi3