nRF24L01+ : побеждаем модуль.

Тема в разделе "Проводная и беспроводная связь", создана пользователем ИгорьК, 19 июн 2014.

  1. ИгорьК

    ИгорьК Гуру

    Внимательно разбираемся с п. 2.
     
  2. Galy4a

    Galy4a Нуб

    Да, забыл привести в выложенном коде, эта конструкция у меня сейчас есть. Порт молчит, пока не нажмешь reset на передатчике, потом выдает одну посылку, через несколько секунд(после перезапуска и инициализации) - вторую и опять молчит.
     
  3. ИгорьК

    ИгорьК Гуру

    :) Заканчивайте его мучить. Попробуйте сделать что-то более полезное... Причин может быть несколько. Займитесь конечным устройством - что вы планируете сделать в итоге.
     
  4. Galy4a

    Galy4a Нуб

    Так я хочу сначала добиться стабильной работы) Мне же потом показания термодатчика пересылать, а у меня по две посылки проходит, да и то, когда на кнопку жму)
     
  5. ИгорьК

    ИгорьК Гуру

    Тогда продолжайте изучать эту ветку. Вы еще не все варианты действий проверили.
     
  6. AlexVS

    AlexVS Гик

    В чем преимущество использования кода:
    Код (Text):
    radio.setAutoAck(1);                    // Установка режима подтверждения приема;
        radio.openWritingPipe(writingPipe);    // Активация данных для отправки
        radio.openReadingPipe(1,readingPipe);  // Активация данных для чтения
        radio.startListening();                // Слушаем эфир.
    перед стандартным:
    Код (Text):
    network.read(header,&ptime,sizeof(ptime))
    .....
    network.write(header,&message,sizeof(message));
     
  7. ИгорьК

    ИгорьК Гуру

    Это, ведь, дело сугубо интимное. Для меня, например, преимущество в том, что я понимаю что в первом, и не понимаю даже откуда взят второй :) и к чему он относится.
     
    Последнее редактирование: 2 окт 2014
  8. AlexVS

    AlexVS Гик

    network.write() и network.read() - методы библиотеки RF24Network.
    А, кажется понял, используя Ваш пример кода, нет необходимости подключать RF24Network.
     
  9. ИгорьК

    ИгорьК Гуру

    Сетевая библиотека нужна тогда, когда устройств не только много, но они еще и далековато от центральной головы, так что сигнал до нее не добивает. Я пока не дошел до такого состояния.
     
  10. AlexVS

    AlexVS Гик

    У меня периодически теряется связь между станцией и сенсором, чего я только не делал: и конденсаторы и смена каналов - стабильной работы нет. Причем работает устойчиво 3, 5, 10 дней, а потом раз и связи нет.
    Сейчас между устройствами разместил ретранслятор и в случае отсутствия связи, станция начинает обмениваться с сенсором через него, а через некоторое время опять напрямую.
    Так что видимо без сетевой библиотеки не обойтись, хотя если повнимательнее изучить Ваш опыт.....
     
  11. ИгорьК

    ИгорьК Гуру

    Интересное решение. А не проще ли было применить алгоритм, когда после отправки сообщения, передатчик ожидает его подтверждения путем прослушки трубы, и если ответа нет - через некоторое время долбит приемник еще и еще до успешного завершения передачи?
     
  12. AlexVS

    AlexVS Гик

    Когда связь пропадает мне помогло только перемещение одного из устройств в коридор, отсюда и придумал промежуточное устройство. К тому же я его уже нагрузил дополнительной работой, т.к. у модуля станции память уже на пределе, я прогноз получаемый с сайта в виде XML, вычитываю и побайтно отправляю на ретранслятор, он его парсит и присылает назад в виде заполненной структуры.
    На днях получил nFR24 с усилителем и антенной, попробовал его воткнуть в станцию - в результате команды со станции до сенсора доходят 100% (пробовал когда связи не было), причем каждая команда приходит 2-3 раза, а вот в обратную сторону прохождение хуже, но все же есть.
     
  13. ИгорьК

    ИгорьК Гуру

    Какие у Вас там расстояния и из чего стены?
     
  14. AlexVS

    AlexVS Гик

    Обычный панельный дом, расстояние 5 метров.
     
  15. Alexium

    Alexium Нуб

    Скажите, а можно ли использовать для подключения данного модуля группу штырьков ICSP на Uno? Названия какие-то похожие там. Никак не могу найти толковую (для своих мозгов) документацию по этому разъему. И хотелось бы еще и библиотеку Mirf юзать при этом.
     
  16. AlexVS

    AlexVS Гик

    Можно. Вы прозвоните какие выводы ICSP соединены с MOSI(D11), MISO(D12), SCK(D13).
    CSN и CE - можно взять практически любые, главное в скетче указать, обычно это 9 и 10.
     
  17. Alexium

    Alexium Нуб

    Ээ, то есть это не освободит мне цифровые выводы Ардуины? Они просто дублируются?
     
  18. ИгорьК

    ИгорьК Гуру

    Не освободит. Они запараллелены. Если есть необходимость - поизучайте документацию на Ардуино Леонардо. Там, ВОЗМОЖНО, они выведены как самостоятельные.
    В Ардуино Yun, та же Леонардо, у меня это сделано так:
    [​IMG]
     
    Последнее редактирование: 8 окт 2014
    Alexium нравится это.
  19. geher

    geher Гуру

    В леонардо они, действительно, разведены только на ICSP.
     
  20. Petrovich

    Petrovich Нерд

    Приветствую всех следящих за темой. У меня таки не получается сконнектить 2 ардуины с помощью этих модулей:( Соответственно пробую упростить задачу.
    1ая arduino шлет сигнал скетчем:
    Код (Text):

    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
    #include <stdint.h>
    #define CE_PIN 9
    #define CSN_PIN 10
    const uint64_t writingPipe = 0xE8E8F0F0AALL;
    static int out = 333;
    RF24 radio(CE_PIN, CSN_PIN);
    void setup()
    {
    delay(2000);
    radio.begin();
    radio.setDataRate(RF24_1MBPS);
    radio.openWritingPipe(writingPipe);
    }
    void loop()
    {
    radio.write( &out, sizeof(out) );
    delay(100);
    }
    Вторая же скетчем от ИгорьК (с первой страницы темы) слушает эфир. Соответственно на 76 канале я должен иногда видеть что-то отличное от нулей... но там только нули... Канал передатчика менять пробовал, эффект тот же. Питание передатчика от стабильных 3.3В (не от дуины). Может кто подскажет где я ошибся?