pyIoTDevSim is a IoT device simulator developed by AgroTechLab (Technology Development Laboratory for Agribusiness) of IFSC (Federal Institute of Santa Catarina).
It uses a real LoRaWAN module (connected to serial port) to sent simulated IoT data to TTN (The Things Network) infrastructure. Its objective is to accelerate the development of IoT solutions, allowing the validation of the communication infrastructure, data validation/formatting and storage and visualization system in parallel to the development of hardware and firmware projects.
More details can be found on the pyIoTDevSim Documentation page.
The pyIoTDevSim.yml
is the configuration file searched by pyIoTDevSim to sets system, LoRa and projects parameters.
It uses a YAML format and all sections and keys parameters must be defined in lower case mode.
Two main sections are defined:
system
- defines common LoRa parameters, LoRa module interface and the debug level used;projects
- list the projects enabled to run;
The system
parameters are the same to all projects:
debug_level
- pyIoTDevSim debug level (ie: DEBUG);lora_module
- LoRa module (ie: RHF76-052);serial
- subsection with serial parameters:port
- serial port (ie: /dev/ttyUSB0);baudrade
- serial baudrate (ie: 9600);
lora
- subsection with LoRa parameters:base_band
- LoRa base band (ie: AU920);sub_band
- LoRa sub-band (ie: 2);class
- LoRa class (ie: A);rxwin2_freq
- LoRa RX window 2 frequency (ie: 923.3);rxwin2_dr
- LoRa RX window 2 data ratio (ie.: DR8);auth_mode
- LoRa authentication mode (ie: LWABP);
The projects
section list the name of projects enabled to run. An example is showed bellow (in this case Project C is defined but not will be enabled):
projects:
- Project_A
- Project_B
# - Project_C
Ater, to each project listed at projects
section a new section must be created with the following parameters:
project_name
- section with the project name (the same used atprojects
section);sampling_period
- sampling period (in seconds) of sensor list (ie: 300);ttn
- subsection with TTN (The Things Network) parameters:dev_eui
- device EUI;app_eui
- application EUI;dev_addr
- device address;nwks_key
- network session key;apps_key
- application session key;app_key
- application key;
lora
- subsection with LoRa parameters:tx_power
- transmission power in dB (ie: 20);uplink_dr
- uplink data ratio (ie: DR1);chan0_freq
- channel 0 frequency (ie: 917.2);chan0_dr
- channel 0 data ratio (ie: DR1);chan1_freq
- channel 1 frequency (ie: 917.9);chan1_dr
- channel 1 data ratio (ie: DR1);adr
- automatic data ratio (ie: OFF);repeat
- transmission repeat (ie: 2);retry
- transmission retry (ie: 2);initial_port
- initial port number to transmission sensor values (ie: 10);
sensor_list
- subsection with a list of sensors;sensor_name
- subsection with sensor parameters (one to each sensor listed atsensor_list
):data_type
- sensor data type (ie: float32);min_value
- sensor minimum value (ie: -27.803293);max_value
- sensor maximum value (ie: -27.804540);
Sensor values are randomly generated between values defines at min_value
and max_value
. To fixed values both parameters must be the same. The data_type
will define the data type and payload size used to compose LoRa message (all messages are sent using hexadecimal format). The following data types can be used:
int8
- range: -128 to 127
- size: 1 byte
uint8
- range: 0 to 255
- size: 1 byte
int16
- range: -32768 to 32767
- size: 2 bytes
uint16
- range: 0 to 65535
- size: 2 bytes
int32
- range: -2147483648 to 2147483647
- size: 4 bytes
uint32
- range: 0 to 4294967295
- size: 4 bytes
float_uint16
- range: 0 to 655.35
- size: 2 bytes
- limitation: only 2 digits of precision
- operation: value * 100
float_int15
- range: -327.67 to 327.67
- size: 2 bytes
- limitation: 1 bit of sign and 15 bits of value; only 2 digits of precision
- operation: value * 100
float
- range: -3.4E+38 to +3.4E+38
- size: 4 bytes
- operation: sign bit, 8 bits exponent, 23 bits mantissa
AgroTechLab (Laboratório de Desenvolvimento de Tecnologias para o Agronegócio)
IFSC (Instituto Federal de Santa Catarina) - Câmpus Lages
Rua Heitor Vila Lobos, 225 - São Francisco
Lages/SC - Brazil
CEP: 88.506-400