Esta aplicación IoT2050 tiene la tarea de recopilar datos descentralizados y transmitirlos a través de la radio. El LPWAN Technology Long Range (LORA) se utiliza para este propósito. El IoT2050 sirve como una puerta de enlace de Lorawan. La Lorawan Global y Libre (Red de Área de Long Rango Wide) de la red Things o The Things Stack Community Edition se usa como servidor de red. Este manual describe la estructura de software y hardware de la puerta de enlace (la configuración y la función de los dispositivos finales (por ejemplo, sensores) no se explica en este manual, porque depende del propósito individual de la aplicación):

Se requieren los siguientes componentes de hardware para la aplicación:
También puede ver todas las piezas individuales en la lista de pedidos.
La interfaz Arduino Uno del Simatic IoT2050 se utiliza para integrar el concentrador IC880A. Se requiere un escudo adaptador para este propósito, que combina las asignaciones de pin. El concentrador se suministra con 5V.
El escudo del adaptador utilizado en esta aplicación fue auto-construido. Los componentes requeridos se pueden tomar de la lista de pedidos. Se puede encontrar más información sobre la estructura en el archivo del proyecto (.pro), el archivo esquemático (.sch) y el archivo de diseño (.kiCAD_PCB).
El concentrador Lorawan IC880A es un módulo de transmisor/receptor de alto rendimiento multicanal diseñado para recibir varios paquetes Lora simultáneamente utilizando diferentes factores de propagación en múltiples canales. El módulo del concentrador IC880A se puede integrar en una puerta de enlace como una parte delantera completa de RF de esta puerta de enlace.
La siguiente figura muestra la estructura de hardware completa de la puerta de enlace de Lorawan. Para conectar la antena (2 DBI Dipolo Antena 863-870MHz con RP SMA) al módulo IC880A, se usa un adaptador U.FL para revertir el adaptador SMA. El concentrador está conectado a la interfaz Arduino Uno del IoT2050 junto con el escudo adaptador.

El siguiente software se utiliza para este manual:
Para la primera puesta en marcha del IOT2050, consulte la configuración. Puede obtener más ayuda en el foro Simatic IoT2050.
Después de trabajar a través de la configuración, se debe realizar una actualización para el sistema y se debe instalar GIT . Los siguientes comandos se ejecutan para esto:
sudo apt-get update
sudo apt-get install git
Establezca una conexión SHH a través de Putty y use los siguientes comandos:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


Para clonar la última versión de la estación Lora Basics ™ de GitHub, use los siguientes comandos:
cd /home
git clone https://github.com/lorabasics/basicstation.git
Ahora el archivo setup.gmk , que forma parte del clon, debe adaptarse para el IOT2050 para almacenar los directorios correctos para la cadena de herramientas. Para hacer esto, abra el archivo en un editor utilizando los siguientes comandos:
cd /home/basicstation/
nano setup.gmk
Con la combinación clave CTRL+C se puede mostrar una especificación de línea en el nano-editor:

Las líneas 55 - 66 deben comentarse con # y las líneas 68 - 72 deben cambiarse a lo siguiente:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
Además, la línea 76 debe editarse de la siguiente manera:
export LD_LIBRARY_PATH=/usr/local/lib
Guarde y cierre el archivo con los siguientes comandos:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
Para construir la estación de reenvío del paquete, use el siguiente comando en el directorio /home/basicstation/ ::
make platform=rpi variant=std
Después de que se haya compilado la estación básica, ha aparecido una nueva carpeta llamada build-rpi-std con cuatro subcarpetas. Puede encontrar la station binaria compilada en el bin de subcarpetas.
A menos que se especifique lo contrario, los siguientes comandos y acciones siempre se ejecutan en este directorio ( /home/basicstation/build-rpi-std/bin/ ).
Se necesitan algunas configuraciones para la estación básica, que se especifican en la station.conf de archivos. Copie la estación de archivos lista.conf en el directorio (consejo: la herramienta WinsCP se puede usar para transferir los archivos).
La estación Lora Basics ™ debe tenerse con el servidor de red Lorawan® (LNS) para conectarse. Para este ejemplo, se utiliza el servidor de edición Community Edition de Stack con el puerto 8887. Esto se especifica en el archivo tc.uri . Copie el archivo listo para usar en el directorio.
Esto requiere un certificado raíz. El siguiente comando se puede usar para obtener un certificado y crear el archivo tc.trust directamente:
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
También puede usar otro certificado raíz, que debe insertarse en el archivo tc.trust sin los caracteres <> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
El módulo IC880A con el chip de banda base SX1301 debe reiniciarse cada vez que se enciende. Sin embargo, este reinicio no es realizado por el HAL del chip. Por lo tanto, un guión de Python está escrito para llevarlo a cabo externamente. Copie el script de Python IC880A_RESET.PY en el directorio. Posteriormente, el PIN 4 digital de E/S debe establecerse como salida, porque esto se usa como pin de reinicio:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

El siguiente paso es agregar un script de shell que ejecute el script Python. Este guión se ejecutará más tarde con el inicio del binario de la station . Copie el archivo preparado RESET_GW.SH en el directorio. En este script de shell, se llama el script Python creado previamente para el reinicio de hardware del concentrador. El script que ahora debe proporcionar los derechos ejecutables con el siguiente comando:
chmod 755 reset_gw.sh
Para obtener el EUI de la puerta de enlace para el registro en el servidor, la station de programa debe iniciarse una vez (la ejecución aún no es completamente funcional):
./station
El EUI de la puerta de enlace está compuesto por la dirección MAC del IOT2050 y se muestra en la salida de la consola después de que se haya iniciado la estación:

