Loraenergysim
El marco consta de tres componentes principales, es decir, nodos, una interfaz aérea y una puerta de enlace. Los nodos envían mensajes a la puerta de enlace a través de la interfaz aérea. Las colisiones y los mensajes débiles se detectan en el componente de la interfaz de aire. Los paquetes no recolectados y fuertes se entregan a la puerta de enlace, mientras que un mensaje de enlace descendente se programará si el nodo solicita.

¿Cómo citar?
@INPROCEEDINGS{8885739,
author={G. {Callebaut} and G. {Ottoy} and L. {van der Perre}},
booktitle={2019 IEEE Wireless Communications and Networking Conference (WCNC)},
title={Cross-Layer Framework and Optimization for Efficient Use of the Energy Budget of IoT Nodes},
year={2019},
volume={},
number={},
pages={1-6},
} Otras publicaciones:
G. Callebaut, G. Ottoy and L. V. d. Perre, "Optimizing Transmission of IoT Nodes in Dynamic Environments,"
2020 International Conference on Omni-layer Intelligent Systems (COINS), 2020, pp. 1-5, doi: 10.1109/COINS49042.2020.9191674.
¿Cómo usar?
La fuente del marco se encuentra en la carpeta Framework . La carpeta de Simulations contiene algunos ejemplos.
Flujo de trabajo general
Para comparar diferentes settings/configurations , es imperativo que las ubicaciones de los nodos sean las mismas para todas las simulaciones. Por lo tanto, un archivo generate_locations.py se incluye en los ejemplos.
Flujo de trabajo:
- Definir su configuración para un entorno de simulación, por ejemplo, iniciar el factor de propagación, la duración de la simulación (tiempo real), en el archivo GlobalConfig
- Genere sus ubicaciones ver aquí. Utilizará la configuración definida en el archivo GlobalConfig.
- Cree un archivo
Simulation.py como se detalla aquí.
Generar ubicaciones de nodos
Parámetros configurables:
- Número de ubicaciones, es decir, número de nodos IoT
- Tamaño de la célula, la célula es aquí un área rectangular. El tamaño de la celda determinará la longitud de los bordes en metros
- Número de simulaciones de Mono-Carlo para ejecutar. Como la simulación contiene un comportamiento aleatorio y no determinado y diferentes conjuntos de ubicaciones, promediar los resultados sobre múltiples simulaciones tendrá un significado más estadístico.
Para cada simulación, se genera un conjunto aleatorio de ubicaciones dentro del área y se almacena en la location_file , que es un parámetro definido en el archivo GlobalConfig.py .
Simulación
En el archivo de simulación, utilizará los bloques de construcción en el marco para simular un entorno específico y adquirir resultados como la energía consumida y el número de mensajes colisionados. Consulte Framework de la sección (a continuación) para parámetros y salida configurables. Consulte los comentarios en el Example>simulation.py sobre cómo escribir un archivo de simulación. En simulation.py carga las ubicaciones, especifique el objeto para contener los resultados y especifique lo que desea simular. En SimulationProcess , la simulación en sí misma se ejecuta. Se crea la puerta de enlace, los nodos se generan con sus parámetros Lora y su perfil de energía. Después de lo que se ejecuta la simulación. Después de completar una simulación, los resultados se extraen de los objetos y se devuelven, que se utilizarán en el archivo simulation.py .
El proyecto ahora se puede ejecutar primero ejecutando generate_locations.py y luego simulation.py .
Estructura
Lea primero el documento para tener una comprensión más detallada del marco con respecto a la operación y limitaciones de Lorawan.
Modelo de propagación
El modelo de propagación determina cómo los mensajes se ven afectados por el medio ambiente. Predice la pérdida de ruta, es decir, cuánto se atenúa la señal entre el transmisor y el receptor, para un entorno determinado. El PropagationModel.py contiene (actualmente) dos implementaciones:
- Modelo de la sombra de registro o modelo de pérdida de ruta log-Distance, donde los parámetros predeterminados se basan en el representante ITU-R P.2346-0 y J. Petajajarvi, K. Mikhaylov, A. Roivainen, T. Hanninen y M. Pettissalo, "en la cobertura de LPWAN (ITST), 2015, pp. 55-59, doi: 10.1109/ITST.2015.73777400.
- Costo231, que incluye más detalles sobre el medio ambiente, por ejemplo, alturas de edificios
Modelo SNR
Este modelo transforma la intensidad de la señal recibida (RSS) en una relación señal / ruido (SNR) por el método rss_to_snr . En este momento, el ruido solo se ve afectado por el ruido térmico. Esto da como resultado (db):
SNR = RSS - ( - 174 + 10 * log10 ( 125e3 ))
Parámetros de Lora
Aquí se incluyen todos los parámetros específicos del protocolo Lora (Lorawan) y el consumo de energía medido relacionados con estos parámetros.
Lorapacket
Los lorapackets se envían a través de la interfaz aérea desde los nodos a la puerta de enlace. LoRaPacket contiene una clase de mensaje de enlace ascendente y enlace descendente, incluidos metadatos e información relevantes sobre el estado del mensaje, por ejemplo, recibido, colisionado, ...
Perfil de energía
La clase de perfil de energía contiene el sueño, el procesamiento, la transmisión y la potencia recibida de un nodo. Esto puede ser diferente para cada nodo y se puede definir en el archivo simulation.py .
Nodo
La clase de nodo contiene toda la información sobre el consumo de energía, el número de mensajes envío, el envío de carga útil, las retransmisiones, ... Los nodos actúan como nodos de IoT reales, uniéndose a la red, espera, dormir, transmisión y recepción. Su comportamiento se determina en el archivo simulation.py principal.
Después de ejecutar la simulación, puede extraer la siguiente iniformación:
-
energy_per_bit . Esta es la cantidad de energía consumida para enviar un poco de datos. -
transmit_related_energy_per_bit . Esto solo contiene el gasto de energía en el modo de transmisión. -
transmit_related_energy_per_unique_bit . Esto solo contiene el gasto de energía en el modo de transmisión y las retransmisiones TX'ed no se cuentan con los bits transmitidos -
total_energy_consumed -
get_simulation_data :
series = {
'WaitTimeDC' : self . total_wait_time_because_dc / 1000 , # [s] instead of [ms]
'NoDLReceived' : self . num_no_downlink ,
'UniquePackets' : self . num_unique_packets_sent ,
'TotalPackets' : self . packets_sent ,
'CollidedPackets' : self . num_collided ,
'RetransmittedPackets' : self . num_retransmission ,
'TotalBytes' : self . bytes_sent ,
'TotalEnergy' : self . total_energy_consumed (),
'TxRxEnergy' : self . transmit_related_energy_consumed (),
'EnergyValuePackets' : self . energy_value
} Interfaz aérea
La interfaz aérea detecta colisiones y altera el objeto Lorapacket para que el nodo y la puerta de enlace sepan lo que sucedió durante la transmisión del mensaje. Emplea el modelo de propagación usado y el modelo SNR para determinar si la transferencia fue exitosa o no.
Puerta
En la puerta de enlace, la SNR recibida se verifica y los mensajes debajo del umbral requerido se marcan como débiles y no se rx'ed. La puerta de enlace también maneja los mensajes DL si el nodo solicita.
Propiedades configurables
- Energy_profile: EnergyProfile,
- Lora_Parameters,
- Sleep_time,
- Process_time,
- ADR,
- ubicación,
- Payload_size,
- confirmado_messages = verdadero
Lo que se rastrea actualmente
- 'Waittimedc': total_wait_time_because_dc
- 'NodlReceive': num_no_downlink,
- 'Uniquepackets': num_unique_packets_sent,
- 'Totalpackets': paquetes_sent,
- 'Chiredpackets': num_collided,
- 'Retransmitedpackets': num_retransmission,
- 'Totalbytes': bytes_sent,
- 'TotalEnergy': Total_energy_consumed (),
- 'Txrxenergy': transmit_related_energy_consumed (),
Errores comunes
P: No puedo encontrar globaconfig, ubicaciones, ....
R: Asegúrese de que el marco de las carpetas y las simulaciones estén marcadas como raíz de origen. Para PyCharm, haga clic derecho en el directorio de carpeta> Marcos como> raíz de origen
P: Sin salida en Ipython/Spyder
R: El código se ejecuta en Parralel de forma predeterminada y la salida STD no se maneja bien en ese caso. Puede ejecutar el código de manera secuente, consulte los comentarios en Ejemplo/Simulation.py con respecto a la función Pool.map en la parte inferior.
Trabajo académico usando nuestro simulador
Citado en.
Simulador utilizado en:
- F. de Rango, D. Stumpo y A. Iera, "Asignaciones de canal de la región de interferencia consciente de una red lora escalable", 2024 20ª Conferencia Internacional sobre Inalámbrica y Computación Móvil, Redes y Comunicaciones (WIMOB), París, Francia, 2024, pp. 19-24, DOI: 10.1109/WIMOB61911.2024.1070310.
- GL Scapin, G. Alvarez, N. Quiroga, F. Collado y Ja Fraire, "Evaluación de rendimiento de las redes de Lorawan DTS-IoT: modos de operación y colocación del servidor," 2024 Congreso bienal IEEE de IEEE de Argencon), San Nicolás de Los Arroyos, Argentina, 2024, pp. 1-8, doi: Doi::: Doi:: Doi:: Argencon) 10.1109/argencon62399.2024.10735884.
- Park, G., Lee, W. y Joe, I. (2020). Optimización de recursos de red con aprendizaje de refuerzo para redes de área de baja potencia. EuroSip Journal on Wireless Communications and Networking, 2020 (1), 1-20.
- L. Beltramelli, A. Mahmood, P. Österberg, M. Gidlund, P. Ferrari y E. Sisinni, "Eficiencia energética de la comunicación de Lorawan ranurada con sincronización fuera de banda", en IEEE Transactions on Instrumentation and Medeement, vol. 70, pp. 1-11, 2021, arte no. 5501211, doi: 10.1109/tim.2021.3051238.
- Thoen B, Callebaut G, Leenders G, Wielandt S. Una plataforma LPWAN desplegable para aplicaciones IoT de bajo costo y limitadas con energía. Sensores. 2019; 19 (3): 585. https://doi.org/10.3390/s19030585
- T. Fedullo, A. Morato, F. Tramarin, P. Bellagente, P. Ferrari y E. Sisinni, "La transmisión adaptativa de Lorawan explotando el aprendizaje de refuerzo: el caso industrial", 2021 IEEE International Workshop on Metrology for Industry 4.0 y IoT (Metroind4.0 e IoT), Roma, Italia, 2021, Pp. 671-61-6-61, doi: doi: 10.1109/metroind4.0iot51437.2021.9488498.
- Leenders G, Callebaut G, Ottoy G, van der Perre L, de Strycker L. Un protocolo multi-salto Lora de bajo consumo a través del muestreo de preámbulo para la teledetección. Sensores. 2023; 23 (11): 4994. https://doi.org/10.3390/s23114994
- Acosta-García, L., Aznar-Poveda, J., Garcia-Sanchez, AJ, Garcia-Haro, J. y Fahringer, T. (2023). Política de transmisión dinámica para mejorar el rendimiento de la red de Lora: un enfoque de aprendizaje de refuerzo profundo. Internet de las cosas, 24, 100974.
- G. Leenders, G. Ottoy, G. Callebaut, L. van der Perre y L. de Strycker, "Un protocolo de Lora Multi-Hop de Lora de energía a través del muestreo de preámbulo", 2023 IEEE Wireless Communications and Networking Conference (WCNC), Glasgow, Reino Unido, 2023, págs. 10.1109/WCNC55385.2023.10118770.
- E. Sisinni et al., "Una nueva estrategia adaptativa de Lorawan para aplicaciones de medición inteligente", 2020 Workshop International IEEE sobre metrología para la industria 4.0 y IoT, Roma, Italia, 2020, pp. 690-695, doi: 10.1109/metroind4.0iot48571.2020.9138226.
- T. Fedullo, A. Mahmood, F. Tramarin, A. Morato, M. Gidlund y L. Rovati, "Explotando el control de acceso medio híbrido y las estrategias de retransmisión para superar las limitaciones de ciclo de trabajo en las redes de sensores basadas en Lora," 2023 IEEE International Instrumentation and Medicement Technology Conference (I2MTC), Kuala Lumpur, Malaysia, 2023, 2023, PP. 01-06, doi: 10.1109/i2mtc53148.2023.10176039.
- F. de Rango, A. Lipari, D. Stumpo y A. Iera, "Cambio dinámico en Lorawan en múltiples puertas de enlace y carga de tráfico pesado", 2021 IEEE Global Communications Conference (GlobeCom), Madrid, España, 2021, pp. 1-6, DOI: 10.1109/Globecom46510.2021.9685009.
- D. Stumpo, F. De Rango, F. Buffone and M. Tropea, "Performance of Extended LoRaEnergySim Simulator in supporting Multi-Gateway scenarios and Interference Management," 2022 IEEE/ACM 26th International Symposium on Distributed Simulation and Real Time Applications (DS-RT), Alès, France, 2022, pp. 135-142, doi: 10.1109/ds-rt55542.2022.9932063.
- G. Callebaut, G. Ottoy y LV d. Perre, "Optimización de la transmisión de nodos IoT en entornos dinámicos", Conferencia Internacional 2020 sobre sistemas inteligentes omni-capas (monedas), Barcelona, España, 2020, pp. 1-5, doi: 10.1109/monedas49042.2020.9191674.
- Križanović, v.; Grgić, K.; Spišić, J.; Žagar, D. Un monitoreo ambiental de eficiencia energética avanzada en la agricultura de precisión utilizando redes de sensores inalámbricos basadas en Lora. Sensores 2023, 23, 6332.
- Zhang, Jiayue. "Directrices de diseño de un protocolo de comunicación de baja potencia para dispositivos de energía cero". (2023).
- Stumpo, Daniele, Floriano de Rango y Francesco Buffone. "Extender el simulador de Loraenergysim para admitir la gestión de interferencias en escenarios de IoT multi-gateway". (2022).
- T. Fedullo, A. Morato, F. Tramarin, P. Ferrari y E. Sisinni, "Sistemas de medición inteligentes que explotan a Lorawan adaptativo bajo limitaciones de consumo de energía: un enfoque RL" 2022 IEEE Taller Internacional de Metrología para la Industria 4.0 e IOT (Metroind4.0 & IoT), Trento, Italia, 2022, PP. 10.1109/metroind4.0iot54413.2022.9831487.