Arduino Pro Mini
Модератор: immortal
Re: Arduino Pro Mini
Тоже использую модули NRF24L01+ поэтому и интересуюсь.
Библиотеку тоже использую RF24Network как для Mega2560 так и для IBoard
Библиотеку тоже использую RF24Network как для Mega2560 так и для IBoard
Re: Arduino Pro Mini
А можно код для меги и мини? Если вот, например, мега слушает данные трех мини и отправляет им команды.
Re: Arduino Pro Mini
Чтобы не засорять форум индивидуальным мусором прошу писать в ЛС, МайлАгент([email protected]), ICQ
Re: Arduino Pro Mini
В библиотеке по ссылке выше есть папка examples с примерами!
Поиграйтесь с examples/meshping, там есть инструкция как ей пользоваться. Вкратце:
Код единый для всех узлов, заливаете его во все arduino с модулями nrf24l01.
Вам только нужно при первом запуске присвоить адреса: 00 - базе, 01 и т.д. - всем остальным. Делается это в консоле, нужно послать цифру от 0 до 9, что будет соответствовать адресу который будет присвоен и записан в eprom: 0=00, 1=02, 2=05, 3=012, 4=015, 5=022, 6=025, 7=032, 8=035, 9=045. Можно заменить на любые свои (22 строчка файла nodeconfig.cpp).
Что делает данный пример:
все узлы отправляют пакеты базе с заданной периодичностью, база выводит результат в консоль.
Пакеты отправляются так:Принимаются так:
Все узлы всегда должны слушать эфир, иначе транзитные пакеты будут теряться, для этого периодически нужно вызывать команду Маршрутизацию пакетов обеспечивает сама библиотека, поэтому не стоит с ней заморачиваться, главное правильно раздать узлам адреса в самом начале и всё.
Понять какому узлу какой адрес присвоить при конфигурации не сложно, например пакет от 015 идет не сразу на 01, а следующим образом: Узел 015 -> Узел 05 -> База 00 -> Узел 01. С таким подходом правда имеется минус - транзитные узлы не должны спать. Тоесть если у вас имеются энергозависымые arduin-ы на батарейках которые основное время находятся в спящем режиме, то их лучше всего поставить последними в дереве.
Все выглядит примерно так:
Поиграйтесь с examples/meshping, там есть инструкция как ей пользоваться. Вкратце:
Код единый для всех узлов, заливаете его во все arduino с модулями nrf24l01.
Вам только нужно при первом запуске присвоить адреса: 00 - базе, 01 и т.д. - всем остальным. Делается это в консоле, нужно послать цифру от 0 до 9, что будет соответствовать адресу который будет присвоен и записан в eprom: 0=00, 1=02, 2=05, 3=012, 4=015, 5=022, 6=025, 7=032, 8=035, 9=045. Можно заменить на любые свои (22 строчка файла nodeconfig.cpp).
Что делает данный пример:
все узлы отправляют пакеты базе с заданной периодичностью, база выводит результат в консоль.
Пакеты отправляются так:
Код: Выделить всё
message="test";
RF24NetworkHeader header(/*Кому*/ 01, /*Тип*/ 'a');
network.write(header,&message,sizeof(message)); Код: Выделить всё
while (network.available())
{
RF24NetworkHeader header;
static char message[32];
network.read(header,message,sizeof(message));
Serial.print("Received: ");
Serial.println(message);
} Код: Выделить всё
network.update(); Понять какому узлу какой адрес присвоить при конфигурации не сложно, например пакет от 015 идет не сразу на 01, а следующим образом: Узел 015 -> Узел 05 -> База 00 -> Узел 01. С таким подходом правда имеется минус - транзитные узлы не должны спать. Тоесть если у вас имеются энергозависымые arduin-ы на батарейках которые основное время находятся в спящем режиме, то их лучше всего поставить последними в дереве.
Все выглядит примерно так:
- Вложения
-
- Дерево.png (13.53 КБ) 9182 просмотра
Re: Arduino Pro Mini
Это теоретически 
Сколько клиентов подключали, проверка надежности связи, потеря пакетов и т.д.
Сколько клиентов подключали, проверка надежности связи, потеря пакетов и т.д.
Re: Arduino Pro Mini
6 работают, больше ардуин нет 
планировка помещения не позволяет использовать сеть "точка-точка" сигнал не проходит через несколько несущих перегородок поэтому так.
с транзитами все ок, пакеты бегают.
бывает периодически (последний раз пару месяцев назад) какой нибудь узел виснет, но об этом МД оперативно извещает.
планировка помещения не позволяет использовать сеть "точка-точка" сигнал не проходит через несколько несущих перегородок поэтому так.
с транзитами все ок, пакеты бегают.
бывает периодически (последний раз пару месяцев назад) какой нибудь узел виснет, но об этом МД оперативно извещает.
Re: Arduino Pro Mini
а как отслеживаешь живучесть клиентов?dmw писал(а):бывает периодически (последний раз пару месяцев назад) какой нибудь узел виснет, но об этом МД оперативно извещает.
проверяешь периодически пришли от них пакеты или нет?
На сервере использую NRf24l01+PA+LNA с внешней антенной.dmw писал(а):планировка помещения не позволяет использовать сеть "точка-точка" сигнал не проходит через несколько несущих перегородок поэтому так.
В принципе спокойно пробивает межкомнатные стены + кирпичную стенку в гараж.
Есть удаленный клиент на котором так же будет стоять передатчик с внешней антенной. Дальность и стабильность связи пока не проверял.
внизу в подписях клиент в гараже как раз и работает через 2 межкомнатные стенки и кирпичную стену гаража
Последний раз редактировалось ser009 Ср апр 16, 2014 9:50 am, всего редактировалось 1 раз.
Re: Arduino Pro Mini
Да именно так, каждый должен присылать пинг раз в 10 минут на "00". Если в течении последних 30 минут ничего не пришло, то МД говорит об этом.ser009 писал(а):а как отслеживаешь живучесть клиентов?
проверяешь периодически пришли от них пакеты или нет?
Re: Arduino Pro Mini
30 минут - это долго.dmw писал(а):Да именно так, каждый должен присылать пинг раз в 10 минут на "00". Если в течении последних 30 минут ничего не пришло, то МД говорит об этом.ser009 писал(а):а как отслеживаешь живучесть клиентов?
проверяешь периодически пришли от них пакеты или нет?
Думаю над разработкой удаленной настройки клиента, в том числе и времени передачи сообщений, т.е. не все клиенты отвечают скажем 1 раз в 10 минут, кто чаще кто реже.
Ну смысл определения твоей живучести ясен