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

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

  1. parovoZZ

    parovoZZ Гуру

    а что там можно мусолить? Аппаратно в nRF24 series ничего не менялось. Серия идет с пометкой
    Библиотека никак не влияет на аппаратные ограничения микросхемы. К тому же, она не раскрывает полностью весь потенциал этой микры.
     
  2. Alexey_nl

    Alexey_nl Нуб

    Есть небольшие отличия в методах. Код, который я писал под старую библиотеку остался почти без изменений.
     
  3. Un_ka

    Un_ka Гуру

    Screenshot_2020-05-13-12-53-15.png Какой канал лучше выбрать около нуля или выше частот wi-fi?
     
  4. parovoZZ

    parovoZZ Гуру

    Выбирать лучше выше Wi-Fi. Этот сканер - фуфломицин. Он отслеживает ТОЛЬКО наличие несущей ничего не говоря о её интенсивности - сам чип этого делать не умеет. Чтобы смотреть диапазон Wi-Fi и что там творится, есть прекрасная утилита inssider.
     
  5. mrDobryj

    mrDobryj Нерд

    Здравствуйте. Подскажите строку, чтобы включала светодиод когда между ардуинками установлена связь. А когда Нето он не горит
     
  6. parovoZZ

    parovoZZ Гуру

    Код (C++):
    if (communication)
    {
    LED = ON;
    }
    else
    {
    LED = OFF;
    };
     
  7. Un_ka

    Un_ka Гуру

    parovoZZ, вы самого главного не сказали, что если включён автоответ, то функция radio.write(... возвратит ноль если его не получит.
    Код (C++):
    if (radio.write(&transmit_data, sizeof(transmit_data))) {LED(1);
    }
    else
    {
    LED(0);
    };
     
     
  8. mrDobryj

    mrDobryj Нерд

    У меня 2 Ардуино на передатчик и одна на приемник. Надо указать конкретно с какой есть связь.
     
  9. Un_ka

    Un_ka Гуру

    Если они имеют один адрес, то в получаемом пакете что-нибудь должно указывать, какой передатчик послал этот пакет.
     
  10. mrDobryj

    mrDobryj Нерд


    #include <SPI.h>

    #include <nRF24L01.h>

    #include <RF24.h>

    #include <SoftwareSerial.h>
    #include <DFPlayer_Mini_Mp3.h>

    RF24 radio(9,10);

    long y;

    void setup()
    {
    radio.begin();

    radio.setChannel(15);
    radio.setDataRate (RF24_250KBPS);
    radio.setPALevel(RF24_PA_LOW);
    radio.openWritingPipe(0x0123456789LL);

    Serial.begin (9600);

    mp3_set_serial (Serial);

    Serial.begin(9600);

    y = 0;

    pinMode(A0, OUTPUT);
    pinMode(A1, OUTPUT);
    radio.startListening();
    mp3_set_volume (10);

    }


    void loop()
    {
    radio.read(&y,sizeof(y));
    if (y == 1) {
    Serial.println("1");
    digitalWrite(A0,HIGH);
    mp3_play (1);
    delay(5000);
    mp3_stop ();
    delay(100);
    void(* resetFunc) (void) = 0;
    resetFunc();

    }
    if (y == 2) {
    Serial.println("2");
    digitalWrite(A1,HIGH);
    mp3_play (2);
    delay(5000);
    mp3_stop ();
    delay(100);
    void(* resetFunc) (void) = 0;
    resetFunc();

    }
    digitalWrite(A0,LOW);
    digitalWrite(A1,LOW);

    }

    и

    #include <SPI.h>

    #include <nRF24L01.h>

    #include <RF24.h>

    long r;
    RF24 radio(9,10);

    void RGB() {
    }

    void setup()
    {
    r = 0;

    radio.begin();

    radio.setChannel(15);
    radio.setDataRate (RF24_250KBPS);
    radio.setPALevel(RF24_PA_LOW);
    radio.openWritingPipe(0x0123456789LL);

    pinMode(A0,INPUT_PULLUP);
    pinMode(2, OUTPUT);

    }


    void loop()
    {
    // Кнопка 1
    if ((!digitalRead(A0)) == true) {
    r = 1;
    radio.write(&r,sizeof(r));
    digitalWrite(2,HIGH);
    delay(5100);
    digitalWrite(2,LOW);
    RGB();
    delay(100);

    }

    }

    Куда и как прописать?
     
  11. Avas185

    Avas185 Гик

    Люди добрые а дайте пожалуйста скетч для теста NRF24L01+ 2.4G передатчика и приемника с ком портом
     
  12. Un_ka

    Un_ka Гуру

    Здесь прейдётся передавать массив. В одну из ячеек, которого нужно записывать индификатор передатчика. Например, у одного передатчика это 1 у другого 2.
    На приёмнике тоже должен приниматься массив.
     
  13. Avas185

    Avas185 Гик

    а то я понять не могу работает то что у меня есть или нет
     
  14. Un_ka

    Un_ka Гуру

    О выборе канала на nrf24l01+.
    Каналы и частоты wifi.
    [​IMG]
    14 канал не используется, поэтому можно смело ставить частоту 2,485Ггц и более. Для nrf ширина канала от 1 до 2 МГц. Первый канал 2,400Ггц.
    То есть выставлять канал 85 и выше.
    Но согласно данному документу
    и ещё одному документу.
    Screenshot_2020-06-28-11-48-33-897_org.geometerplus.fbreader.plugin.pdf.jpg
    Screenshot_2020-06-28-12-10-22-252_org.geometerplus.fbreader.plugin.pdf.jpg
    Вот, что сказано о WiFi.
    Мощность nrf24l01+ крайне мала 1мВт, и дальность всего один км, так что вряд ли кому они помешают.
     
  15. Avas185

    Avas185 Гик

    Возникла проблемка, использую два NRF24L01+ 2.4G (Trema-модуль V2.0) как передатчик и приемник. Передатчик в колодце приемник в дома на расстоянии примерно 20 - 25 метров и связи между ними что-то нет. Из-за чего это может быть ?
     
  16. parovoZZ

    parovoZZ Гуру

    из-за отсутствия прямой видимости. Если радиосвязь в толщу воды (но не наоборот) сегодня ещё как-то возможна, то связь из под земли нет.
     
  17. Avas185

    Avas185 Гик

    Передатчик крепиться на домик колодца. Как можно решить данную проблему ???
     
  18. issaom

    issaom Гуру

    HC12 купить - он пробивает 5 ж.бетонных перекрытий
     
  19. parovoZZ

    parovoZZ Гуру

    Заменить на передатчик с усилителем. Или вообще установить другой. Вещать на 25 метров передатчиком с выходной мощностью 0дБ (1 мВт) на частоте 2.4ГГц (которую запросто заглушит Wi-Fi на 100мВт) плохая идея.
     
  20. Avas185

    Avas185 Гик

    Дом деревянный если что и точное название модуля пожалуйста