Не получается подружить nrf24l01 и esp8266

b1ba_
Offline
Зарегистрирован: 17.02.2021

Привет, пытаюсь подключить nrf24l01 и esp8266, мне нужна именно есп, поэтому варианта с  ардуино нету. Скачал библиотеку гавера, но ее не получается даже загрузить вот код :

/* В данном скетче с передающей части (ТХ) отправляется значение переменной counter,
   переменная эта с каждым шагом увеличивается на единицу. Приёмник (RX) принимает
   сигнал, и отправляет обратно то, что получил, используя функцию radio.writeAckPayload
   То есть наш приёмник на одно мгновение становится передатчиком! Если наш передатчик (TX)
   принимает ответный сигнал, он выдаёт то, что принял, и пишет посчитанное вермя между
   отправкой и приёмом сигнала в микросекундах. Данный скетч можно использовать для теста
   модулей на качество связи, а также для понимания работы функции radio.writeAckPayload
   by AlexGyver 2016
*/

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


RF24 radio(D1,D3); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

byte counter;

void setup() {
  Serial.begin(9600);       // открываем порт для связи с ПК

  radio.begin();            // активировать модуль
  radio.setAutoAck(1);      // режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0, 15);  // (время между попыткой достучаться, число попыток)
  radio.enableAckPayload(); // разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32); // размер пакета, в байтах

  radio.openWritingPipe(address[0]);   // мы - труба 0, открываем канал для передачи данных
  radio.setChannel(0x60);   // выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); // уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_1MBPS); // скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  // должна быть одинакова на приёмнике и передатчике!
  // при самой низкой скорости имеем самую высокую чувствительность и дальность!!
  // ВНИМАНИЕ!!! enableAckPayload НЕ РАБОТАЕТ НА СКОРОСТИ 250 kbps!

  radio.powerUp();        // начать работу
  radio.stopListening();  // не слушаем радиоэфир, мы передатчик
}

void loop(void) {
  byte gotByte;
  Serial.print("Sending... ");
  Serial.println(counter);

  // запоминаем время отправки
  uint32_t last_time = micros();

  if (radio.write(&counter, 1) ) { // отправляем значение counter
    if (!radio.available()) {      // если получаем пустой ответ
      Serial.print("Empty, ");
      Serial.print(" Time: ");
      Serial.print(micros() - last_time);
      Serial.println(" microseconds");
      Serial.println();
    } else {
      while (radio.available() ) {  // если в ответе что-то есть
        radio.read( &gotByte, 1 );  // читаем
        Serial.print("Anser: ");
        Serial.print(gotByte);
        Serial.print(" Time: ");
        Serial.print(micros() - last_time);
        Serial.println(" microseconds");
        Serial.println();
        counter++;
      }
    }
  } else {
    Serial.println("Fail");
  }
  delay(1000);
}

,вот ошибка : 

Arduino: 1.8.15 (Windows 10), Плата:"NodeMCU 1.0 (ESP-12E Module), 160 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:1MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

C:\Users\user\Desktop\nRF24L01 tests\время передачи\TX_time\TX_time.ino: In function 'void setup()':

TX_time:32:34: error: invalid conversion from 'byte*' {aka 'unsigned char*'} to 'uint64_t' {aka 'long long unsigned int'} [-fpermissive]

In file included from C:\Users\user\Desktop\nRF24L01 tests\время передачи\TX_time\TX_time.ino:13:

C:\Users\user\Documents\Arduino\libraries\RF24-master/RF24.h:324:33: note:   initializing argument 1 of 'void RF24::openWritingPipe(uint64_t)'

  324 |   void openWritingPipe(uint64_t address);

      |                        ~~~~~~~~~^~~~~~~

exit status 1

invalid conversion from 'byte*' {aka 'unsigned char*'} to 'uint64_t' {aka 'long long unsigned int'} [-fpermissive]

Возникла ошибка при загрузке http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json



Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

 

в интернете почти ничего не смог найти,  подскажите в чем дело и как исправить?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

uint64_t address