nRF24L01 Code error

I am trying to learn how to use the nRF24L01 modules with Arduino and I tried this code from Circuit Digest to see if I can get it working:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
RF24 radio(9, 8);   // CE, CSN pins for nRF24L01
const byte address[6] = "00001";
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
struct SensorData {
 float temperature;
 float humidity;
};
void setup() {
 Serial.begin(9600);
 // Initialize OLED display
 if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
   Serial.println("SSD1306 allocation failed");
   for (;;);
 }
 display.clearDisplay();
 display.setTextSize(1);
 display.setTextColor(SSD1306_WHITE);
 // Initialize nRF24L01
 radio.begin();
 radio.openReadingPipe(1, address);
 radio.setPALevel(RF24_PA_LOW);
 radio.startListening();
}
void loop() {
 if (radio.available()) {
   SensorData data;
   radio.read(&data, sizeof(data));
   // Display data on OLED
   display.clearDisplay();
   display.setTextSize(2);
   display.setCursor(0, 0);
   display.println("Data:");
   display.setTextSize(1);
   display.setCursor(0, 30);
   display.print("Temp: ");
   display.setCursor(60, 30);
   display.print(data.temperature);
   display.println(" C");
   display.setCursor(0, 45);
   display.print("Humidity: ");
   display.print(data.humidity);
   display.println(" %");
   display.display();
   
   Serial.println("Data received:");
   Serial.print("Temp: ");
   Serial.print(data.temperature);
   Serial.println(" C");
   Serial.print("Humidity: ");
   Serial.print(data.humidity);
   Serial.println(" %");
 }
 delay(1000);
}

However I am getting the following error code when I attempt to compile the code:

In file included from /Users/stevenmcdonald/Documents/Arduino/nRF24L01_Receive_Data/nRF24L01_Receive_Data.ino:4:0:
/Users/stevenmcdonald/Documents/Arduino/libraries/Adafruit_GFX_Library/Adafruit_GFX.h:12:10: fatal error: Adafruit_I2CDevice.h: No such file or directory
 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

exit status 1

Compilation error: exit status 1

I tried adding the line #include <Adafruit_I2CDevice.h> but to no avail.

Can anyone point me in the right direction please?

Thank You in advance

Hi, @SierraGolfMike

Have you tried the Example codes that come with the 24L01 Library first to establish that your hardware is working?

What model Arduino are you using?

When you installed;

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Did you also include the extra libraries that the IDE would ask you about?

Your code compiles for me on 2.3.5 IDE, Win 10 and for a Nano controller.

Tom.... :smiley: :+1: :coffee: :australia:

Tom,

Many thanks for your reply, it was that long ago, I can't remember if I installed the extra libraries. Do I just reinstall? I was just compiling the code, nothing connected up as yet!

Steve :grinning_face: :scotland: :+1:

Hi Tom,

Just reinstalled those 2 libraries plus the extra libraries and code is now compiling properly. Many thanks for the solution!

Steve :grinning_face: :scotland: :+1:

No worries, Adafruit like to use a combination of their libraries if it saves them extra time/space from what I have seen.

Tom.... :smiley: :+1: :coffee: :australia:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.