Cannot fix my compiling error

hello everyone
today i tried to make a ble project using the NRF24l01 and dht11 which sends temperature data to my smartphone . but when i upload the code it says - exit status 1
Error compiling for board Arduino Uno.

i had this problem before and fixed it using the u8glib and today i was doing this project on my nano but it showed the same error so i tried it on my uno and got the same error.
here is the code -

#include <SPI.h>
#include <RF24.h>
#include <BTLE.h>
#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

RF24 radio(9, 10); // CE, CSN
BTLE btle(&radio);

void setup() {
Serial.begin(9600);
delay(1000);
Serial.print("BLE and DHT Starting... ");
Serial.println("Send Temperature Data over BTLE");
dht.begin(); // initialise DHT11 sensor
btle.begin("CD Temp"); // 8 chars max
Serial.println("Successfully Started");
}

void loop() {
float temp = dht.readTemperature(); //read temperature data
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(" Temperature: "); Serial.print(t); Serial.println("°C ");
nrf_service_data buf;
buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID;
buf.value = BTLE::to_nRF_Float(temp);

if (!btle.advertise(0x16, &buf, sizeof(buf))) {
Serial.println("BTLE advertisement failed..!");
}
btle.hopChannel();
delay(2000);
}

please say the solution
thanks

The easier you make it to read and copy your code the more likely it is that you will get help

Please follow the advice given in the link below when posting code , use code tags and post the code here

If you get errors when compiling please copy them from the IDE using the "Copy error messages" button and paste the clipboard here in code tags

1 Like

Is that all it says ?

Copy the full error message using the "Copy error message" button in the IDE and post it here in code tags

1 Like

exit status 1

Error compiling for board Arduino Uno.

this is what i get and i cannot send the copy error message cuz its very long

Why can't you post the error message ?
What happens when you try ?

1 Like

@iniyan, your topic has been moved to a more suitable location on the forum.

Please read the link provided in post #2 and add code tags to your code.
Please provide the error message as requested; if it's too big, attach it as a text file.

1 Like

Hi,
Have you got ALL the libraries loaded.
I tried to compile your code and got;




C:\Arduino Projects\sketch_may27b\sketch_may27b.ino: In function 'void loop()':
sketch_may27b:25:11: error: 'h' was not declared in this scope
 if (isnan(h) || isnan(t)) {
           ^
sketch_may27b:25:23: error: 't' was not declared in this scope
 if (isnan(h) || isnan(t)) {
                       ^
sketch_may27b:29:46: error: 't' was not declared in this scope
 Serial.print(" Temperature: "); Serial.print(t); Serial.println("°C ");
                                              ^
exit status 1

This seems to be the problem.

if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}

Where did you get this bit of code from?

Tom... :grinning: :+1: :coffee: :australia:

1 Like

You are reading 'temperature' into a variable called 'temp' and then using the name 't' as if it were the variable containing the temperature:

Change this line:
float temp = dht.readTemperature(); //read temperature data
to this:
float t = dht.readTemperature(); //read temperature data

You are also using 'h' as if it contained the humidity. You should add this line just after that line:
float h = dht.readHumidity(); //read humidity data

1 Like

Hi,
I think you need to look at the example code.
You can only use

 // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

AFTER you have read the temperature and humdity, that test is to see if the data t and h, temp and humidity readings from the sensor are valid.
Here is the example code showing where to use it.

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor

#include "DHT.h"

#define DHTPIN 2     // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 --
// Pin 15 can work but DHT must be disconnected during program upload.

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 3 (on the right) of the sensor to GROUND (if your sensor has 3 pins)
// Connect pin 4 (on the right) of the sensor to GROUND and leave the pin 3 EMPTY (if your sensor has 4 pins)
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHTxx test!"));

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}

Tom... :grinning: :+1: :coffee: :australia:

1 Like

Well i got this code from this site - https://circuitdigest.com/microcontroller-projects/sending-sensor-data-to-android-phone-using-arduino-nrf24l01-over-bluetooth-ble

Well...I have 2 nrf24l01 modules and my aren't working with that so I wanted to try this project to check if my module is working or not. So does that mean it's an code error???

Yes I also have all libraries loaded

@UKHeliBob It's says something like word limit

hey guys
i uploaded some other codes and im still having the same error . please someone say the solution for it. :pensive:

Post your problem sketch here as it is now. Use code tags when you do

#include <BTLE.h>
#include <SPI.h>
#include <RF24.h>
#include <DHT.h>

RF24 radio(9,10);
BTLE btle(&radio);


#define DHTPIN A0
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  while (!Serial) { }
  Serial.println("BTLE temperature sender");

  // 8 chars max
  btle.begin("SimoTemp");
  dht.begin();
}

void loop() {
 float t = dht.readTemperature();

  nrf_service_data buf;
  buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID;
  buf.value = BTLE::to_nRF_Float(t);
  
  if(!btle.advertise(0x16, &buf, sizeof(buf))) {
    Serial.println("BTLE advertisement failure");
  }
  btle.hopChannel();
  
  delay(1000);

}

I'm going to ask you to post some additional information that might help us to identify the problem.

Please do this:

  1. Select File > Preferences from the Arduino IDE's menus.
  2. Uncheck the box next to "Show verbose output during: > compilation".
  3. Click the OK button.
  4. Select Sketch > Verify/Compile from the Arduino IDE's menus.
  5. After the compilation fails you'll see a button on the right side of the orange bar Copy error messages. Click that button.
  6. Open a forum reply here by clicking the Reply button.
  7. Click the </> icon on the post composer toolbar. This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block
  8. Press Ctrl+V. This will paste the compilation output into the code block.
  9. Move the cursor outside of the code tags before you add any additional text to your reply.
  10. Click the Reply button to post the output.

Hi, @iniyan
Your code compiled for me, UNO WIn10, 1.8.13 and on IDE 2.0.0. Beta 5.

Tom :grinning: :+1: :coffee: :australia: