Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 01:05:17

подумываю о реализации проекта с кучкой беспроводных датчиков/исполнительных устройств, завязанных через nRF24L01 с одним мастер-устройством. датчики - в т.ч. и автономные, с аккумулятором и сонечной батарейкой, т.е. 99.9% времени будут спать, 0.1% - просыпаться, спрашивать мастер на предмет того что им делать, выполнять измерения/действия, отчитываться мастеру и снова спать.

вопрос: попадалась ли кому-то готовая библиотека протокола под это, которую можно было бы немного допилить под свои нужды, или нужно пилить с нуля?

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 06:51:05

в сети "мастер-слейв" все ведомые не дожны никогда быть инициаторами обмена, т.е. варианта "ведомый просыпается и спрашивает мастера" быть не должно, вместо этого мастер должен будить слейва и говорить, что делать.

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 11:53:21

готовая библиотека протокола не попадалась... нужно пилить с нуля.
не вижу проблем))
:tea:

Добавлено after 1 minute 41 second:
подобное начали делать тут https://radiokot.ru/forum/viewtopic.php?f=3&t=166654
пока не доделали))
:tea:

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 12:40:23

в сети "мастер-слейв" все ведомые не дожны никогда быть инициаторами обмена, т.е. варианта "ведомый просыпается и спрашивает мастера" быть не должно, вместо этого мастер должен будить слейва и говорить, что делать.

А это неправильный "мастер-слейв".) Обычно под таким "мастером" имеют ввиду узел, которому "слейвы" отдают данные с мест. А т.к. "слейвы", в виду экономичности, не могут много времени находиться в режиме приёма, то вот они и "теребят мастера".) Это вполне нормальная организация сети.

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 13:24:52

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

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 16:05:53

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

Всё это уже решено в блютузе.

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 16:45:25

Ну так и в Wi-Fi это решено тоже))
Всё это не интересно.
А вообще вопрос был про nRF24L01.
А вообще nRF24L01 жрут довольно много. TX - 11 mA. Rx - 13 mA.
Это дофига !!! ))
:tea:

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 17:00:07

А если активный режим всего ничего?
Уже где то приводил пример. В велосипеде датчик скорости на nrf. Не разборной. Потому что производитель гарантирует 4-5(!) лет работы. Батарейка внутри 1632. Нормально?

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 17:27:35

А вообще nRF24L01 жрут довольно много.

Можно привести пример тех, кто меньше?

А вообще вопрос был про nRF24L01.

Вопрос был в организации сети на готовой библиотеке. Такая библиотека есть и называется блютуз. А есть ещё зигби.
ВиФи - это совсем другое. Там даже модулция совсем другая.

Re: nRF24L01 - протокол для master/slave сети

Пт мар 05, 2021 18:22:53

parovoZZ писал(а):Можно привести пример тех, кто меньше?

FS1000A на 430MГц. TX - 5 mA. Rx - 5 mA.
Ещё меньше самодельные модули на транзисторах - Абсолютный лидер энергосбережения )) TX - 3 mA. Rx - 3 mA.
Вот тут мы сравнивали разные модули - https://www.radiokot.ru/forum/viewtopic ... 8&t=148087
OKF писал(а):А если активный режим всего ничего?

А если управлять будем лампочкой в доме ? Включил выключатель и ждёшь около часа... пока модуль выйдет на связь (в активный режим)... Сидишь около часа без света)) :)))

Про модуляцию не будем. Особенно адаптивную. Это надолго))
:tea:

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 02:13:49

в сети "мастер-слейв" все ведомые не дожны никогда быть инициаторами обмена, т.е. варианта "ведомый просыпается и спрашивает мастера" быть не должно, вместо этого мастер должен будить слейва и говорить, что делать.


ок, предложите реализацию подобного на nRF24l01, только чтобы со средним током потребления девайса без прочей периферии менее 1мА (с учетом что просыпаться будет пускай раз в минуту скажем)... при том что приемник nRF24l01 кушает более 10мА.

можно конечно с TDMA заморочиться - мастер постоянно бродкастит в эфир, слейв(ы) рандомно отзываются на бродкасты, как снюхались - слейву сообщается, когда он должен проснуться, и слейв спит. но как только мастер в такой схеме умирает - слейвы начинают жрать батарею как не в себя...

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 10:13:10