La aplicación se puede detener con la combinación clave CTRL+C .
Finalmente, para autorizar la puerta de enlace con The Things Stack Community Edition, se debe almacenar una clave API en un archivo llamado tc.key . Para hacer esto, la puerta de enlace debe estar registrada en la edición Comunitaria Things Stack. Esto se explica en los siguientes pasos: después de iniciar sesión en la página web, se selecciona la región. Después de eso se puede agregar una nueva puerta de enlace. Para esto, se debe ingresar una ID de puerta de enlace única, así como la EUI de la Gateway de la figura anterior. Además, se selecciona el plan de frecuencia para la región. Además, se puede seleccionar si el estado de la puerta de enlace es visible públicamente. Todas las configuraciones requeridas se muestran en la siguiente figura:

Después de registrar la nueva puerta de enlace, se debe generar una clave API para la autorización. Antes de generar la clave, se le asigna un nombre. Además, se les da derechos individuales para vincular como una puerta de enlace con un servidor de puerta de enlace para el intercambio de datos. Después de la creación de la clave API, debe copiarse y almacenarse con urgencia, porque está encriptada después y, por lo tanto, ya no es visible.


Use los siguientes comandos para construir el archivo tc.key y use la tecla API copiada previamente en lugar de xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
Esto completa la instalación y la configuración de la estación básica. Ahora la estación se puede comenzar manualmente con el comando:
./station
Si la instalación y la autenticación son exitosas, la estación comienza y la puerta de enlace se muestra como connected en la consola de la edición Community de Things Stack:

Puede recibir más información sobre el sitio web de las cosas de las cosas, agregando puertas de enlace.
Copie el script shell de shell preparado Start.sh, que llame al binario station , al directorio. El script debe recibir derechos ejecutables:
chmod 755 start.sh
Copie el archivo de servicio SystemD listo para usar IoT-2050-Lora-Gateway.service en el directorio /etc/systemd/system . Para cambiar a ese directorio, use el siguiente comando:
cd /etc/systemd/system
El archivo de servicio ahora se puede iniciar manualmente y probarse con el siguiente comando:
sudo systemctl start iot2050-lora-gateway.service
Después del inicio exitoso del servicio y la estación, se puede terminar con el siguiente comando:
sudo systemctl stop iot2050-lora-gateway.service
Para habilitar el AutoStart del Servicio, use el comando
sudo systemctl enable iot2050-lora-gateway.service
Después del próximo reinicio, la puerta de enlace se iniciará con cada arranque.
La puerta de enlace ahora está lista para usar. Los dispositivos finales ahora se pueden agregar a la aplicación a través de la edición Community Things Stack, que luego transmite datos a través de la puerta de enlace al servidor. Aquí puede encontrar algunos dispositivos finales posibles. Cómo agregar dispositivos finales en el servidor se describe aquí
Node-Red se usa para visualizar los datos recopilados. Se puede acceder al editor web a través de la dirección IP del IOT2050 y el puerto 1880. El nodo-rojo está en AutoStart de forma predeterminada en la imagen de ejemplo. Para acceder a él, abra un navegador en su PC conectado al IoT2050 y abra la URL http://<IP of the IOT2050>:1880/ .
Ahora el archivo Flows.json se puede importar a Node-Red:
Menu -> Import -> Select file for Upload

Los nodos deben ajustarse de la siguiente manera:
MQTT: inserte la dirección del servidor y el puerto de la pila de cosas en la pestaña de conexión. Para suscribir todos los mensajes establecer el tema en # .

Ingrese su nombre de usuario y el MQTT-API-Key como la contraseña . Puede generar este API-Key en los puestos de integraciones de su aplicación:



Nodo de análisis: en el nodo de parse de función se debe ajustar los diferentes device_id (dependiendo de la aplicación):

Descripción del flujo: para procesar los mensajes entrantes, primero se crea un objeto JavaScript. Luego, los enlaces ascendentes se analizan en el nodo de análisis de funciones para extraer los mensajes individuales de cada dispositivo final. Además, el nodo se extiende a tres salidas. Por lo tanto, cada mensaje se asigna a una salida y representa un dispositivo final. Usando la biblioteca del tablero y el nodo de calibre, estos se pueden integrar individualmente en un tablero.
El flujo previo a la construcción muestra un ejemplo de la combinación de tres dispositivos finales en el nodo de análisis. Las identificaciones deben ajustarse dependiendo de la aplicación y la configuración en la red Things.
Panel de control: para mostrar los datos, la paleta del tablero ahora se puede instalar y configurar individualmente:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
Finalización: para descargar el flujo al IOT2050, haga clic en el Deploy botón
Para abrir el tablero de nodo-rojo abre la URL http://<IP of the IOT2050>:1880/ui
Gracias por su interés en contribuir. Cualquiera es libre de informar errores, documentación poco clara y otros problemas con respecto a este repositorio en la sección de problemas. Además, todos son libres de proponer cualquier cambio en este repositorio utilizando solicitudes de extracción.
Si no ha firmado previamente el Acuerdo de Licencia de Contributor de Siemens (CLA), el sistema le solicitará automáticamente que lo haga cuando envíe su solicitud de extracción. Esto se puede hacer convenientemente a través de la plataforma en línea del Asistente de CLA. Una vez que se firme el CLA, su solicitud de extracción se borrará automáticamente y se preparará para fusionarse si todas las demás etapas de prueba tienen éxito.
Lea la información legal.