Внедрить TDMA с необработанным LoRa - PullRequest
0 голосов
/ 22 марта 2019

Я строю частную сеть LoRa без протокола LoRaWAN. Сеть состоит из около 50 узлов (arduino pro mini) и одного шлюза (esp32). Для экономии энергии лучше иметь функцию типа B-класса или TDMA. Я рисую блок-схему и

Основной процесс узла:
- Во время загрузки / настройки инициализируйте lora, дождитесь сообщения Beacon и установите местное время
- При каждом ВР (периоде маяка) просыпайтесь, ждите маяка и синхронизируйте местное время, затем идите спать
- В каждом SP (Sense Period) просыпайтесь, считывайте датчики и отправляйте сообщение восходящей линии, ожидайте сообщения нисходящей линии в течение X секунд, вызывайте привод (если есть инструкция от шлюза), затем переходите в спящий режим

Процесс шлюза:
- Во время загрузки / настройки инициализируйте lora, подключите wifi, подключите NTP-сервер и синхронизируйте местное время
- На каждом БП передайте сообщение Beacon, прочитайте его с сервера и сохраните инструкции в стеке, затем перейдите в режим приема
- принимать восходящую линию связи от узла, декодировать данные и отправлять на сервер, отправлять сообщение нисходящей линии связи, если есть какая-либо инструкция

Вопрос в том, я не знаю существует ли подобный код или библиотека , чтобы облегчить жизнь. На данный момент я проверил два узла, и поскольку нет прослушивания перед разговором, мне нужно зарезервировать гораздо больше времени для безопасности каждого сообщения восходящей линии связи, что не идеально.

...