LoraEnergysim
A estrutura consiste em três componentes principais, isto é, nós, uma interface de ar e um gateway. Os nós enviam mensagens para o gateway através da interface aérea. Colisões e mensagens fracas são detectadas no componente da interface aérea. Os pacotes não colididos e fortes são entregues no gateway, onde uma mensagem de downlink será agendada se solicitada pelo nó.

Como 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},
} Outras publicações:
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.
Como usar?
A fonte da estrutura está localizada na pasta Framework . A pasta de Simulations contém alguns exemplos.
Fluxo de trabalho geral
Para comparar diferentes settings/configurations , é imperativo que os locais dos nós sejam os mesmos para todas as simulações. Portanto, um arquivo generate_locations.py está incluído nos exemplos.
Fluxo de trabalho:
- Defina suas configurações para um ambiente de simulação, por exemplo, Iniciar fator de espalhamento, duração da simulação (tempo real), no arquivo globalConfig
- Gere seus locais, veja aqui. Ele usará as configurações definidas no arquivo globalConfig.
- Crie um arquivo
Simulation.py conforme detalhado aqui.
Gerar locais de nós
Parâmetros configuráveis:
- Número de locais, ou seja, número de nós da IoT
- Tamanho da célula, a célula é aqui uma área retangular. O tamanho da célula determinará o comprimento das bordas em metros
- Número de simulações de Monnto-Carlo para executar. Como a simulação contém comportamento aleatório e não determinado e diferentes conjuntos de localização, a média dos resultados em várias simulações terá um significado mais estatístico.
Para cada simulação, um conjunto aleatório de localizações dentro da área é gerado e é armazenado no location_file , que é um parâmetro definido no arquivo GlobalConfig.py .
Simulação
No arquivo de simulação, você usará os blocos de construção na estrutura para simular um ambiente específico e adquirir resultados como a energia consumida e o número de mensagens colididas. Consulte Framework da seção (abaixo) para obter parâmetros e saída configuráveis. Consulte os comentários no Example>simulation.py sobre como escrever um arquivo de simulação. Na simulation.py você carrega os locais, especifique o objeto para manter os resultados e especificar o que deseja simular. No SimulationProcess , a própria simulação é executada. O gateway é criado, os nós são gerados com seus parâmetros LORA e perfil de energia. Depois que a simulação é executada. Após a conclusão de uma simulação, os resultados são extraídos dos objetos e retornados, a serem usados no arquivo simulation.py .
O projeto agora pode ser executado pela primeira vez em execução generate_locations.py e depois simulation.py .
Estrutura
Leia primeiro o artigo para ter um entendimento mais detalhado da estrutura em relação à operação e limitações de Lorawan.
Modelo de propagação
O modelo de propagação determina como as mensagens são impactadas pelo ambiente. Ele prevê a perda de caminho, ou seja, quanto o sinal é atenuado entre o transmissor e o receptor, para um determinado ambiente. O PropagationModel.py contém (atualmente) duas implementações:
- Modelo de sombra do log ou modelo de perda de caminho de log-distância, onde os parâmetros padrão são baseados no Rep. ITU-R p.2346-0 e J. Petajajarvi, K. Mikhaylov, A. Roivainen, T. Hanninen e M. Pettissalo, "On the Coberning of Lpwans: Avaliação de faixas e um modelo de avaliação de canais e um canal para a participação de um dos dados (Itst), 2015, pp. 55-59, doi: 10.1109/itst.2015.7377400.
- Cost231, incluindo mais detalhes sobre o meio ambiente, por exemplo, alturas de construção
Modelo SNR
Este modelo transforma a força do sinal recebida (RSS) em uma relação sinal / ruído (SNR) pelo método rss_to_snr . Nesse momento, o ruído é afetado apenas pelo ruído térmico. Isso resulta em (dB):
SNR = RSS - ( - 174 + 10 * log10 ( 125e3 ))
Parâmetros Lora
Todos os parâmetros específicos para o protocolo Lora (Lorawan) e o consumo de energia medidos relacionados a esses parâmetros estão aqui incluídos.
Lorapacket
Os lorapackets são enviados sobre a interface de ar dos nós para o gateway. LoRaPacket contém uma classe de mensagens Uplink e Downlink, incluindo metadados relevantes e informações sobre o estado da mensagem, por exemplo, recebido, colidido, ...
Perfil de energia
A classe de perfil de energia contém o sono, o processamento, a transmissão e a potência recebida de um nó. Isso pode ser diferente para cada nó e pode ser definido no arquivo simulation.py .
Nó
A classe do nó contém todas as informações sobre o consumo de energia, número de mensagens enviadas, carga útil, envio, retransmissões, ... nós atuam como nós de IoT reais, juntando -se à rede, esperando, dormindo, transmitindo e recebendo. O comportamento deles é determinado no arquivo principal simulation.py .
Depois de executar a simulação, você pode extrair a seguinte iniforme:
-
energy_per_bit . Esta é a quantidade de energia consumida para enviar um pouco de dados -
transmit_related_energy_per_bit . Isso contém apenas os gastos com energia no modo de transmissão. -
transmit_related_energy_per_unique_bit . Isso contém apenas os gastos com energia no modo de transmissão e as retransmissões TX'ed não são contadas contra os 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
} Interface aérea
A interface aérea detecta colisões e altera o objeto Lorapacket para que o nó e o gateway saibam o que aconteceu durante a transmissão da mensagem. Emprega o modelo de propagação usado e o modelo SNR para determinar se a transferência foi bem -sucedida ou não.
Portal
No gateway, o SNR recebido é verificado e as mensagens abaixo do limite necessário são marcadas como fracas e não são RX'ed. O gateway também lida com mensagens DL, se solicitado pelo nó.
Propriedades configuráveis
- Energy_profile: EnergyProfile,
- Lora_parameters,
- Sleep_time,
- process_time,
- ADR,
- localização,
- payload_size,
- confirmed_messages = true
O que está atualmente rastreado
- 'Waittimedc': total_wait_time_because_dc
- 'Nodlreceived': num_no_downlink,
- 'UniquePackets': num_unique_packets_sent,
- 'Totalpackets': packets_sent,
- 'CollidedPackets': num_collided,
- 'Retransmittpackets': num_retransmission,
- 'Totalbytes': bytes_sent,
- 'TotalEnergy': total_energy_consumed (),
- 'TxrxEnergy': transmit_related_energy_consumed (),
Erros comuns
P: Não consigo encontrar Globaconfig, Locais, ....
R: Verifique se a estrutura e simulações das pastas estão marcadas como raiz de origem. Para PyCharm, clique com o botão direito do mouse no diretório da pasta> Mark como> raiz de origem
P: Nenhuma saída no ipython/spyder
R: O código é executado em Parralel por padrão e a saída STD não é bem tratada nesse caso. Você pode executar o código sequentemente, consulte os comentários no exemplo/simulation.py sobre o pool.map função na parte inferior.
Trabalho acadêmico usando nosso simulador
Citado em.
Simulador usado em:
- F. de Rango, D. Stumpo e A. IERA, "Atribuições de canais conscientes da região de interferência para uma rede LORA escalável", 2024 20ª Conferência Internacional sobre Computação, Rede e Comunicações sem fio e sem fio (WIMOB), Paris, França, 2024, pp. 19-24, Doi: 10.1109/Wimob611911.20.20.
- Gl Scapin, G. Alvarez, N. Quiroga, F. Collado e Ja Fraire, "Avaliação de desempenho das redes de Lorawan DTS-IIT: modos de operação e posicionamento do servidor, 2024 IEEE Bienal Congress de Argentina (Argencon), San Nicolás de Los Arroyos, Argentina 2024, 2024, PP. 10.1109/argEncon62399.2024.10735884.
- Park, G., Lee, W., & Joe, I. (2020). Otimização de recursos de rede com aprendizado de reforço para redes de área ampla de baixa potência. EURASIP Journal on Wireless Communications and Networking, 2020 (1), 1-20.
- L. Beltramelli, A. Mahmood, P. Österberg, M. Gidlund, P. Ferrari e E. Sisinni, "Eficiência energética da comunicação de Lorawan com fenda com sincronização fora da banda" nas transações IEEE sobre instrumentação e medição, vol. 70, pp. 1-11, 2021, Art no. 5501211, doi: 10.1109/tim.2021.3051238.
- THOEN B, CALLEBAUT G, LEENDERS G, WIELANDT S. Uma plataforma LPWAN implantável para aplicações de IoT com baixo custo e energia. Sensores. 2019; 19 (3): 585. https://doi.org/10.3390/S19030585
- T. Fedullo, A. Morato, F. Tramarin, P. Bellagente, P. Ferrari e E. Sisinni, "Transmissão de Lorawan adaptativa que explora o aprendizado de reforço: o caso industrial, 2021 IEEE Workshop International, Itália para a Indústria 4.0 e IoT (metroind4.0 e iot), Rome, Roma, Itália, 202, 202, 2021111111111111111111111111ods internacional: 2021 IEEE. 10.1109/metroind4.0iot51437.2021.9488498.
- Leenders G, Callebaut G, Ottoy G, Van der Perre L, De Strycker L. Um protocolo Lora Multi-HOP com eficiência energética através de amostragem de preâmbulo para sensoriamento remoto. Sensores. 2023; 23 (11): 4994. https://doi.org/10.3390/s23114994
- Acosta-Garcia, L., Aznar-Poveda, J., Garcia-Sanchez, AJ, Garcia-Haro, J., & Fahringer, T. (2023). Política de transmissão dinâmica para melhorar o desempenho da rede Lora: uma abordagem de aprendizado de reforço profundo. Internet das Coisas, 24, 100974.
- G. Leenders, G. Ottoy, G. Callebaut, L. van der Perre e L. de Strycker, "Um protocolo Lora Multi-HOP com eficiência energética por meio de amostragem de preâmbulo, 2023 IEEE Wireless Communications and Networking Conference (WELC), GLASGOW, United Kingdom, 2023. 10.1109/wcnc55385.2023.10118770.
- E. Sisinni et al., "Uma nova estratégia adaptativa de Lorawan para aplicações de medição inteligente", 2020 IEEE International Workshop sobre Metrologia para Indústria 4.0 & IoT, Roma, Itália, 2020, pp. 690-695, doi: 10.1109/Metroind4.0iot48571.20.20.952222.
- T. Fedullo, A. Mahmood, F. Tramarin, A. Morato, M. Gidlund e L. Rovati, "Explorando o controle de acesso médio híbrido e as estratégias de retransmissão para superar as limitações do ciclo de trabalho em redes de sensores à base de LORA. doi: 10.1109/i2mtc53148.2023.10176039.
- F. de Rango, A. Lipari, D. Stumpo e A. IERERA, "Dinâmica Switching em Lorawan sob vários gateways e carga de tráfego intenso", 2021 IEEE Global Communications Conference (Globecom), Madri, Espanha, 2021, pp.
- D. Stumpo, F. de Rango, F. Buffone e M. Tropea, "Desempenho do simulador estendido de LoraEnergysim no suporte a cenários de vários gados e gerenciamento de interferências," 2022 IEEE/ACM 26th Symposium International em simulação distribuída e aplicações em tempo real (DS-RT), ALS, France, 202, 202, 202, 202, 202. 10.1109/ds-rt55542.2022.9932063.
- G. Callebaut, G. Ottoy e LV d. Perre, "Otimizando a transmissão de nós de IoT em ambientes dinâmicos", 2020 Conferência Internacional sobre Sistemas Inteligentes da camada omni (Coins), Barcelona, Espanha, 2020, pp. 1-5, doi: 10.1109/Coins49042.2020.9191674.
- Križanović, V.; Grgić, K.; Spišić, J.; Žagar, D. Um monitoramento ambiental avançado eficiente em termos de energia na agricultura de precisão usando redes de sensores sem fio baseados em LORA. Sensores 2023, 23, 6332.
- Zhang, Jiayue. "Diretrizes de design de um protocolo de comunicação de baixa potência para dispositivos de energia zero". (2023).
- Stumpo, Daniele, Floriano de Rango e Francesco Buffone. "Estendendo o simulador de LoraEnergysim para apoiar o gerenciamento de interferências em cenários de IoT de vários gados". (2022).
- T. Fedullo, A. Morato, F. Tramarin, P. Ferrari e E. Sisinni, "Sistemas de medição inteligentes que exploram Lorawan adaptáveis sob restrições de consumo de energia: uma abordagem RL, 2022 IEEE Workshop International, Itália para a Indústria 4.0 e IoT (metroind4.0 & i4), Trinto. 10.1109/metroind4.0iot54413.2022.9831487.