NiTr0 писал(а):предложите реализацию подобного на nRF24l01
а денег вам не выслать?
захотели плясать - пляшите от печки. если вам нужна экономичность, то надо искать приёмопередатчики, которые в режиме приема потребляют микроамперы, а не извращаться с тем, что жрет, как не в себя. ваша идея все равно нежизнеспособна, т.к. при некотором количестве слейвов мастер все равно будет все пакеты сбрасывать, поскольку из-за коллизий не сможет разобраться в них. уверяю вас, решение существует, надо только его найти. возможно, вам поможет чтение статей одного из местных авторитетов в области микромощной радиосвязи Сергея Безрукова

Добавлено after 16 minutes 54 seconds:
или вот вариант: CC1101 https://amperkot.ru/products/radiomodul ... 48604.html - этот модуль может сам просыпаться по наличию радиосигнала, скорость поменьше, но экономичность побольше, а для передачи данных датчика скорость не так важна. в спячке вроде как 0,5 мкА потребляет

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 15:14:07

Максимум что предложил Сергея Безрукова - Bluetooth 5.0 (Low Energy) с минимальным током потребления ~4 mA.
Это дофига как много !!! ))
:)))
NiTr0 писал(а):можно конечно с TDMA заморочиться

Можно и заморочиться. В старом стандарте GSM так и сделали.
В GSM нет коллизий от слова совсем)) Потому что там всё синхронизировано.
:tea:
1. Есть базовая станция (мастер).
2. Есть куча сотовых телефонов (слейв).

Базовая станция передаёт пакеты синхронизации. Сотовые телефоны синхронизируются по этим пакетам.
На одной частоте работает 8 сотовых телефонов. Каждому сотовому телефону веделен отдельный так называемый тайм-слот.

Пример борьбы с коллизиями:
nRF24l01 мастер - каждую минуту передаёт пакет синхронизации.
nRF24l01 слейв - перед началом передачи ждёт пакет синхронизации. После получения пакета синхронизациии слейв отсчитывает время своего тайм-слота и передаёт данные мастеру.

|мастер|--------|--------|--------|--------|
|--------|слейв1|--------|--------|--------|
|--------|--------|слейв2|--------|--------|
|--------|--------|--------|слейв3|--------|
|--------|--------|--------|--------|слейв4|
...
Коллизии отсутствуют))
:tea:

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 15:17:44

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

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 15:22:31

в сети "мастер-слейв" все ведомые не дожны никогда быть инициаторами обмена, т.е. варианта "ведомый просыпается и спрашивает мастера" быть не должно, вместо этого мастер должен будить слейва и говорить, что делать.
Тогда ТС-у придётся каждый день менять батарейки на всех своих датчиках. Либо размер аккума каждого датчика увеличить до размера автомобильного. :)))

Вариант работы системы описанный ТС-ом вполне работоспособный. У меня например именно так и реализовано.
Последний раз редактировалось jcxz Сб мар 06, 2021 15:27:20, всего редактировалось 1 раз.

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 15:27:02

jcxz писал(а):придётся каждый день менять батарейки на всех своих датчиках
это верно. если изначально приёмопередатчик выбран неудачный, проблем много будет. я не особо вникал в проблему, но чем CC1101 не устраивает?

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 16:03:07

в сети, где слейвы не умничают, протокол обмена примитивнейший, в сети, где слейвы теребт мастера - надо отслеживать коллизии, расставлть приоритеты и т.п. гемор. все можно, но вопрос - нужно ли?
Именно по такому алгоритму работают ведомые устройства в ZigBee-сети. Почитайте про ZigBee.
Раз ZigBee придумали - наверное оно кому-то нужно, правда?

Добавлено after 1 minute 39 seconds:
это верно. если изначально приёмопередатчик выбран неудачный, проблем много будет. я не особо вникал в проблему, но чем CC1101 не устраивает?
А чем nRF24L01+ не устраивает?

