I am working on a project related to data transmission between nodes and a gateway. Currently, I am using 2 ESP32s and 1 Raspberry Pi 3B+ as nodes, and another Raspberry Pi 3B+ as the gateway. The communication between nodes and the gateway is facilitated through the UART Lora SX1278 433MHz 3000m EBYTE E32-433T20D module.

In the Python program of the gateway, I send a request message containing the name of a specific node to retrieve data from that node. When a node receives the request, it checks if the name matches its own. If it does, the node pushes the data to the gateway and waits until it receives a request message without its name. If the request message does not contain the name of that node, it stays in a waiting state until its turn comes. I am implementing a time schedule where data from node 1 is read from 0-20s, data from node 2 is read from 21-40s, data from node 3 is read from 41-60s, and then the cycle repeats.

I have to organize the time in this way because when I tested with all 3 nodes sending data simultaneously, the error rate was unacceptably high. However, if I apply this approach to reading data from industrial machines (around 60 machines) in a factory, it would take a considerable amount of time to update the collected data from the machines. Therefore, I would like to seek advice on optimizing the data update time and minimizing errors in this scenario.

We use Normal mode (M1 =0, M0=0) for both node and gateway. enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.