Как интегрировать 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, все равно это всплывает
3 ответа
Лучший ответ:
Ваша ошибка: .../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
.
Я могу подтвердить, что их можно соединить с библиотекой TMRH20 RF24, которую вы используете (судя по названию библиотеки). В настоящее время я создаю что-то с этими двумя компонентами.
Вместо этого ошибка заключается в том, что SPI_Class.h не может быть найден IDE. Я тоже не могу узнать имя, но если это связано с попыткой включить SPI для интерфейса с NRF24L01, вместо этого вам нужен SPI.h.
Я также попробовал #include<SPI.h.>, но та же ошибка все еще выскакивает, @Jeano Duhaylungsod
Это было после удаления библиотеки SPI_Class или она все еще присутствовала? Кроме того, вы пробовали использовать новую автономную установку без прав администратора или с удаленными/отключенными нечетными библиотеками?, @RDragonrydr
проблема с spi теперь в порядке. но есть ли способ связаться с вами? Я хочу, чтобы вы помогли моему проекту, потому что вы сказали, что работаете с аналогичным оборудованием. Если вас все устраивает?, @Jeano Duhaylungsod
Я рад, что я или кто-то из нас смог помочь, но на самом деле я еще не зашел так далеко. Я получил один из тестовых скетчей, которые поставлялись с работающей библиотекой, поэтому я знаю, что это возможно, но я пока ничего не делал. Кроме того, это проект для колледжа (и у меня одновременно есть много других занятий), поэтому мне нужно посвятить свое время тому, чтобы заставить его работать, и у меня не так много времени, чтобы помочь с другим., @RDragonrydr
Я должен упомянуть, что в моем случае он все еще работает только часть времени и имеет тенденцию к сбою; Я думаю, что в библиотеке есть место, которое имеет тенденцию зависать при использовании ESP8266. Я хотел бы услышать об опыте других людей; может быть и так, что мои чипы поддельные..., @RDragonrydr
Я переустановил Arduino IDE и необходимые мне библиотеки, теперь все работает нормально. Это должно быть потому, что кто-то использовал мой ноутбук и установил некоторые библиотеки RFID, которые вызвали некоторые проблемы в папках библиотек.
- Как подключить NodeMCU к NRF24L01
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
- Простой запрос GET с ESP8266HTTPClient
Библиотека, которую вы сейчас используете, вероятно, не поддерживает 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