Добавлено after 7 minutes 31 second:
А вообще nRF24L01 жрут довольно много. TX - 11 mA. Rx - 13 mA.
Странно, у меня вот собранный ещё в середине осени девайс на nRF24L01+ (всё время включенный, но большую часть времени - в PowerDown, только иногда выходящий на передачу) до сих пор работает от той же самой пары AA полудохлых.
Специально тогда в него воткнул пару почти дохлых батареек AA - хотел узнать сколько протянет. Измерил напряжение было +2.550V (2 AA включены последовательно). Прошло почти полгода, а на них.... всё те же 2.550V 8)
И это при том что схема состоит из STM8L151 + nRF24L01+. Всё время включена! И почти за полгода не потеряла ни mV!
Конечно если активно понажимать "передачу" напряжение немного падает (на десяток mV), но потом восстанавливается. 8)

Добавлено after 7 minutes 44 seconds:
parovoZZ писал(а):Можно привести пример тех, кто меньше?

FS1000A на 430MГц. TX - 5 mA. Rx - 5 mA.
Только у ТСа девайс бОльшую часть времени будет спать. Так что важнее потребление во сне. А во сне у nRF24L01+ потребление меньше 1мкА.
Да и работоспособен он до 1.9V, что тоже увеличивает срок службы при разряде батареи.

Добавлено after 4 minutes 20 seconds:
ок, предложите реализацию подобного на nRF24l01, только чтобы со средним током потребления девайса без прочей периферии менее 1мА (с учетом что просыпаться будет пускай раз в минуту скажем)
1мА - это уже какой-то лошадиный ток! :facepalm:
У меня погодная станция на nRF24L01+ работающая примерно по такому принципу и имеющая на борту:
MSP430 + DHT22 + BMP180 + nRF24L01+ + LDO
потребляет постоянно ~28-30мкА.
При выходе на связь конечно больше, но это - миллисекунды буквально.

Добавлено after 13 minutes 28 seconds:
угу. только слейвы должны тактироваться стабильной частотой, что для минимального потребления тоже не фонтан вариант. и все равно слейв должен уметь просыпаться от синхропакта мастера, иначе никуда от большого потребения в режиме ожидания этой синхронизации не деться.
Зачем??? Вы похоже ничего не поняли в описанном...
Ни "стабильная частота" ни "просыпание от синхропакета" - не нужны.
1-е - потому что частоты обычного кварцевого генератора более чем достаточно чтобы удерживать необходимую точность расчёта времянок на таком малом отрезке времени между двумя синхропакетами.
2-е - просыпаться слэйв может по своим внутренним часам, включать приёмник (на короткое время), за это время ловить ближайший синхропакет, после чего выходить на передачу в нужное время. И снова засыпать. Всё.

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 16:07:58

jcxz, успокойтесь: я не писал, что сделать невозможно, я написал - геморно. не вижу смысла городить вручную то, что делает готовый недорогой чип. тем более, что ТС находится в стадии "придумывания" проекта, и сменить элементную базу на данном этапе ничего не стоит.

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 17:14:10

чем CC1101 не устраивает?

Вы хотя бы даташит для начала открыли...))
даташит.jpg
(35.62 KiB) Скачиваний: 130

- CC1101 - TX/RX ~15 mA.
- nRF24L01 - TX/RX ~12 mA.
- Bluetooth 5.0 (Low Energy) - TX/RX ~4 mA.
...
И т.д.

Вывод: Замена радио модулей ничего не даст. Все радио модули потребляют примерно одинаково.
Одинаково дофига как много !!! ))
:)))
Оно и понятно.
Все современные радио модули построены по типовой схеме. Поэтому и потребление у них примерно одинаковое.

Остаётся два варианта:
1. делать самодельный радио модуль с ультра низким энергопотреблением.
2. использовать разные протоколы для экономии электричества.
:tea:

Re: nRF24L01 - протокол для master/slave сети

Сб мар 06, 2021 18:27:22

roman.com писал(а):Вы хотя бы даташит для начала открыли
а вы его открывали?
Изображение
в режиме сна потребление - единицы микроампер, а пробуждение - по приему пакета. детальнее не вчитывался.
Вложения
wor.png
(190.5 KiB) Скачиваний: 367
Ответить