Как интегрировать nRF24L01 в esp8266 nodeMC U?

Я не могу интегрировать модуль nRF в свой nodeMCU. Я просто хочу проверить свой код, но сообщение об ошибке продолжает появляться

Ниже приведен скетч:

#include <SPI_Class.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <ESP8266WiFi.h>
#define PIN_CE D4
#define PIN_CSN D3
RF24 radio(PIN_CE, PIN_CSN);

struct package{
  int id = 1;
  int location = 1;
  char timeStamp = "date/time"
};

typedef struct package Package;
Package data;

public int data1=data.id;
public int data2=data.location;
public char data3=data.timeStamp;

byte  address[][6] = "00001"

const char* ssid = "Jino";
const char* pass = "myinternet";

char server[] = "cdgresearch.000webhostapp.com";

WiFiClient client;

int led = 2;

void setup() {
  Serial.begin(9600);
  WiFi.begin(ssid,pass);
  pinMode(led,OUTPUT);
  digitalWrite(led, HIGH);
  delay(500);
  Serial.println("Connecting to: ");
  Serial.println(ssid);
  Serial.print("Connecting");
  while(WiFi.status() != WL_CONNECTED)
  {

    delay(1000);
    Serial.print(".");
  }

  delay(300);
  digitalWrite(led, LOW);
  Serial.println();
  Serial.println("Successfully connected to the network");
  Serial.print("NodeMCU IP Address: ");
  Serial.println(WiFi.localIP());

  delay(1000);

  radio.begin();
  radio.setChannel(115);
  radio.setPALevel(RF24_PA_LOW);
  radio.openWritingPipe(address[0]);
  delay(1000);
}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:
  delay(9000);
  sendData();
}

void sendData(){
  Serial.println("Sending Data...");
  delay(1000);
  if (client.connect(server, 80)){
    WiFi.printDiag(Serial);
    Serial.println("Connected to server");
    client.print("GET /tag2.php?");
    client.print("incoming=Id ");
    client.print(data1);
    client.print("&incoming2=Loc");
    client.print(data2);
    client.println(" HTTP/1.1");
    client.println("Host: cdgresearch.000webhostapp.com");
    client.println("Connection: close");
    client.println();
    Serial.println();

    while(client.connected()){
      while(client.available()){
        Serial.write(client.read());
       }
      }
    radio.write(&data,sizeof(data));

    Serial.print("\nPackage: ");
    Serial.println(data1);
    Serial.print("Location: ")
    Serial.println(data2)
    Serial.println(data3)
    data1+=1;
    data2+=1;
    delay(1000);

  }

  else{
    Serial.println("Failed to Connect to server...");
    }

  client.stop();
  Serial.println("Disconnected from Server");
  while(client.status()!=0){
    delay (10);
   }
  }

и в консоли появляется эта ошибка:

даже если я использую #include, все равно это всплывает

, 👍0

Обсуждение

Библиотека, которую вы сейчас используете, вероятно, не поддерживает ESP8266, попробуйте использовать https://github.com/nRF24/RF24. Просто в качестве упреждающей меры, чтобы избежать проблем: 1. Убедитесь, что вы разъединили выход 3,3 В - электролитический конденсатор на 1000 мкФ «-» к GND и «+» к 3,3 В. 2. Не используйте ленточные кабели, с дупонами все в порядке, лучше всего с пайкой. 3. В условиях сильного шума (электродвигатели и т. д.) также добавьте керамический конденсатор на шину питания., @Avamander

Ошибка в том, что у вас нет этой библиотеки на вашем компьютере. Правильный?, @MichaelT

@Avamander Я отредактировал пост, но все равно не работает, @Jeano Duhaylungsod

@JeanoDuhaylungsod Используйте *только* одну из библиотек одновременно. Откройте «Примеры» -> «RF24» -> «PingPair» и начните с этого., @Avamander

Вы также должны убедиться, что ваше ядро ESP8266 обновлено. Менеджер досок позволяет вам сделать это., @Avamander


3 ответа


Лучший ответ:

2

Ваша ошибка: .../packages/esp8266/hardware/esp8266/2.4.2/libraries/SPI/src/SPI.h:1:23: фатальная ошибка: SPI_Class.h : Нет такого файла или каталога...

У вас какая-то неправильная библиотека SPI. Исходная папка packages/esp8266/hardware/esp8266/2.4.2/libraries/SPI не содержит вложенной папки src.

,

1

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

Вместо этого ошибка заключается в том, что SPI_Class.h не может быть найден IDE. Я тоже не могу узнать имя, но если это связано с попыткой включить SPI для интерфейса с NRF24L01, вместо этого вам нужен SPI.h.

,

Я также попробовал #include<SPI.h.>, но та же ошибка все еще выскакивает, @Jeano Duhaylungsod

Это было после удаления библиотеки SPI_Class или она все еще присутствовала? Кроме того, вы пробовали использовать новую автономную установку без прав администратора или с удаленными/отключенными нечетными библиотеками?, @RDragonrydr

проблема с spi теперь в порядке. но есть ли способ связаться с вами? Я хочу, чтобы вы помогли моему проекту, потому что вы сказали, что работаете с аналогичным оборудованием. Если вас все устраивает?, @Jeano Duhaylungsod

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

Я должен упомянуть, что в моем случае он все еще работает только часть времени и имеет тенденцию к сбою; Я думаю, что в библиотеке есть место, которое имеет тенденцию зависать при использовании ESP8266. Я хотел бы услышать об опыте других людей; может быть и так, что мои чипы поддельные..., @RDragonrydr


1

Я переустановил Arduino IDE и необходимые мне библиотеки, теперь все работает нормально. Это должно быть потому, что кто-то использовал мой ноутбук и установил некоторые библиотеки RFID, которые вызвали некоторые проблемы в папках библиотек.

,